Files
SL1900 5e0d58cfad 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
2025-12-03 01:00:00 +09:00

128 lines
4.6 KiB
Lua

local KeyNodeCtrl = class("KeyNodeCtrl", BaseCtrl)
local NodeState = {
Lock = 1,
Ready = 2,
Active = 3
}
local ReadyColor_Icon = {
[GameEnum.starTowerNodeColor.Blue] = "#c6f6f5",
[GameEnum.starTowerNodeColor.Yellow] = "#fff5d7",
[GameEnum.starTowerNodeColor.Orange] = "#ffe1bd",
[GameEnum.starTowerNodeColor.Red] = "#ffb5b5",
[GameEnum.starTowerNodeColor.Green] = "#88e2ce"
}
local ReadyColor_Bg = {
[GameEnum.starTowerNodeColor.Blue] = "#41a4c9",
[GameEnum.starTowerNodeColor.Yellow] = "#ebaf3c",
[GameEnum.starTowerNodeColor.Orange] = "#f07c3a",
[GameEnum.starTowerNodeColor.Red] = "#e44d49",
[GameEnum.starTowerNodeColor.Green] = "#1aa989"
}
local ReadyColor_Light = {
[GameEnum.starTowerNodeColor.Blue] = "#aed6ff",
[GameEnum.starTowerNodeColor.Yellow] = "#ffebae",
[GameEnum.starTowerNodeColor.Orange] = "#ffbf73",
[GameEnum.starTowerNodeColor.Red] = "#e44d49",
[GameEnum.starTowerNodeColor.Green] = "#96fff6"
}
local LockColor = {
[GameEnum.starTowerNodeColor.Blue] = "#33758d",
[GameEnum.starTowerNodeColor.Yellow] = "#977636",
[GameEnum.starTowerNodeColor.Orange] = "#bf7043",
[GameEnum.starTowerNodeColor.Red] = "#b33f3c",
[GameEnum.starTowerNodeColor.Green] = "#2c7e6c"
}
local _, TextColorGray = ColorUtility.TryParseHtmlString("#7ca2bb")
KeyNodeCtrl._mapNodeConfig = {
imgGray = {sComponentName = "Image"},
imgLight = {sComponentName = "Image"},
imgBg = {sComponentName = "Image"},
imgIcon = {sComponentName = "Image"},
txtName = {nCount = 2, sComponentName = "TMP_Text"},
Select = {},
imgLight_add = {},
loop = {nCount = 5},
lizi_ = {nCount = 5},
AnimRoot = {sComponentName = "Animator"}
}
KeyNodeCtrl._mapEventConfig = {}
function KeyNodeCtrl:Refresh(nId, nState, bMulti, bHideName)
self.nId = nId
local mapCfg = ConfigTable.GetData("StarTowerGrowthNode", nId)
if not mapCfg then
return
end
self._mapNode.txtName[1].gameObject:SetActive(not bMulti and not bHideName)
self._mapNode.txtName[2].gameObject:SetActive(bMulti and not bHideName)
NovaAPI.SetTMPText(self._mapNode.txtName[1], mapCfg.Name)
NovaAPI.SetTMPText(self._mapNode.txtName[2], mapCfg.Name)
self:SetPngSprite(self._mapNode.imgIcon, mapCfg.Icon)
for i = 1, 5 do
self._mapNode.lizi_[i]:SetActive(i == mapCfg.Color)
end
if nState == NodeState.Lock then
self._mapNode.imgGray.gameObject:SetActive(false)
self._mapNode.imgLight.gameObject:SetActive(false)
self._mapNode.loop[mapCfg.Color].gameObject:SetActive(false)
for i = 1, 2 do
NovaAPI.SetTMPColor(self._mapNode.txtName[i], TextColorGray)
end
local _, color = ColorUtility.TryParseHtmlString(LockColor[mapCfg.Color])
NovaAPI.SetImageColor(self._mapNode.imgBg, color)
NovaAPI.SetImageColor(self._mapNode.imgIcon, color)
elseif nState == NodeState.Ready then
self._mapNode.imgGray.gameObject:SetActive(true)
self._mapNode.imgLight.gameObject:SetActive(true)
self._mapNode.loop[mapCfg.Color].gameObject:SetActive(true)
for i = 1, 2 do
NovaAPI.SetTMPColor(self._mapNode.txtName[i], White_Normal)
end
local _, colorIcon = ColorUtility.TryParseHtmlString(ReadyColor_Icon[mapCfg.Color])
local _, colorBg = ColorUtility.TryParseHtmlString(ReadyColor_Bg[mapCfg.Color])
local _, colorLight = ColorUtility.TryParseHtmlString(ReadyColor_Light[mapCfg.Color])
colorLight.a = 0.6
NovaAPI.SetImageColor(self._mapNode.imgIcon, colorIcon)
NovaAPI.SetImageColor(self._mapNode.imgBg, colorBg)
NovaAPI.SetImageColor(self._mapNode.imgLight, colorLight)
elseif nState == NodeState.Active then
self._mapNode.imgGray.gameObject:SetActive(true)
self._mapNode.imgLight.gameObject:SetActive(false)
self._mapNode.loop[mapCfg.Color].gameObject:SetActive(false)
for i = 1, 2 do
NovaAPI.SetTMPColor(self._mapNode.txtName[i], White_Normal)
end
local _, colorIcon = ColorUtility.TryParseHtmlString(ReadyColor_Icon[mapCfg.Color])
local _, colorBg = ColorUtility.TryParseHtmlString(ReadyColor_Bg[mapCfg.Color])
NovaAPI.SetImageColor(self._mapNode.imgIcon, colorIcon)
NovaAPI.SetImageColor(self._mapNode.imgBg, colorBg)
end
end
function KeyNodeCtrl:SetSelect(bSelect)
self._mapNode.Select:SetActive(bSelect)
end
function KeyNodeCtrl:GetId()
return self.nId
end
function KeyNodeCtrl:PlayActiveAnim(callback)
self._mapNode.AnimRoot:Play("StarTowerGrowth_KeyNode_open", 0, 0)
self:AddTimer(1, 0.667, function()
if callback then
callback()
end
end, true, true, true)
EventManager.Hit("SetGrowthKeyNodeEye", true)
self:AddTimer(1, 0.15, function()
EventManager.Hit("SetGrowthKeyNodeEye", false)
end, true, true, true)
end
function KeyNodeCtrl:Awake()
self:SetSelect(false)
end
function KeyNodeCtrl:OnEnable()
end
function KeyNodeCtrl:OnDisable()
end
function KeyNodeCtrl:OnDestroy()
end
return KeyNodeCtrl