Files
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

112 lines
3.0 KiB
Lua

local GachaPreviewCtrl = class("GachaPreviewCtrl", BaseCtrl)
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
GachaPreviewCtrl._mapNodeConfig = {
rtCharinfo = {
sCtrlName = "Game.UI.TemplateEx.TemplateCharInfoCtrl"
},
TopBarPanel = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
RimgL2d = {sComponentName = "RawImage"},
btnSkill = {
sComponentName = "UIButton",
callback = "OnBtnClick_Skill"
},
btnPerk = {
sComponentName = "UIButton",
callback = "OnBtnClick_Perk"
},
btnHeartStone = {
sComponentName = "UIButton",
callback = "OnBtnClick_HeartStone"
},
TMPSkill = {
sComponentName = "TMP_Text",
nCount = 2,
sLanguageId = "SelectMember_Skill"
},
TMPPerk = {
sComponentName = "TMP_Text",
nCount = 2,
sLanguageId = "Perk_Exclusive"
},
TMPHeartStone = {
sComponentName = "TMP_Text",
nCount = 2,
sLanguageId = "HeartStone"
},
imgTab = {nCount = 3},
rtSkillList = {
sCtrlName = "Game.UI.GachaEx.GachaPreview.SkillListCtrl"
},
rtExPerkList = {
sCtrlName = "Game.UI.GachaEx.GachaPreview.PerkListCtrl"
},
rtHeartStoneList = {
sCtrlName = "Game.UI.GachaEx.GachaPreview.HeartStoneListCtrl"
}
}
GachaPreviewCtrl._mapEventConfig = {}
function GachaPreviewCtrl:Awake()
end
function GachaPreviewCtrl:FadeIn()
end
function GachaPreviewCtrl:FadeOut()
end
function GachaPreviewCtrl:OnEnable()
self.curTab = 1
local tbParam = self:GetPanelParam()
self.nCharId = tbParam[1]
if self.nCharId == nil then
return
end
self._mapNode.rtSkillList:Refresh(self.nCharId)
self._mapNode.rtCharinfo:Refresh({
nLevel = self:CalCharMaxLevel(self.nCharId)
}, ConfigTable.GetData_Character(self.nCharId))
self._mapNode.rtSkillList.gameObject:SetActive(true)
self._mapNode.rtExPerkList:SetShow(false)
self._mapNode.rtHeartStoneList.gameObject:SetActive(false)
for i = 1, 3 do
self._mapNode.imgTab[i]:SetActive(i == self.curTab)
end
local mapCharCfgData = ConfigTable.GetData_Character(self.nCharId)
Actor2DManager.SetActor2D(self:GetPanelId(), self._mapNode.RimgL2d, self.nCharId, mapCharCfgData.AdvanceSkinId)
end
function GachaPreviewCtrl:CalCharMaxLevel(nCharId)
local nMaxLevel = 0
local mapCharCfgData = ConfigTable.GetData_Character(nCharId)
local forEach = function(mapData)
if mapData.Grade == mapCharCfgData.Grade and tonumber(mapData.LvLimit) > nMaxLevel then
nMaxLevel = tonumber(mapData.LvLimit)
end
end
ForEachTableLine(DataTable.CharRaritySequence, forEach)
return nMaxLevel
end
function GachaPreviewCtrl:OnDisable()
Actor2DManager.UnsetActor2D()
end
function GachaPreviewCtrl:OnDestroy()
end
function GachaPreviewCtrl:OnRelease()
end
function GachaPreviewCtrl:OnBtnClick_Skill()
if self.curTab == 1 then
return
end
self.curTab = 1
for i = 1, 3 do
self._mapNode.imgTab[i]:SetActive(i == self.curTab)
end
self._mapNode.rtSkillList.gameObject:SetActive(true)
self._mapNode.rtExPerkList:SetShow(false)
self._mapNode.rtHeartStoneList.gameObject:SetActive(false)
end
function GachaPreviewCtrl:OnBtnClick_Perk()
end
function GachaPreviewCtrl:OnBtnClick_HeartStone()
end
return GachaPreviewCtrl