c1_lua/lua/app/ui/summon/summon_unlock_ui.lua
2025-11-07 10:55:08 +08:00

81 lines
2.5 KiB
Lua
Executable File

local SummonUnlockUI = class("SummonUnlockUI", BaseUI)
local CELL_HEIGHT = 230
local CELL_HEIGHT_1 = 120
local NOT_OWN_NODE_HEIGHT = 56
local DIFF_HEIGHT = 20
local ForceCell = "app/ui/summon/cell/summon_force_cell"
function SummonUnlockUI:isFullScreen()
return false
end
function SummonUnlockUI:ctor(params)
params = params or {}
self.unlockList = params.unlockList or {}
self.idx = 1
end
function SummonUnlockUI:getPrefabPath()
return "assets/prefabs/ui/summon/summon_unlock_ui.prefab"
end
function SummonUnlockUI:onClose()
self.heroNode:removeAllChildren()
end
function SummonUnlockUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
self.root:addClickListener(function()
self:checkUnlockMap()
end)
self.heroNode = uiMap["summon_unlock_ui.hero_bg.hero_node"]
self.nameTx = uiMap["summon_unlock_ui.name_tx"]
self.matchTx = uiMap["summon_unlock_ui.match_node.match_tx"]
self.matchImg = uiMap["summon_unlock_ui.match_node.match_tx.match_img"]
self.qltBg = uiMap["summon_unlock_ui.qlt_bg"]
self.qltBgTx = uiMap["summon_unlock_ui.qlt_bg.qlt_tx"]
self.uiSpine = uiMap["summon_unlock_ui.ui_spine_obj"]
uiMap["summon_unlock_ui.title_bg.title_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.ACTIVITY_MOON_DESC_3))
uiMap["summon_unlock_ui.continue_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.CLICK_TO_CONTINUE))
end
function SummonUnlockUI:onRefresh()
self.heroNode:removeAllChildren()
self.heroId = table.remove(self.unlockList, 1)
local heroEntity = DataManager.HeroData:getHeroById(self.heroId)
local matchType = heroEntity:getMatchType()
local qlt = heroEntity:getQlt()
self.nameTx:setText(heroEntity:getName())
self.matchTx:setText(ModuleManager.HeroManager:getMatchTypeName(matchType))
self.matchImg:setSprite(GConst.ATLAS_PATH.ICON_HERO, ModuleManager.HeroManager:getMatchTypeIcon(matchType))
self.qltBg:setSprite(GFunc.getHeroQltImg(qlt))
self.qltBgTx:setText(GFunc.getHeroQltStr(qlt))
self:loadHero()
end
function SummonUnlockUI:loadHero()
local cfg = DataManager.HeroData:getHeroConfig(self.heroId)
local qlt = cfg.qlt - 1
SpineManager:loadHeroAsync(cfg.model_id, self.heroNode, function(spineObject)
AudioManager:playEffect(AudioManager.EFFECT_ID.UI_SUMMON_SHOW_HERO)
spineObject:playAnimation("idle", true)
self.uiSpine:playAnimComplete("open0" .. qlt, false, true, function()
self.uiSpine:playAnim("idle0" .. qlt, true, true)
end)
end)
end
function SummonUnlockUI:checkUnlockMap()
if #self.unlockList <= 0 then
self:closeUI()
return
end
self.idx = self.idx + 1
self:onRefresh()
end
return SummonUnlockUI