c1_lua/lua/app/ui/battle/battle_revive_ui.lua
2025-10-20 11:09:54 +08:00

166 lines
5.4 KiB
Lua

local BattleReviveUI = class("BattleReviveUI", BaseUI)
function BattleReviveUI:isFullScreen()
return false
end
function BattleReviveUI:ctor(params)
params = params or {}
self.callback = params.callback
self.battleType = params.battleType
end
function BattleReviveUI:getPrefabPath()
return "assets/prefabs/ui/battle/battle_revive_ui.prefab"
end
function BattleReviveUI:onLoadRootComplete()
self:_display()
self:_addListeners()
end
function BattleReviveUI:_display()
local uiMap = self.root:genAllChildren()
self.title1Tx = uiMap["battle_revive_ui.bg.tx_1"]
-- self.title2Tx = uiMap["battle_revive_ui.bg.tx_2"]
self.descTx = uiMap["battle_revive_ui.bg.tx_desc"]
self.costBtn = uiMap["battle_revive_ui.bg.cost_btn"]
self.costTx = uiMap["battle_revive_ui.bg.cost_btn.tx"]
self.adBtn = uiMap["battle_revive_ui.bg.ad_btn"]
self.adIcon = uiMap["battle_revive_ui.bg.ad_btn.icon"]
self.adTx = uiMap["battle_revive_ui.bg.ad_btn.tx"]
self.adLimitTx = uiMap["battle_revive_ui.limit_tx"]
self.cancelBtn = uiMap["battle_revive_ui.bg.cancel_btn"]
self.cancelTx = uiMap["battle_revive_ui.bg.cancel_btn.tx"]
self.title1Tx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_7))
self.descTx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_9))
-- self.title2Tx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_8))
if self.battleType == GConst.BattleConst.BATTLE_TYPE.STAGE then
self.adLimitTx:setText(DataManager.ChapterData:getReReviveCount() .. "/" .. GFunc.getConstIntValue("ads_revive_limit"))
elseif self.battleType == GConst.BattleConst.BATTLE_TYPE.DAILY_CHALLENGE then
self.adLimitTx:setText(DataManager.DailyChallengeData:getReReviveCount() .. "/" .. GFunc.getConstIntValue("daily_challenge_ads_revive_limit"))
end
self.adTx:setText(I18N:getGlobalText(I18N.GlobalConst.FREE_DESC))
self.cancelTx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_10))
GFunc.setAdsSprite(self.adIcon)
local cost = GFunc.getConstReward("cost_revive")
local costNum = cost.num
local costEnough = GFunc.checkCost(cost.id, costNum, false)
self.costTx:setText(costEnough and costNum or ("<color=#FF0000>".. costNum.. "</color>"))
-- self.spineObj = uiMap["battle_revive_ui.ui_spine_obj"]
-- self.spineObj:playAnimComplete("born", false, true, function()
-- self.spineObj:playAnim("idle", true, true)
-- end)
-- self.fx = uiMap["battle_revive_ui.vfx_b13_ui_revive_b01"]
-- self.fx:setActive(false)
-- 根据复活次数更新按钮位置
local canAdRevive = false
if self.battleType == GConst.BattleConst.BATTLE_TYPE.STAGE then
canAdRevive = DataManager.ChapterData:canAdRevive()
elseif self.battleType == GConst.BattleConst.BATTLE_TYPE.DAILY_CHALLENGE then
canAdRevive = DataManager.DailyChallengeData:canAdRevive()
end
if not canAdRevive then
self.costBtn:setActive(true)
self.adBtn:setActive(false)
self.adLimitTx:setActive(false)
self.costBtn:setAnchoredPositionX(0)
else
self.costBtn:setActive(true)
self.adBtn:setActive(true)
self.adLimitTx:setActive(true)
self.costBtn:setAnchoredPositionX(-144)
end
-- 免广告卡模块
local noAdNode = uiMap["battle_revive_ui.no_ad_node"]
local noAdTitleTx = uiMap["battle_revive_ui.no_ad_node.tx_ad"]
local noAdDescTx = uiMap["battle_revive_ui.no_ad_node.tx_desc"]
local noAdBuyBtn = uiMap["battle_revive_ui.no_ad_node.btn_buy"]
local noAdBuyTx = uiMap["battle_revive_ui.no_ad_node.btn_buy.tx_desc"]
-- if DataManager.PlayerData:getNoAdFuncOpen() and not DataManager.PlayerData:getNoAdActive() then
-- noAdNode:setActive(true)
-- noAdTitleTx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_15))
-- noAdDescTx:setText(I18N:getGlobalText(I18N.GlobalConst.ADS_DESC_16))
-- noAdBuyBtn:addClickListener(function()
-- ModuleManager.PrivilegeCardManager:buyAdCard()
-- end)
-- noAdBuyTx:setText(DataManager.PlayerData:getNoAdPrice())
-- else
-- noAdNode:setActive(false)
-- end
end
function BattleReviveUI:_addListeners()
self.costBtn:addClickListener(function()
local cost
if self.battleType == GConst.BattleConst.BATTLE_TYPE.STAGE then
cost = GFunc.getConstReward("cost_revive")
elseif self.battleType == GConst.BattleConst.BATTLE_TYPE.DAILY_CHALLENGE then
cost = GFunc.getConstReward("daily_challenge_cost_revive")
end
if not cost then
return
end
if GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, cost.num, true) then
self:doRevive(false)
end
end)
self.adBtn:addClickListener(function()
SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.BATTLE_REVIVE, function()
self:doRevive(true)
end)
end)
self.cancelBtn:addClickListener(function()
self:cancelRevive()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.BATTLE_REVIVE, function()
self:onRevive()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.BATTLE_REVIVE_FAILED, function()
self:onReviveFailed()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.NO_AD_ACTIVE, function()
self:_display()
end)
end
function BattleReviveUI:doRevive(isAd)
ModuleManager.BattleManager:reqFightRevive(isAd)
end
function BattleReviveUI:onRevive()
-- self.fx:setActive(true)
-- self.fx:play()
-- self.spineObj:playAnimComplete("open", false, true, function()
-- self:closeUI()
self:closeUI()
if self.callback then
self.callback(true)
end
end
function BattleReviveUI:onReviveFailed()
self:closeUI()
if self.callback then
self.callback(false)
end
end
function BattleReviveUI:cancelRevive()
self:closeUI()
if self.callback then
self.callback(false)
end
end
return BattleReviveUI