c1_lua/lua/app/ui/battle/cell/skill_node_cell.lua
2023-04-24 21:03:39 +08:00

48 lines
1.7 KiB
Lua

local SkillNodeCell = class("SkillNodeCell", BaseCell)
function SkillNodeCell:refresh(skillEntity, elementMap)
local elementType = skillEntity:getPosition()
local add = 0
if elementMap and elementMap[elementType] then
add = elementMap[elementType]
end
local uiMap = self:getUIMap()
local iconNode = uiMap["skill_node_cell.icon_node"]
if not skillEntity:getUnlocked() then
iconNode:setVisible(false)
return
else
iconNode:setVisible(true)
end
if not self.imgComp then
self.imgComp = uiMap["skill_node_cell.energy_bg"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_IMAGE)
end
local curEnergy = skillEntity:getEnergy() + add
local needEnergy = skillEntity:getNeedEnergy()
local value = curEnergy / needEnergy
self.imgComp.fillAmount = value
if self.lastSkillIcon ~= skillEntity:getBattleIcon() then
self.lastSkillIcon = skillEntity:getBattleIcon()
uiMap["skill_node_cell.skill_icon"]:setSprite(GConst.ATLAS_PATH.ICON_SKILL, self.lastSkillIcon)
end
if self.lastNeedEnergy ~= needEnergy then
self.lastNeedEnergy = needEnergy
uiMap["skill_node_cell.mask"]:setSprite(GConst.ATLAS_PATH.BATTLE, "battle_skill_line_" .. needEnergy)
end
if self.lastElementType ~= elementType then
self.lastElementType = elementType
uiMap["skill_node_cell.match_bg"]:setSprite(GConst.ATLAS_PATH.BATTLE, GConst.BattleConst.SKILL_ELEMENT_BG[elementType])
end
local effect = uiMap["skill_node_cell.icon_node.vfx_ui_battle_skill_full_b01"]
if value >= 1 then
effect:setVisible(true)
effect:stopAndClear()
effect:play()
else
effect:setVisible(false)
end
end
return SkillNodeCell