5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
66 lines
2.2 KiB
Lua
66 lines
2.2 KiB
Lua
local BuildThemeCtrl = class("BuildThemeCtrl", BaseCtrl)
|
|
BuildThemeCtrl._mapNodeConfig = {
|
|
rtPerk = {sComponentName = "Transform"},
|
|
imgTheme = {sComponentName = "Image"},
|
|
goPerk = {},
|
|
txtName = {sComponentName = "TMP_Text"},
|
|
txtHas = {sComponentName = "TMP_Text"},
|
|
txtAll = {sComponentName = "TMP_Text"}
|
|
}
|
|
BuildThemeCtrl._mapEventConfig = {}
|
|
function BuildThemeCtrl:Refresh(nTheme, tbPerk)
|
|
self:RefreshTheme(nTheme)
|
|
self:RefreshList(tbPerk)
|
|
end
|
|
function BuildThemeCtrl:RefreshTheme(nTheme)
|
|
local mapTheme = ConfigTable.GetData("PresentsTheme", nTheme)
|
|
NovaAPI.SetTMPText(self._mapNode.txtName, mapTheme.ThemeName)
|
|
self:SetPngSprite(self._mapNode.imgTheme, mapTheme.ThemeItemIcon)
|
|
end
|
|
function BuildThemeCtrl:RefreshList(tbPerk)
|
|
self.tbPerk = {}
|
|
for _, v in pairs(tbPerk) do
|
|
table.insert(self.tbPerk, v)
|
|
end
|
|
local nAllPerk = #self.tbPerk
|
|
delChildren(self._mapNode.rtPerk)
|
|
self.tbGridCtrl = {}
|
|
for i = 1, nAllPerk do
|
|
local obj = instantiate(self._mapNode.goPerk, self._mapNode.rtPerk)
|
|
obj.gameObject:SetActive(true)
|
|
local ctrl = self:BindCtrlByNode(obj, "Game.UI.TemplateEx.TemplatePerkItemCtrl")
|
|
table.insert(self.tbGridCtrl, ctrl)
|
|
ctrl:SetPerk(self.tbPerk[i].nTid, self.tbPerk[i].nCount - 1, self.tbPerk[i].nMaxLevel - 1)
|
|
local btn = obj.transform:GetComponent("UIButton")
|
|
local func_Handler = ui_handler(self, self.OnBtnClick_Select, obj, i)
|
|
btn.onClick:AddListener(func_Handler)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtHas, nAllPerk)
|
|
end
|
|
function BuildThemeCtrl:Awake()
|
|
end
|
|
function BuildThemeCtrl:OnEnable()
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function BuildThemeCtrl:OnDisable()
|
|
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
|
self:UnbindCtrlByNode(objCtrl)
|
|
self.tbGridCtrl[nInstanceId] = nil
|
|
end
|
|
self.tbGridCtrl = {}
|
|
end
|
|
function BuildThemeCtrl:OnDestroy()
|
|
end
|
|
function BuildThemeCtrl:OnBtnClick_Select(btn, nIndex)
|
|
local tip = function()
|
|
local mapPanelData = {
|
|
nPerkId = self.tbPerk[nIndex].nTid,
|
|
nCount = self.tbPerk[nIndex].nCount
|
|
}
|
|
EventManager.Hit(EventId.OpenPanel, PanelId.PerkTips, btn.transform, mapPanelData)
|
|
end
|
|
EventManager.Hit("BuildThemeSelect", btn.gameObject, 0.1)
|
|
self:AddTimer(1, 0.1, tip, true, true, true)
|
|
end
|
|
return BuildThemeCtrl
|