Files
StellaSora_DataLua/lua/game/ui/startowergrowth/startowerdifficultynodeitemctrl.lua
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

75 lines
2.4 KiB
Lua

local StarTowerDifficultyNodeItemCtrl = class("StarTowerDifficultyNodeItemCtrl", BaseCtrl)
StarTowerDifficultyNodeItemCtrl._mapNodeConfig = {
advanceNodeAnim = {sNodeName = "adNode", sComponentName = "Animator"},
btnNode = {
sComponentName = "UIButton",
callback = "OnBtn_SelectNode"
},
diffNode_gray = {},
txtAD = {nCount = 2, sComponentName = "TMP_Text"},
txtDiffNode = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Difficulty"
},
txtDiffNodeGray = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Difficulty"
},
Select = {},
redDotNode = {}
}
StarTowerDifficultyNodeItemCtrl._mapEventConfig = {
SelectDiffNode = "OnSelectDiffNode"
}
function StarTowerDifficultyNodeItemCtrl:RefreshNode(nNodeIndex, nCurDifficulty, bSelect, nMaxDifficulty)
self.bSelect = false
self.nNodeIndex = nNodeIndex
self.nMaxDifficulty = nMaxDifficulty or 1
self._mapNode.Select.gameObject:SetActive(false)
self._mapNode.diffNode_gray.gameObject:SetActive(nMaxDifficulty < nNodeIndex)
for _, v in ipairs(self._mapNode.txtAD) do
NovaAPI.SetTMPText(v, nNodeIndex)
end
if bSelect ~= nil and bSelect == true then
self.bSelect = true
self._mapNode.Select.gameObject:SetActive(true)
self:PlayAnim("Node_idle")
self.animState = "Node_idle"
end
end
function StarTowerDifficultyNodeItemCtrl:PlayAnim(sAnimName)
self._mapNode.advanceNodeAnim:Play(sAnimName)
end
function StarTowerDifficultyNodeItemCtrl:SetSelect(bSelect)
if self.bSelect and not bSelect then
self:PlayAnim("Node_out")
self.animState = "Node_out"
end
self.bSelect = bSelect
self._mapNode.Select.gameObject:SetActive(bSelect)
if bSelect and self.animState ~= "Node_idle" then
self:PlayAnim("Node_in")
self.animState = "Node_idle"
if self.nNodeIndex <= self.nCurSelectDiff then
CS.WwiseAudioManager.Instance:PlaySound("ui_charinfo_levelup_select_button")
end
end
end
function StarTowerDifficultyNodeItemCtrl:OnSelectDiffNode(nDifficulty)
self.nCurSelectDiff = nDifficulty
self:SetSelect(nDifficulty == self.nNodeIndex)
end
function StarTowerDifficultyNodeItemCtrl:OnBtn_SelectNode()
if self.bSelect then
return
end
if self.nMaxDifficulty < self.nNodeIndex then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("RegusBoss_Unlock"))
return
end
EventManager.Hit("SelectDiffNode", self.nNodeIndex)
end
function StarTowerDifficultyNodeItemCtrl:OnDisable()
end
return StarTowerDifficultyNodeItemCtrl