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
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
local BuildExclusiveCtrl = class("BuildExclusiveCtrl", BaseCtrl)
|
||||
BuildExclusiveCtrl._mapNodeConfig = {
|
||||
rtPerk = {sComponentName = "Transform"},
|
||||
imgHead = {sComponentName = "Image"},
|
||||
imgHeadFrame = {sComponentName = "Image"},
|
||||
goPerk = {},
|
||||
txtCharName = {sComponentName = "TMP_Text"},
|
||||
txtHas = {sComponentName = "TMP_Text"},
|
||||
goSpecialOn = {
|
||||
nCount = 2,
|
||||
sCtrlName = "Game.UI.TemplateEx.TemplateSpecialExclusiveItemCtrl"
|
||||
},
|
||||
btnSpecialOn = {
|
||||
nCount = 2,
|
||||
sNodeName = "goSpecialOn",
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_SpecialOn"
|
||||
},
|
||||
imgNone = {nCount = 2}
|
||||
}
|
||||
BuildExclusiveCtrl._mapEventConfig = {}
|
||||
function BuildExclusiveCtrl:Refresh(nCharId, tbPerk)
|
||||
self:RefreshChar(nCharId)
|
||||
self:RefreshNormal(tbPerk)
|
||||
self:RefreshSpecial(tbPerk)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtHas, #tbPerk)
|
||||
end
|
||||
function BuildExclusiveCtrl:RefreshChar(nCharId)
|
||||
local nCharSkinId = PlayerData.Char:GetCharSkinId(nCharId)
|
||||
local mapCharSkin = ConfigTable.GetData_CharacterSkin(nCharSkinId)
|
||||
local mapCharCfg = ConfigTable.GetData_Character(nCharId)
|
||||
local sFrame = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[mapCharCfg.Grade]
|
||||
self:SetPngSprite(self._mapNode.imgHead, mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
|
||||
self:SetAtlasSprite(self._mapNode.imgHeadFrame, "12_rare", sFrame)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtCharName, mapCharCfg.Name)
|
||||
end
|
||||
function BuildExclusiveCtrl:RefreshSpecial(tbPerk)
|
||||
self.tbSpecial = {}
|
||||
for _, v in pairs(tbPerk) do
|
||||
local mapCfg = ConfigTable.GetData_Perk(v.nTid)
|
||||
if mapCfg.PerkType == GameEnum.perkType.SpecificExclusive then
|
||||
table.insert(self.tbSpecial, v)
|
||||
end
|
||||
end
|
||||
for i = 1, 2 do
|
||||
if self.tbSpecial[i] then
|
||||
self._mapNode.goSpecialOn[i]:SetPerk(self.tbSpecial[i].nTid)
|
||||
end
|
||||
self._mapNode.goSpecialOn[i].gameObject:SetActive(self.tbSpecial[i])
|
||||
self._mapNode.imgNone[i]:SetActive(not self.tbSpecial[i])
|
||||
end
|
||||
end
|
||||
function BuildExclusiveCtrl:RefreshNormal(tbPerk)
|
||||
self.tbPerk = {}
|
||||
for _, v in ipairs(tbPerk) do
|
||||
local mapCfg = ConfigTable.GetData_Perk(v.nTid)
|
||||
if mapCfg.PerkType == GameEnum.perkType.Exclusive then
|
||||
table.insert(self.tbPerk, v)
|
||||
end
|
||||
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.TemplateExclusiveItemCtrl")
|
||||
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
|
||||
end
|
||||
function BuildExclusiveCtrl:Awake()
|
||||
end
|
||||
function BuildExclusiveCtrl:OnEnable()
|
||||
self.tbGridCtrl = {}
|
||||
end
|
||||
function BuildExclusiveCtrl:OnDisable()
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.tbGridCtrl = {}
|
||||
end
|
||||
function BuildExclusiveCtrl:OnDestroy()
|
||||
end
|
||||
function BuildExclusiveCtrl: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("BuildExclusiveSelect", btn.gameObject, 0.1)
|
||||
self:AddTimer(1, 0.1, tip, true, true, true)
|
||||
end
|
||||
function BuildExclusiveCtrl:OnBtnClick_SpecialOn(btn, nIndex)
|
||||
local tip = function()
|
||||
local mapPanelData = {
|
||||
nPerkId = self.tbSpecial[nIndex].nTid,
|
||||
nCount = self.tbSpecial[nIndex].nCount
|
||||
}
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PerkTips, btn.transform, mapPanelData)
|
||||
end
|
||||
EventManager.Hit("BuildExclusiveSelect", btn.gameObject, 0.1)
|
||||
self:AddTimer(1, 0.1, tip, true, true, true)
|
||||
end
|
||||
return BuildExclusiveCtrl
|
||||
Reference in New Issue
Block a user