local DiscCommonSkillCtrl = class("DiscCommonSkillCtrl", BaseCtrl) DiscCommonSkillCtrl._mapNodeConfig = { txtSkillName = {sComponentName = "TMP_Text"}, imgSkillIcon = {sComponentName = "Image"}, imgSkillIconBg = {sComponentName = "Image"}, txtLevel = {sComponentName = "TMP_Text"}, btnPrevLevel = { sComponentName = "UIButton", callback = "OnBtnClick_Prev" }, btnNextLevel = { sComponentName = "UIButton", callback = "OnBtnClick_Next" }, imgPrevOn = {}, imgPrevOff = {}, imgNextOn = {}, imgNextOff = {}, goNote = { sCtrlName = "Game.UI.TemplateEx.TemplateDiscMultiNoteCtrl" }, txtSkillDesc = {sComponentName = "TMP_Text"}, txtNoteTip = {sComponentName = "TMP_Text"}, TMP_Link = { sNodeName = "txtSkillDesc", sComponentName = "TMPHyperLink", callback = "OnLinkClick_Word" } } DiscCommonSkillCtrl._mapEventConfig = {} function DiscCommonSkillCtrl:Refresh(nId, nLayer) self.mapCfg = ConfigTable.GetData("DiscCommonSkill", nId) if not self.mapCfg then return end self.nLayer = 1 if nLayer then self.nLayer = nLayer end self:SetPngSprite(self._mapNode.imgSkillIcon, self.mapCfg.Icon .. AllEnum.DiscSkillIconSurfix.Small) self:SetPngSprite(self._mapNode.imgSkillIconBg, self.mapCfg.IconBg .. AllEnum.DiscSkillIconSurfix.Small) NovaAPI.SetTMPText(self._mapNode.txtSkillName, self.mapCfg.Name) self.nMaxLayer = #self.mapCfg.ActiveNoteNum self:RefreshSkill() end function DiscCommonSkillCtrl:RefreshSkill() local sDesc = UTILS.ParseDiscDesc(self.mapCfg.Desc, self.mapCfg, nil, self.nLayer) NovaAPI.SetTMPText(self._mapNode.txtSkillDesc, sDesc) self._mapNode.goNote:SetNoteItem(self.mapCfg.ActiveNoteType, self.mapCfg.ActiveNoteNum[self.nLayer]) local bMulti = #self.mapCfg.ActiveNoteType > 1 if bMulti then local mapNote1 = ConfigTable.GetData("Note", self.mapCfg.ActiveNoteType[1]) local mapNote2 = ConfigTable.GetData("Note", self.mapCfg.ActiveNoteType[2]) if not mapNote1 or not mapNote2 then return end NovaAPI.SetTMPText(self._mapNode.txtNoteTip, orderedFormat(ConfigTable.GetUIText("Disc_CommonSkill_MultiNoteTip"), mapNote1.Name1, mapNote2.Name1)) else local mapNote1 = ConfigTable.GetData("Note", self.mapCfg.ActiveNoteType[1]) if not mapNote1 then return end NovaAPI.SetTMPText(self._mapNode.txtNoteTip, orderedFormat(ConfigTable.GetUIText("Disc_CommonSkill_NoteTip"), mapNote1.Name1)) end NovaAPI.SetTMPText(self._mapNode.txtLevel, orderedFormat(ConfigTable.GetUIText("Disc_CommonSkill_Level"), self.nLayer)) self._mapNode.imgPrevOn:SetActive(self.nLayer > 1) self._mapNode.imgPrevOff:SetActive(self.nLayer == 1) self._mapNode.imgNextOn:SetActive(self.nLayer < self.nMaxLayer) self._mapNode.imgNextOff:SetActive(self.nLayer == self.nMaxLayer) end function DiscCommonSkillCtrl:OnBtnClick_Prev() if self.nLayer == 1 then return end self.nLayer = self.nLayer - 1 self:RefreshSkill() end function DiscCommonSkillCtrl:OnBtnClick_Next() if self.nLayer == self.nMaxLayer then return end self.nLayer = self.nLayer + 1 self:RefreshSkill() end function DiscCommonSkillCtrl:OnLinkClick_Word(link, sWordId) UTILS.ClickWordLink(link, sWordId) end return DiscCommonSkillCtrl