5e0d58cfad
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
128 lines
4.6 KiB
Lua
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
|