fix
This commit is contained in:
parent
6b60a73944
commit
5cd90eab7e
@ -43,6 +43,8 @@ EventManager.CUSTOM_EVENT = {
|
||||
-- 竞技场
|
||||
ARENA_SEASON_SETTLEMENT = "ARENA_SEASON_SETTLEMENT",-- 赛季结算
|
||||
ARENA_SEASON_END = "ARENA_SEASON_END",-- 赛季结束
|
||||
ARENA_RECORD_SUCCESS = "ARENA_RECORD_SUCCESS",-- 战报获取成功
|
||||
ARENA_RANK_SUCCESS = "ARENA_RANK_SUCCESS",-- 排行榜获取成功
|
||||
-- BORAD_TOUCH_BEGIN = "BORAD_TOUCH_BEGIN",
|
||||
-- BORAD_TOUCH_OVER = "BORAD_TOUCH_OVER"
|
||||
}
|
||||
|
||||
@ -1,19 +1,37 @@
|
||||
local ArenaManager = class("ArenaManager", BaseModule)
|
||||
|
||||
function ArenaManager:checkSeasonChange()
|
||||
if not DataManager.ArenaData:isInSeasonTime() then
|
||||
-- 不在赛季时间段,赛季改变
|
||||
self:onSeasonChanged()
|
||||
elseif not DataManager.ArenaData:isInSeasonSettlementTime() then
|
||||
-- 不在赛季结算时间段,赛季锁定
|
||||
self:onSeasonSettlement()
|
||||
else
|
||||
-- 赛季未发生改变,不处理
|
||||
end
|
||||
end
|
||||
|
||||
-- 赛季结算
|
||||
function ArenaManager:onSeasonSettlement()
|
||||
EventManager.dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_SETTLEMENT)
|
||||
if EDITOR_MODE then
|
||||
Logger.logHighlight("赛季结算")
|
||||
end
|
||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_SETTLEMENT)
|
||||
end
|
||||
|
||||
-- 赛季改变
|
||||
function ArenaManager:onSeasonChanged()
|
||||
EventManager.dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_END)
|
||||
if EDITOR_MODE then
|
||||
Logger.logHighlight("赛季改变")
|
||||
end
|
||||
if not self.isResetting then
|
||||
return
|
||||
end
|
||||
|
||||
DataManager.ArenaData:onSeasonChanged()
|
||||
self:reqArenaInfo()
|
||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_END)
|
||||
end
|
||||
|
||||
-- 匹配
|
||||
@ -112,6 +130,7 @@ function ArenaManager:rspSettlement(result)
|
||||
end
|
||||
-- 展示结算界面
|
||||
ModuleManager.BattleManager:showArenaBattleResultUI(result.settlement, result.rewards, checkCount)
|
||||
self:checkSeasonChange()
|
||||
end
|
||||
end
|
||||
|
||||
@ -123,6 +142,7 @@ end
|
||||
function ArenaManager:rspRecord(result)
|
||||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||
DataManager.ArenaData:onRecentBattleReceived(result.history)
|
||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_RECORD_SUCCESS)
|
||||
end
|
||||
end
|
||||
|
||||
@ -134,6 +154,7 @@ end
|
||||
function ArenaManager:rspRank(result)
|
||||
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||
DataManager.ArenaData:onRankDataReceived(result.rank, result.top100.info)
|
||||
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_RANK_SUCCESS)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -148,7 +148,7 @@ end
|
||||
function ArenaMatchUI:showMatchResult()
|
||||
local matchInfo = DataManager.ArenaData:getMatchInfo()
|
||||
if not matchInfo then
|
||||
Logger.logError("没有匹配对象却进入了匹配结果页,有问题@.#")
|
||||
Logger.logError("没有获取到匹配对象,检查匹配响应,查看原因")
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
@ -57,9 +57,9 @@ function ArenaRankUI:onLoadRootComplete()
|
||||
self.closeBtn:addClickListener(function()
|
||||
self:closeUI()
|
||||
end)
|
||||
self:bind(DataManager.ArenaData, "isDirty", function()
|
||||
self:onRefresh()
|
||||
end)
|
||||
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_RANK_SUCCESS, function()
|
||||
self:onRefresh()
|
||||
end)
|
||||
end
|
||||
|
||||
function ArenaRankUI:onRefresh()
|
||||
|
||||
@ -52,9 +52,9 @@ function ArenaRecentBattleUI:onLoadRootComplete()
|
||||
self.btnClose:addClickListener(function()
|
||||
self:closeUI()
|
||||
end)
|
||||
self:bind(DataManager.ArenaData, "isDirty", function()
|
||||
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_RECORD_SUCCESS, function()
|
||||
self:onRefresh()
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
function ArenaRecentBattleUI:onRefresh()
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
-- 竞技场:赛季奖励
|
||||
local ArenaSeasonRewardUI = class("ArenaSeasonRewardUI", BaseUI)
|
||||
local MAX_SCROLL_SHOW_COUNT = 10
|
||||
|
||||
function ArenaSeasonRewardUI:isFullScreen()
|
||||
return false
|
||||
@ -31,6 +32,10 @@ function ArenaSeasonRewardUI:onClose()
|
||||
self:unscheduleGlobal(self.seasonChangeSid)
|
||||
self.seasonChangeSid = nil
|
||||
end
|
||||
if self.spineGrading then
|
||||
self.spineGrading:destroy()
|
||||
self.spineGrading = nil
|
||||
end
|
||||
end
|
||||
|
||||
function ArenaSeasonRewardUI:onLoadRootComplete()
|
||||
@ -46,9 +51,10 @@ function ArenaSeasonRewardUI:onLoadRootComplete()
|
||||
-- 领取奖励
|
||||
self.getReward = uiMap["arena_season_reward_ui.bg.last_reward"]
|
||||
self.txSeason = uiMap["arena_season_reward_ui.bg.last_reward.tx_season"]
|
||||
self.imgGrading = uiMap["arena_season_reward_ui.bg.last_reward.img_grading"]
|
||||
self.spineRoot = uiMap["arena_season_reward_ui.bg.last_reward.spine_root"]
|
||||
self.txGrading = uiMap["arena_season_reward_ui.bg.last_reward.img_grading.tx_grading"]
|
||||
self.getRewardComp = uiMap["arena_season_reward_ui.bg.last_reward.rewards"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||
self.rewardList = uiMap["arena_season_reward_ui.bg.last_reward.rewards"]
|
||||
self.getRewardComp = self.rewardList:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||
self.btnGet = uiMap["arena_season_reward_ui.bg.last_reward.btn_get"]
|
||||
self.txGet = uiMap["arena_season_reward_ui.bg.last_reward.btn_get.tx_get"]
|
||||
|
||||
@ -112,22 +118,54 @@ function ArenaSeasonRewardUI:showGetReward()
|
||||
self.getReward:setActive(true)
|
||||
|
||||
local lastId = DataManager.ArenaData:getLastGradingId()
|
||||
local rewards = DataManager.ArenaData:getGradingRewardInfo(lastId)
|
||||
|
||||
self.txSeason:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_13, DataManager.ArenaData:getSeason() - 1))
|
||||
self.imgGrading:setSprite(GConst.ATLAS_PATH.ARENA, DataManager.ArenaData:getGradingIconName(lastId))
|
||||
self.txGrading:setText(DataManager.ArenaData:getGradingName(lastId))
|
||||
self.txGet:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
|
||||
if self.spineGrading then
|
||||
self.spineGrading:destroy()
|
||||
self.spineGrading = nil
|
||||
end
|
||||
SpineManager:loadUISpineWidgetAsync(DataManager.ArenaData:getGradingIconName(lastId).."_spine", self.spineRoot, function(spineObject)
|
||||
self.spineGrading = spineObject
|
||||
self.spineGrading:setSkin(DataManager.ArenaData:getGradingNumName(lastId))
|
||||
self.spineGrading:playAnimComplete("born", false, false, function()
|
||||
self.spineGrading:playAnim("idle", true, false)
|
||||
end)
|
||||
end)
|
||||
|
||||
self.btnGet:addRedPoint(110, 35, 0.6)
|
||||
|
||||
local rewards = DataManager.ArenaData:getGradingRewardInfo(lastId)
|
||||
local rewardCount = #rewards
|
||||
self.getRewardComp:addInitCallback(function()
|
||||
return GConst.TYPEOF_LUA_CLASS.REWARD_CELL
|
||||
end)
|
||||
self.getRewardComp:addRefreshCallback(function(index, cell)
|
||||
cell:refresh(rewards[index])
|
||||
cell:refreshByConfig(rewards[index])
|
||||
end)
|
||||
self.seasonRewardComp:clearCells()
|
||||
self.seasonRewardComp:refillCells(#rewards)
|
||||
self.getRewardComp:clearCells()
|
||||
|
||||
if rewardCount > MAX_SCROLL_SHOW_COUNT then
|
||||
local comp = self.rewardList:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
||||
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Elastic
|
||||
self.getRewardComp:setPerLineNum(5)
|
||||
self.rewardList:setSizeDeltaX(560)
|
||||
else
|
||||
local comp = self.rewardList:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_SCROLL_RECT)
|
||||
comp.movementType = CS.UnityEngine.UI.ScrollRect.MovementType.Clamped
|
||||
if rewardCount >= 5 then
|
||||
self.getRewardComp:setPerLineNum(5)
|
||||
self.rewardList:setSizeDeltaX(560)
|
||||
elseif rewardCount <= 0 then
|
||||
self.getRewardComp:setPerLineNum(1)
|
||||
self.rewardList:setSizeDeltaX(560)
|
||||
else
|
||||
self.getRewardComp:setPerLineNum(rewardCount)
|
||||
self.rewardList:setSizeDeltaX(112 * rewardCount)
|
||||
end
|
||||
end
|
||||
self.getRewardComp:refillCells(rewardCount)
|
||||
end
|
||||
|
||||
return ArenaSeasonRewardUI
|
||||
@ -121,6 +121,10 @@ function BattleResultUI:onLoadRootComplete()
|
||||
self.arenaTxProg = uiMap["battle_result_ui.arena_node.prog.tx_prog"]
|
||||
-- 竞技场广告宝箱
|
||||
self.arenaBoxNode = uiMap["battle_result_ui.arena_box_node"]
|
||||
self.arenaBoxImgIcon = uiMap["battle_result_ui.arena_box_node.img_box"]
|
||||
self.arenaBoxTxTitle = uiMap["battle_result_ui.arena_box_node.tx_box"]
|
||||
self.arenaBoxBtnGet = uiMap["battle_result_ui.arena_box_node.btn_get"]
|
||||
self.arenaBoxTxGet = uiMap["battle_result_ui.arena_box_node.btn_get.tx_get"]
|
||||
|
||||
self.victoryMask:addClickListener(function()
|
||||
self:onClickMask()
|
||||
@ -128,6 +132,9 @@ function BattleResultUI:onLoadRootComplete()
|
||||
self.defeatMask:addClickListener(function()
|
||||
self:onClickMask()
|
||||
end)
|
||||
self.arenaBoxBtnGet:addClickListener(function()
|
||||
-- 打开宝箱界面
|
||||
end)
|
||||
end
|
||||
|
||||
function BattleResultUI:onClickMask()
|
||||
@ -151,6 +158,7 @@ function BattleResultUI:onRefresh()
|
||||
self:refreshRewards()
|
||||
self:refreshUnitInfo()
|
||||
self:refreshArenaNode()
|
||||
self:refreshArenaBoxNode()
|
||||
end
|
||||
|
||||
function BattleResultUI:refreshVictoryNode()
|
||||
@ -216,7 +224,6 @@ end
|
||||
function BattleResultUI:refreshArenaNode()
|
||||
if self.battleType ~= GConst.BattleConst.BATTLE_TYPE.ARENA then
|
||||
self.arenaNode:setVisible(false)
|
||||
self.arenaBoxNode:setVisible(false)
|
||||
return
|
||||
end
|
||||
|
||||
@ -258,17 +265,32 @@ function BattleResultUI:refreshArenaNode()
|
||||
else
|
||||
self.arenaTxScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_27, self.incrScore))
|
||||
end
|
||||
end
|
||||
|
||||
function BattleResultUI:refreshArenaBoxNode()
|
||||
if self.battleType ~= GConst.BattleConst.BATTLE_TYPE.ARENA then
|
||||
self.arenaBoxNode:setVisible(false)
|
||||
return
|
||||
end
|
||||
if self.isWin and (self.arenaTotalCount % GFunc.getConstIntValue("arena_win_adbox")) ~= 0 then
|
||||
return
|
||||
end
|
||||
if not self.isWin and (self.arenaTotalCount % GFunc.getConstIntValue("arena_lose_adbox")) ~= 0 then
|
||||
return
|
||||
end
|
||||
self.arenaBoxNode:setVisible(true)
|
||||
self.arenaBoxTxGet:setText(I18N:getGlobalText(I18N.GlobalConst.BTN_CLAIM))
|
||||
|
||||
-- 检查ad宝箱显示
|
||||
if self.isWin then
|
||||
if (self.arenaTotalCount % GFunc.getConstIntValue("arena_win_adbox")) == 0 then
|
||||
self.arenaBoxNode:setVisible(true)
|
||||
|
||||
end
|
||||
-- 胜利宝箱
|
||||
self.arenaBoxNode:setSprite(GConst.ATLAS_PATH.ARENA, "arena_bg_6")
|
||||
self.arenaBoxImgIcon:setSprite(GConst.ATLAS_PATH.ARENA, "arena_chest_2")
|
||||
self.arenaBoxTxTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_32))
|
||||
else
|
||||
if (self.arenaTotalCount % GFunc.getConstIntValue("arena_lose_adbox")) == 0 then
|
||||
self.arenaBoxNode:setVisible(true)
|
||||
end
|
||||
-- 鼓励宝箱
|
||||
self.arenaBoxNode:setSprite(GConst.ATLAS_PATH.ARENA, "arena_bg_5")
|
||||
self.arenaBoxImgIcon:setSprite(GConst.ATLAS_PATH.ARENA, "arena_chest_1")
|
||||
self.arenaBoxTxTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_33))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -16,6 +16,11 @@ function ArenaComp:getFightDesc()
|
||||
end
|
||||
|
||||
function ArenaComp:onClickFight()
|
||||
-- 赛季结算
|
||||
if DataManager.ArenaData:isInSeasonSettlementTime() then
|
||||
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_29))
|
||||
return
|
||||
end
|
||||
UIManager:showUI("app/ui/arena/arena_match_ui")
|
||||
end
|
||||
|
||||
@ -61,11 +66,6 @@ function ArenaComp:init()
|
||||
ModuleManager.TipsManager:showHelpTips(params)
|
||||
end)
|
||||
self.btnRecord:addClickListener(function()
|
||||
-- 赛季结算
|
||||
if DataManager.ArenaData:isInSeasonSettlement() then
|
||||
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_29))
|
||||
return
|
||||
end
|
||||
UIManager:showUI("app/ui/arena/arena_recent_battle_ui")
|
||||
end)
|
||||
self.btnFormation:addClickListener(function()
|
||||
@ -171,16 +171,22 @@ function ArenaComp:updateTimer()
|
||||
self.seasonEndSid = nil
|
||||
end
|
||||
|
||||
if DataManager.ArenaData:isInSeasonSettlement() then
|
||||
if not DataManager.ArenaData:isInSeasonSettlementTime() then
|
||||
-- 结算计时器
|
||||
if EDITOR_MODE then
|
||||
Logger.logHighlight("赛季锁定倒计时:"..DataManager.ArenaData:getRemainSeasonSettlementTime())
|
||||
end
|
||||
self.seasonSettlementSid = self:getBaseObject():performWithDelayGlobal(function()
|
||||
ModuleManager.ArenaManager:onSeasonSettlement()
|
||||
end, DataManager.ArenaData:getRemainSeasonTime())
|
||||
end, DataManager.ArenaData:getRemainSeasonSettlementTime())
|
||||
else
|
||||
-- 结束计时器
|
||||
if EDITOR_MODE then
|
||||
Logger.logHighlight("赛季结束倒计时:"..DataManager.ArenaData:getRemainSeasonTime())
|
||||
end
|
||||
self.seasonEndSid = self:getBaseObject():performWithDelayGlobal(function()
|
||||
ModuleManager.ArenaManager:onSeasonChanged()
|
||||
end, DataManager.ArenaData:getRemainSeasonSettlementTime())
|
||||
end, DataManager.ArenaData:getRemainSeasonTime())
|
||||
end
|
||||
|
||||
-- 显示倒计时
|
||||
|
||||
@ -130,10 +130,15 @@ function ArenaData:hasServerData()
|
||||
end
|
||||
|
||||
-- 是否在赛季结算中
|
||||
function ArenaData:isInSeasonSettlement()
|
||||
function ArenaData:isInSeasonSettlementTime()
|
||||
return self:getRemainSeasonTime() > 0 and self:getRemainSeasonSettlementTime() < 0
|
||||
end
|
||||
|
||||
-- 是否在赛季时间段中
|
||||
function ArenaData:isInSeasonTime()
|
||||
return self:getRemainSeasonTime() > 0 and self:getRemainSeasonSettlementTime() > 0
|
||||
end
|
||||
|
||||
-- 获取当前为第几赛季
|
||||
function ArenaData:getSeason()
|
||||
return self.season
|
||||
@ -413,7 +418,6 @@ end
|
||||
function ArenaData:onRankDataReceived(rank, list)
|
||||
self.rank = rank
|
||||
self.rankList = list
|
||||
self:setDirty()
|
||||
end
|
||||
|
||||
-- 获取到排行榜编队信息
|
||||
@ -432,7 +436,6 @@ function ArenaData:onRecentBattleReceived(recentBattle)
|
||||
return a.occur_at > b.occur_at
|
||||
end)
|
||||
self.recentBattle = recentBattle
|
||||
self:setDirty()
|
||||
end
|
||||
|
||||
-- 获取到匹配数据
|
||||
@ -445,15 +448,19 @@ end
|
||||
|
||||
-- 结算战斗数据
|
||||
function ArenaData:onBattleResultReceived(settlement)
|
||||
-- 战斗记录改变
|
||||
if self.recentBattle == nil then
|
||||
self.recentBattle = {}
|
||||
self.matchInfo = nil
|
||||
|
||||
if settlement then
|
||||
-- 战斗记录改变
|
||||
if self.recentBattle == nil then
|
||||
self.recentBattle = {}
|
||||
end
|
||||
table.remove(self.recentBattle, #self.recentBattle)
|
||||
table.insert(self.recentBattle, 1, settlement)
|
||||
-- 积分改变
|
||||
self.score = self.score + settlement.incr_score
|
||||
self.curGradingId = self:getGradingIdFromScore(self.score)
|
||||
end
|
||||
table.remove(self.recentBattle, #self.recentBattle)
|
||||
table.insert(self.recentBattle, 1, settlement)
|
||||
-- 积分改变
|
||||
self.score = self.score + settlement.incr_score
|
||||
self.curGradingId = self:getGradingIdFromScore(self.score)
|
||||
|
||||
self:setDirty()
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user