Files
StellaSora_DataLua/lua/game/ui/towerdefense/towerdefensepotentialcarditemctrl.lua
T
SL1900 e0549005e1 Update - 1.9.0.103
EN: 1.9.0.103
CN: 1.9.0.104
JP: 1.9.0.106
KR: 1.9.0.108
2026-04-18 00:15:00 +09:00

160 lines
5.5 KiB
Lua

local TowerDefensePotentialCardItemCtrl = class("TowerDefensePotentialCardItemCtrl", BaseCtrl)
TowerDefensePotentialCardItemCtrl._mapNodeConfig = {
db_SSR = {},
goPotentialNormal = {},
imgRare_Gold = {},
imgRare_RainBow = {},
goIcon = {
sCtrlName = "Game.UI.TowerDefense.TowerDefensePotentialIconCtrl"
},
txtName = {sComponentName = "TMP_Text"},
txtDesc = {sComponentName = "TMP_Text"},
TMP_Link1 = {
sNodeName = "txtDesc",
sComponentName = "TMPHyperLink",
callback = "OnBtnClick_Word"
},
txtLevel = {
sComponentName = "TMP_Text",
sLanguageId = "Potential_Level"
},
imgArrow = {},
goUpgrade = {},
txtUpLevelValue = {sComponentName = "TMP_Text"},
goPotentialSpecial = {},
imgSpIcon = {sComponentName = "Image"},
txtSpName = {sComponentName = "TMP_Text"},
SpContent = {
sComponentName = "RectTransform"
},
txtSpDesc = {sComponentName = "TMP_Text"},
TMP_Link2 = {
sNodeName = "txtSpDesc",
sComponentName = "TMPHyperLink",
callback = "OnBtnClick_Word"
},
animCtrl = {sComponentName = "Animator", sNodeName = "AnimRoot"},
imgReommend = {},
imgNew = {},
txtNew = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Book_New_Text"
},
N = {},
SR = {},
SSR = {},
BgEffect = {},
ArrowEffect = {},
imgPreselection = {},
goNew = {}
}
TowerDefensePotentialCardItemCtrl._mapEventConfig = {}
TowerDefensePotentialCardItemCtrl._mapRedDotConfig = {}
local level_txt_color = {
[1] = "#44587f",
[2] = "#4e76d4"
}
function TowerDefensePotentialCardItemCtrl:SetPotentialItem(nTid, nShowType)
self.nTid = nTid
self.nShowType = nShowType or AllEnum.PotentialCardType.CharInfo
self._mapNode.ArrowEffect:SetActive(self.bLucky)
local potentialCfg = ConfigTable.GetData("TowerDefensePotential", nTid)
if nil == potentialCfg then
return
end
self._mapNode.db_SSR:SetActive(potentialCfg.Rarity == GameEnum.itemRarity.SSR)
local bSpecial = potentialCfg.Rarity == GameEnum.itemRarity.SSR
self._mapNode.goPotentialNormal.gameObject:SetActive(not bSpecial)
self._mapNode.goPotentialSpecial.gameObject:SetActive(bSpecial)
if not bSpecial then
self:SetNormalCard(potentialCfg)
else
self:SetSpecialCard(potentialCfg)
end
self:ChangeWordRaycast(false)
return bSpecial
end
function TowerDefensePotentialCardItemCtrl:SetNormalCard(potentialCfg)
NovaAPI.SetTMPText(self._mapNode.txtName, potentialCfg.Name)
local nColor = AllEnum.FrameColor_New[potentialCfg.Rarity]
if nColor == "4" then
self._mapNode.imgRare_Gold.gameObject:SetActive(true)
self._mapNode.imgRare_RainBow.gameObject:SetActive(false)
elseif nColor == "5" then
self._mapNode.imgRare_Gold.gameObject:SetActive(false)
self._mapNode.imgRare_RainBow.gameObject:SetActive(true)
else
self._mapNode.imgRare_Gold.gameObject:SetActive(false)
self._mapNode.imgRare_RainBow.gameObject:SetActive(false)
end
self._mapNode.goIcon:SetIcon(potentialCfg.Id)
NovaAPI.SetTMPText(self._mapNode.txtDesc, potentialCfg.PotentialDes)
end
function TowerDefensePotentialCardItemCtrl:SetSpecialCard(potentialCfg)
NovaAPI.SetTMPText(self._mapNode.txtSpName, potentialCfg.Name)
self:SetPngSprite(self._mapNode.imgSpIcon, potentialCfg.Icon .. AllEnum.PotentialIconSurfix.A)
NovaAPI.SetTMPText(self._mapNode.txtSpDesc, potentialCfg.PotentialDes)
end
function TowerDefensePotentialCardItemCtrl:ActiveRollEffect()
if not self.itemCfg then
return
end
self._mapNode.SSR:SetActive(self.itemCfg.Rarity == GameEnum.itemRarity.SSR)
self._mapNode.SR:SetActive(self.itemCfg.Rarity == GameEnum.itemRarity.SR)
self._mapNode.N:SetActive(self.itemCfg.Rarity == GameEnum.itemRarity.N)
end
function TowerDefensePotentialCardItemCtrl:CloseBgEffect()
self._mapNode.BgEffect:SetActive(false)
end
function TowerDefensePotentialCardItemCtrl:PlayAnim(sAnimName)
self._mapNode.animCtrl:Play(sAnimName)
self._mapNode.BgEffect:SetActive(self.bLucky and sAnimName == "tc_newperk_card_in")
end
function TowerDefensePotentialCardItemCtrl:Awake()
self._mapNode.goNew.gameObject:SetActive(false)
self._mapNode.imgPreselection:SetActive(false)
end
function TowerDefensePotentialCardItemCtrl:OnEnable()
end
function TowerDefensePotentialCardItemCtrl:OnDisable()
end
function TowerDefensePotentialCardItemCtrl:OnDestroy()
end
function TowerDefensePotentialCardItemCtrl:OnBtnClick_Word(link, sWordId)
local potentialCfg = ConfigTable.GetData("Potential", self.nTid)
local nLevel = self.nLevel
local nNextLevel = self.nNextLevel
local nType = potentialCfg.BranchType
local nCharId = potentialCfg.CharId
local tbSkillLevel
if self.nShowType == AllEnum.PotentialCardType.StarTower then
tbSkillLevel = self._panel:GetSkillLevel(nCharId)
elseif self.nShowType == AllEnum.PotentialCardType.CharInfo or self.nShowType == AllEnum.PotentialCardType.Book then
tbSkillLevel = PlayerData.Char:GetSkillLevel(nCharId)
end
if nType == GameEnum.BranchType.Master then
nLevel = tbSkillLevel[GameEnum.skillSlotType.B]
nNextLevel = nil
elseif nType == GameEnum.BranchType.Assist then
nLevel = tbSkillLevel[GameEnum.skillSlotType.C]
nNextLevel = nil
end
local mapData = {
nPerkId = 0,
nCount = 0,
bWordTip = true,
sWordId = sWordId,
nLevel = nLevel,
nNextLevel = nNextLevel
}
EventManager.Hit(EventId.OpenPanel, PanelId.PerkTips, link, mapData)
end
function TowerDefensePotentialCardItemCtrl:ChangeWordRaycast(bEnable)
NovaAPI.SetTMPRaycastTarget(self._mapNode.txtDesc, bEnable)
NovaAPI.SetTMPRaycastTarget(self._mapNode.txtSpDesc, bEnable)
end
function TowerDefensePotentialCardItemCtrl:SetRecommend(bEnable)
self._mapNode.imgReommend:SetActive(bEnable)
end
return TowerDefensePotentialCardItemCtrl