08b515afd9
EN: 2.0.0.143 CN: 2.0.0.142 JP: 2.0.0.145 KR: 2.0.0.150
111 lines
4.3 KiB
Lua
111 lines
4.3 KiB
Lua
local SoldierTechNodeCtrl = class("SoldierTechNodeCtrl", BaseCtrl)
|
|
local _, ActiveIconLineColor = ColorUtility.TryParseHtmlString("#93b1ba")
|
|
local _, ReadyIconLineColor = ColorUtility.TryParseHtmlString("#8ea9c0")
|
|
local _, LockIconLineColor = ColorUtility.TryParseHtmlString("#9199a4")
|
|
local _, ActiveIconSkillColor = ColorUtility.TryParseHtmlString("#4f5f7e")
|
|
local _, ReadyIconSkillColor = ColorUtility.TryParseHtmlString("#8ea9c0")
|
|
local _, LockIconSkillColor = ColorUtility.TryParseHtmlString("#9199a4")
|
|
SoldierTechNodeCtrl._mapNodeConfig = {
|
|
goNodeSquare = {},
|
|
rtLightSquare = {},
|
|
imgLockSquare = {},
|
|
imgNormalSquare = {},
|
|
imgOnSquare = {},
|
|
IconSkillSquare = {sComponentName = "Image"},
|
|
IconBossMask = {},
|
|
IconBoss = {sComponentName = "Image"},
|
|
IconBossLock = {sComponentName = "Image"},
|
|
IconLine = {sComponentName = "Image"},
|
|
goNodeCircle = {},
|
|
rtLightCircle = {},
|
|
imgLockCircle = {},
|
|
imgNormalCircle = {},
|
|
imgOnCircle = {},
|
|
IconSkillCircle = {sComponentName = "Image"},
|
|
goSelect = {sNodeName = "Select"}
|
|
}
|
|
SoldierTechNodeCtrl._mapEventConfig = {}
|
|
SoldierTechNodeCtrl._mapRedDotConfig = {}
|
|
local CheckResourceEnough = function(mapCfg)
|
|
local nItemId = mapCfg.ItemId1
|
|
local nItemQty = mapCfg.ItemQty1
|
|
if nItemId and 0 < nItemId and nItemQty and 0 < nItemQty and nItemQty > PlayerData.Item:GetItemCountByID(nItemId) then
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
function SoldierTechNodeCtrl:Refresh(nId, mapNodeData, bForceUnlocked)
|
|
self.nId = nId
|
|
self.mapNodeData = mapNodeData
|
|
local mapCfg = ConfigTable.GetData("SoldierTechNode", nId)
|
|
if not mapCfg then
|
|
return
|
|
end
|
|
local nType = mapCfg.Type
|
|
local bActive, bCanActive, bLock
|
|
if bForceUnlocked then
|
|
bActive = true
|
|
bCanActive = false
|
|
bLock = false
|
|
else
|
|
bActive = mapNodeData and mapNodeData.bActive
|
|
local bReady = mapNodeData and mapNodeData.bReady
|
|
bCanActive = not bActive and bReady and CheckResourceEnough(mapCfg)
|
|
bLock = not bActive and not bCanActive
|
|
end
|
|
local bShowLight = bCanActive and not bForceUnlocked
|
|
local bSquare = nType == GameEnum.SoldierTechNodeType.Core or nType == GameEnum.SoldierTechNodeType.BossAbility
|
|
self._mapNode.goNodeSquare:SetActive(bSquare)
|
|
self._mapNode.goNodeCircle:SetActive(not bSquare)
|
|
if bSquare then
|
|
self._mapNode.rtLightSquare:SetActive(bShowLight)
|
|
self._mapNode.imgNormalSquare:SetActive(bCanActive)
|
|
self._mapNode.imgLockSquare:SetActive(bLock)
|
|
self._mapNode.imgOnSquare:SetActive(bActive)
|
|
local lineColor = bActive and ActiveIconLineColor or bCanActive and ReadyIconLineColor or LockIconLineColor
|
|
NovaAPI.SetImageColor(self._mapNode.IconLine, lineColor)
|
|
if nType == GameEnum.SoldierTechNodeType.Core then
|
|
self._mapNode.IconSkillSquare.gameObject:SetActive(true)
|
|
self._mapNode.IconBossMask:SetActive(false)
|
|
local iconColor = bActive and ActiveIconSkillColor or bCanActive and ReadyIconSkillColor or LockIconSkillColor
|
|
NovaAPI.SetImageColor(self._mapNode.IconSkillSquare, iconColor)
|
|
self:SetPngSprite(self._mapNode.IconSkillSquare, mapCfg.Icon)
|
|
else
|
|
self._mapNode.IconSkillSquare.gameObject:SetActive(false)
|
|
self._mapNode.IconBossMask:SetActive(true)
|
|
self._mapNode.IconBoss.gameObject:SetActive(bActive)
|
|
self._mapNode.IconBossLock.gameObject:SetActive(not bActive)
|
|
local nBossId = mapCfg.Param
|
|
local mapBoss = ConfigTable.GetData("SoldierBossTemplate", nBossId)
|
|
if mapBoss ~= nil then
|
|
if bActive then
|
|
self:SetPngSprite(self._mapNode.IconBoss, mapBoss.SoldierPlayerHead)
|
|
else
|
|
self:SetPngSprite(self._mapNode.IconBossLock, mapBoss.SoldierPlayerHead)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
self._mapNode.rtLightCircle:SetActive(bShowLight)
|
|
self._mapNode.imgNormalCircle:SetActive(bCanActive)
|
|
self._mapNode.imgLockCircle:SetActive(bLock)
|
|
self._mapNode.imgOnCircle:SetActive(bActive)
|
|
local iconColor = bActive and ActiveIconSkillColor or bCanActive and ReadyIconSkillColor or LockIconSkillColor
|
|
NovaAPI.SetImageColor(self._mapNode.IconSkillCircle, iconColor)
|
|
self:SetPngSprite(self._mapNode.IconSkillCircle, mapCfg.Icon)
|
|
end
|
|
self._mapNode.goSelect:SetActive(false)
|
|
end
|
|
function SoldierTechNodeCtrl:SetSelect(bSelect)
|
|
self._mapNode.goSelect:SetActive(bSelect)
|
|
end
|
|
function SoldierTechNodeCtrl:Awake()
|
|
end
|
|
function SoldierTechNodeCtrl:OnEnable()
|
|
end
|
|
function SoldierTechNodeCtrl:OnDisable()
|
|
end
|
|
function SoldierTechNodeCtrl:OnDestroy()
|
|
end
|
|
return SoldierTechNodeCtrl
|