diff --git a/lua/app/ui/battle/cell/grid_cell.lua b/lua/app/ui/battle/cell/grid_cell.lua index d0f88f5f..b1f7b52a 100644 --- a/lua/app/ui/battle/cell/grid_cell.lua +++ b/lua/app/ui/battle/cell/grid_cell.lua @@ -29,8 +29,27 @@ function GridCell:refresh(gridEntity, curElement, skillPosId) if self.lastGridType ~= gridEntity:getGridType() then self.lastGridType = gridEntity:getGridType() - local atlas, icon = gridEntity:getIcon() - uiMap["grid_cell.touch_node.ani_node.up_bg"]:setSprite(atlas, icon) + local spineObj = uiMap["grid_cell.touch_node.ani_node.up_bg.ui_spine_obj"] + local upBg = uiMap["grid_cell.touch_node.ani_node.up_bg"] + if gridEntity:getSpineAsset() then + spineObj:setActive(true) + Logger.logHighlight(gridEntity:getSpineIdleName()) + spineObj:loadAssetAsync(gridEntity:getSpineAsset(), function() + if gridEntity:getSpineChangeName() then + spineObj:playAnimComplete(gridEntity:getSpineChangeName(), false, true, function() + spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) + end, true) + else + Logger.logHighlight("----") + spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) + end + end) + upBg:setSprite(GConst.ATLAS_PATH.COMMON, "common_alpha") + else + spineObj:setActive(false) + local atlas, icon = gridEntity:getIcon() + upBg:setSprite(atlas, icon) + end end local skillIcon = uiMap["grid_cell.touch_node.ani_node.skill_icon"] diff --git a/lua/app/userdata/battle/battle_grid_entity.lua b/lua/app/userdata/battle/battle_grid_entity.lua index a83f3d79..9984e0e7 100644 --- a/lua/app/userdata/battle/battle_grid_entity.lua +++ b/lua/app/userdata/battle/battle_grid_entity.lua @@ -394,4 +394,16 @@ function BattleGridEntity:getBreakFlyToCharacterIcon() return self:getGridTypeConfig().bftc_icon end +function BattleGridEntity:getSpineAsset() + return self:getGridTypeConfig().spine_name +end + +function BattleGridEntity:getSpineIdleName() + return self:getGridTypeConfig().spine_idle +end + +function BattleGridEntity:getSpineChangeName() + return self:getGridTypeConfig().spine_change +end + return BattleGridEntity \ No newline at end of file