竞技场锦标赛
This commit is contained in:
parent
f6c4010add
commit
327cffeb56
@ -173,6 +173,9 @@ BIReport.ITEM_GET_TYPE = {
|
|||||||
TOURN_WAVE_BOUNTY_LEVEL = "TournWaveBountyLevel",
|
TOURN_WAVE_BOUNTY_LEVEL = "TournWaveBountyLevel",
|
||||||
TOURN_WAVE_RANK_REWARD = "TournWaveRankReward",
|
TOURN_WAVE_RANK_REWARD = "TournWaveRankReward",
|
||||||
TOURN_WAVE_GIFT = "TournWaveGift",
|
TOURN_WAVE_GIFT = "TournWaveGift",
|
||||||
|
TOURN_ARENA_BOUNTY_REWARD = "TournArenaBountyReward",
|
||||||
|
TOURN_ARENA_BOUNTY_LEVEL = "TournArenaBountyLevel",
|
||||||
|
TOURN_ARENA_RANK_REWARD = "TournArenaRankReward",
|
||||||
TOURN_ARENA_GIFT = "TournArenaGift",
|
TOURN_ARENA_GIFT = "TournArenaGift",
|
||||||
FULL_MOON_TASK = "FullMoonTask",
|
FULL_MOON_TASK = "FullMoonTask",
|
||||||
FULL_MOON_TASK_PROG_REWARD = "FullMoonTaskProgReward",
|
FULL_MOON_TASK_PROG_REWARD = "FullMoonTaskProgReward",
|
||||||
|
|||||||
@ -35,6 +35,7 @@ function DataManager:init()
|
|||||||
self:initManager("SummonData", "app/userdata/summon/summon_data")
|
self:initManager("SummonData", "app/userdata/summon/summon_data")
|
||||||
self:initManager("FullMoonData", "app/userdata/activity/full_moon/full_moon_data")
|
self:initManager("FullMoonData", "app/userdata/activity/full_moon/full_moon_data")
|
||||||
self:initManager("TournWaveData", "app/userdata/activity/tourn_wave/tourn_wave_data")
|
self:initManager("TournWaveData", "app/userdata/activity/tourn_wave/tourn_wave_data")
|
||||||
|
self:initManager("TournArenaData", "app/userdata/activity/tourn_arena/tourn_arena_data")
|
||||||
self:initManager("AIHelperData", "app/userdata/game_setting/ai_helper_data")
|
self:initManager("AIHelperData", "app/userdata/game_setting/ai_helper_data")
|
||||||
self:initManager("HeroFundData", "app/userdata/activity/hero_fund/hero_fund_data")
|
self:initManager("HeroFundData", "app/userdata/activity/hero_fund/hero_fund_data")
|
||||||
self:initManager("ActBossRushData", "app/userdata/activity/act_boss_rush/act_boss_rush_data")
|
self:initManager("ActBossRushData", "app/userdata/activity/act_boss_rush/act_boss_rush_data")
|
||||||
@ -125,6 +126,7 @@ function DataManager:clear()
|
|||||||
self.SummonData:clear()
|
self.SummonData:clear()
|
||||||
self.FullMoonData:clear()
|
self.FullMoonData:clear()
|
||||||
self.TournWaveData:clear()
|
self.TournWaveData:clear()
|
||||||
|
self.TournArenaData:clear()
|
||||||
-- 任务数据最后清理
|
-- 任务数据最后清理
|
||||||
self.TaskData:clear()
|
self.TaskData:clear()
|
||||||
self.AIHelperData:clear()
|
self.AIHelperData:clear()
|
||||||
@ -542,6 +544,11 @@ DataManager.activityOpenFunc = {
|
|||||||
ModuleManager.TournWaveManager:reqActData()
|
ModuleManager.TournWaveManager:reqActData()
|
||||||
ModuleManager.TournWaveManager:initTimer()
|
ModuleManager.TournWaveManager:initTimer()
|
||||||
end,
|
end,
|
||||||
|
[6] = function(params)
|
||||||
|
DataManager.TournArenaData:setActStatus(params)
|
||||||
|
ModuleManager.TournArenaManager:reqActData()
|
||||||
|
ModuleManager.TournArenaManager:initTimer()
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
DataManager.waitOpenActivity = {
|
DataManager.waitOpenActivity = {
|
||||||
@ -562,6 +569,10 @@ DataManager.waitOpenActivity = {
|
|||||||
DataManager.TournWaveData:setActStatus(params)
|
DataManager.TournWaveData:setActStatus(params)
|
||||||
ModuleManager.TournWaveManager:initTimer()
|
ModuleManager.TournWaveManager:initTimer()
|
||||||
end,
|
end,
|
||||||
|
[6] = function(params)
|
||||||
|
DataManager.TournArenaData:setActStatus(params)
|
||||||
|
ModuleManager.TournArenaManager:initTimer()
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
return DataManager
|
return DataManager
|
||||||
@ -47,6 +47,7 @@ EventManager.CUSTOM_EVENT = {
|
|||||||
ARENA_RECORD_SUCCESS = "ARENA_RECORD_SUCCESS",-- 战报获取成功
|
ARENA_RECORD_SUCCESS = "ARENA_RECORD_SUCCESS",-- 战报获取成功
|
||||||
ARENA_RANK_SUCCESS = "ARENA_RANK_SUCCESS",-- 排行榜获取成功
|
ARENA_RANK_SUCCESS = "ARENA_RANK_SUCCESS",-- 排行榜获取成功
|
||||||
ARENA_AD_BOX_SUCCESS = "ARENA_AD_BOX_SUCCESS",-- ad宝箱获取成功
|
ARENA_AD_BOX_SUCCESS = "ARENA_AD_BOX_SUCCESS",-- ad宝箱获取成功
|
||||||
|
ARENA_BATTLE_SETTLEMENT = "ARENA_BATTLE_SETTLEMENT",-- 竞技场战斗结算
|
||||||
-- 图鉴
|
-- 图鉴
|
||||||
COLLECTION_CLICK_GET_POINT = "COLLECTION_CLICK_GET_POINT",
|
COLLECTION_CLICK_GET_POINT = "COLLECTION_CLICK_GET_POINT",
|
||||||
-- 装备
|
-- 装备
|
||||||
@ -64,6 +65,7 @@ EventManager.CUSTOM_EVENT = {
|
|||||||
ACTIVITY_SUMMER_END = "ACTIVITY_SUMMER_END",
|
ACTIVITY_SUMMER_END = "ACTIVITY_SUMMER_END",
|
||||||
ACTIVITY_FULL_MOON_END = "ACTIVITY_FULL_MOON_END",
|
ACTIVITY_FULL_MOON_END = "ACTIVITY_FULL_MOON_END",
|
||||||
ACTIVITY_TOURN_WAVE_END = "ACTIVITY_TOURN_WAVE_END",
|
ACTIVITY_TOURN_WAVE_END = "ACTIVITY_TOURN_WAVE_END",
|
||||||
|
ACTIVITY_TOURN_ARENA_END = "ACTIVITY_TOURN_ARENA_END",
|
||||||
MAIN_UI_CHECK_SIDE_BAR = "MAIN_UI_CHECK_SIDE_BAR",
|
MAIN_UI_CHECK_SIDE_BAR = "MAIN_UI_CHECK_SIDE_BAR",
|
||||||
FORMATION_CHANGE = "FORMATION_CHANGE",
|
FORMATION_CHANGE = "FORMATION_CHANGE",
|
||||||
BATTLE_REBIRTH = "BATTLE_REBIRTH",
|
BATTLE_REBIRTH = "BATTLE_REBIRTH",
|
||||||
|
|||||||
@ -81,6 +81,8 @@ local MODULE_PATHS = {
|
|||||||
FullMoonManager = "app/module/activity/full_moon/full_moon_manager",
|
FullMoonManager = "app/module/activity/full_moon/full_moon_manager",
|
||||||
-- 波次锦标赛活动
|
-- 波次锦标赛活动
|
||||||
TournWaveManager = "app/module/activity/tourn_wave/tourn_wave_manager",
|
TournWaveManager = "app/module/activity/tourn_wave/tourn_wave_manager",
|
||||||
|
-- 竞技场锦标赛活动
|
||||||
|
TournArenaManager = "app/module/activity/tourn_arena/tourn_arena_manager",
|
||||||
-- 符文副本
|
-- 符文副本
|
||||||
DungeonRuneManager = "app/module/dungeon_rune/dungeon_rune_manager",
|
DungeonRuneManager = "app/module/dungeon_rune/dungeon_rune_manager",
|
||||||
-- 梦魇酒馆
|
-- 梦魇酒馆
|
||||||
@ -141,6 +143,7 @@ function ModuleManager:init()
|
|||||||
ModuleManager.DailyChallengeManager:init()
|
ModuleManager.DailyChallengeManager:init()
|
||||||
ModuleManager.PlayerManager:init()
|
ModuleManager.PlayerManager:init()
|
||||||
ModuleManager.SkinManager:init()
|
ModuleManager.SkinManager:init()
|
||||||
|
ModuleManager.TournArenaManager:init()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 功能是否开启
|
-- 功能是否开启
|
||||||
|
|||||||
@ -25,6 +25,7 @@ local CONST_PATHS = {
|
|||||||
DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
|
DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
|
||||||
FullMoonConst = "app/module/activity/full_moon/full_moon_const",
|
FullMoonConst = "app/module/activity/full_moon/full_moon_const",
|
||||||
TournWaveConst = "app/module/activity/tourn_wave/tourn_wave_const",
|
TournWaveConst = "app/module/activity/tourn_wave/tourn_wave_const",
|
||||||
|
TournArenaConst = "app/module/activity/tourn_arena/tourn_arena_const",
|
||||||
}
|
}
|
||||||
|
|
||||||
if EDITOR_MODE then
|
if EDITOR_MODE then
|
||||||
|
|||||||
8
lua/app/module/activity/tourn_arena.meta
Normal file
8
lua/app/module/activity/tourn_arena.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0a51eb4f4ea887b4fb3681027bf8e553
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
30
lua/app/module/activity/tourn_arena/tourn_arena_const.lua
Normal file
30
lua/app/module/activity/tourn_arena/tourn_arena_const.lua
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
local TournArenaConst = {}
|
||||||
|
|
||||||
|
-- 界面
|
||||||
|
TournArenaConst.PANEL_TYPE = {
|
||||||
|
BOUNTY = 1,
|
||||||
|
RANK = 2,
|
||||||
|
GIFT = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- 战令档位
|
||||||
|
TournArenaConst.BOUNTY_GRADE_TYPE = {
|
||||||
|
FREE = 0,
|
||||||
|
PAY1 = 1,
|
||||||
|
PAY2 = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- 战令礼包id
|
||||||
|
TournArenaConst.BOUNTY_GIFT_ID_1 = 240102
|
||||||
|
TournArenaConst.BOUNTY_GIFT_ID_2 = 240202
|
||||||
|
|
||||||
|
TournArenaConst.GIFT_IDS = {
|
||||||
|
240302,
|
||||||
|
240402,
|
||||||
|
240502,
|
||||||
|
240602,
|
||||||
|
240702,
|
||||||
|
240802,
|
||||||
|
}
|
||||||
|
|
||||||
|
return TournArenaConst
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fcf392b8e24fe79459d4bb5f8eb0c5d7
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
133
lua/app/module/activity/tourn_arena/tourn_arena_manager.lua
Normal file
133
lua/app/module/activity/tourn_arena/tourn_arena_manager.lua
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
local TournArenaManager = class("TournArenaManager", BaseModule)
|
||||||
|
|
||||||
|
function TournArenaManager:init()
|
||||||
|
self:addEventListener(EventManager.CUSTOM_EVENT.ARENA_BATTLE_SETTLEMENT, function(isWin)
|
||||||
|
self:reqActData()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:showActMainUI()
|
||||||
|
UIManager:showUI("app/ui/activity/tourn_arena/tourn_arena_ui")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 初始化计时器
|
||||||
|
function TournArenaManager:initTimer()
|
||||||
|
self:unscheduleGlobal(self.actSid)
|
||||||
|
|
||||||
|
if DataManager.TournArenaData:isActiveTime() then
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动结束倒计时:"..DataManager.TournArenaData:getEndRemainTime())
|
||||||
|
self.actSid = self:performWithDelayGlobal(function()
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动结束")
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_ARENA_END)
|
||||||
|
end, DataManager.TournArenaData:getEndRemainTime())
|
||||||
|
elseif DataManager.TournArenaData:getStartRemainTime() > 0 then
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动开始倒计时:"..DataManager.TournArenaData:getStartRemainTime())
|
||||||
|
self.actSid = self:performWithDelayGlobal(function()
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动开始")
|
||||||
|
self:reqActData()
|
||||||
|
end, DataManager.TournArenaData:getStartRemainTime())
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 购买活动战令
|
||||||
|
function TournArenaManager:buyBounty(giftId)
|
||||||
|
PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 请求活动数据
|
||||||
|
function TournArenaManager:reqActData()
|
||||||
|
if not DataManager.TournArenaData:isOpen() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not DataManager.TournArenaData:isActiveTime() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if self.isReqActData then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.isReqActData = true
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaDataReq, {}, {}, self.rspActData, nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:rspActData(result)
|
||||||
|
self.isReqActData = false
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.TournArenaData:onGetActData(result.tourn_arena)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 请求战令奖励
|
||||||
|
function TournArenaManager:reqBountyReward(id, grade)
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaBountyClaimReq, {id = id, grade = grade}, {}, self.rspBountyReward, BIReport.ITEM_GET_TYPE.TOURN_ARENA_BOUNTY_REWARD)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:rspBountyReward(result)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.TournArenaData:onReceivedBountyReward(result.success_id_grade)
|
||||||
|
|
||||||
|
GFunc.showRewardBox(result.rewards)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 购买战令等级
|
||||||
|
function TournArenaManager:reqBuyBountyLevel()
|
||||||
|
local cost = DataManager.TournArenaData:getBuyBountyLevelCost()
|
||||||
|
local costId = GFunc.getRewardId(cost)
|
||||||
|
local costNum = GFunc.getRewardNum(cost)
|
||||||
|
if not GFunc.checkCost(costId, costNum, true) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local params ={
|
||||||
|
titleTx = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_TITLE),
|
||||||
|
content = I18N:getGlobalText(I18N.GlobalConst.BOUNTY_BUY_LEVEL_COUNTENT),
|
||||||
|
boxType = GConst.MESSAGE_BOX_TYPE.MB_OK_CANCEL,
|
||||||
|
showToday = GConst.MESSAGE_BOX_SHOW_TODAY.ACTIVITY_BUY_LEVEL,
|
||||||
|
costId = costId,
|
||||||
|
costNum = costNum,
|
||||||
|
okFunc = function()
|
||||||
|
local id = DataManager.TournArenaData:getBountyCfgByLevel(DataManager.TournArenaData:getBountyLevel() + 1).id
|
||||||
|
-- Logger.logHighlight("购买战令等级:"..id)
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaBountyClaimByDiamondReq, {id = id}, {}, self.rspBuyBountyLevel, BIReport.ITEM_GET_TYPE.TOURN_ARENA_BOUNTY_LEVEL)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
GFunc.showMessageBox(params)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:rspBuyBountyLevel(result)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.TournArenaData:onBoughtBountyLevel()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取排行榜数据
|
||||||
|
function TournArenaManager:reqRankList(turn)
|
||||||
|
if turn == self.isReqRankList then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.isReqRankList = turn
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaRankReq, {turn = turn}, {}, self.rspRankList, nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:rspRankList(result)
|
||||||
|
self.isReqRankList = nil
|
||||||
|
DataManager.TournArenaData:setInReset(false)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.TournArenaData:onGetRankData(result.reqData.turn, result.ranks, result.score, result.own_rank)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 领取排行榜奖励
|
||||||
|
function TournArenaManager:reqRankReward()
|
||||||
|
self:sendMessage(ProtoMsgType.FromMsgEnum.TournArenaRankClaimRewardReq, {}, {}, self.rspRankReward, BIReport.ITEM_GET_TYPE.TOURN_ARENA_RANK_REWARD)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaManager:rspRankReward(result)
|
||||||
|
if result.err_code == GConst.ERROR_STR.SUCCESS then
|
||||||
|
DataManager.TournArenaData:onReceivedRankReward()
|
||||||
|
GFunc.showRewardBox(result.rewards)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaManager
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c3b14de198ed03f42b62c82328c27519
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -149,6 +149,7 @@ function ArenaManager:rspSettlement(result)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_ARENA_CHALLENGE)
|
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_ARENA_CHALLENGE)
|
||||||
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_BATTLE_SETTLEMENT, result.settlement.win)
|
||||||
|
|
||||||
--bi上报
|
--bi上报
|
||||||
local winRate = result.total_win_count / (result.total_win_count + result.total_lose_count)
|
local winRate = result.total_win_count / (result.total_win_count + result.total_lose_count)
|
||||||
|
|||||||
@ -38,6 +38,7 @@ MainCityConst.LEFT_SIDE_BARS = {
|
|||||||
"app/ui/main_city/cell/side_bar_activity_cell",
|
"app/ui/main_city/cell/side_bar_activity_cell",
|
||||||
"app/ui/main_city/cell/side_bar_full_moon_cell",
|
"app/ui/main_city/cell/side_bar_full_moon_cell",
|
||||||
"app/ui/main_city/cell/side_bar_tourn_wave_cell",
|
"app/ui/main_city/cell/side_bar_tourn_wave_cell",
|
||||||
|
"app/ui/main_city/cell/side_bar_tourn_arena_cell",
|
||||||
-- gm放最后一个
|
-- gm放最后一个
|
||||||
"app/ui/main_city/cell/side_bar_gm_cell"
|
"app/ui/main_city/cell/side_bar_gm_cell"
|
||||||
}
|
}
|
||||||
|
|||||||
8
lua/app/ui/activity/tourn_arena.meta
Normal file
8
lua/app/ui/activity/tourn_arena.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0db3ebc134726304cb0a40fd23ab52b8
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
lua/app/ui/activity/tourn_arena/cell.meta
Normal file
8
lua/app/ui/activity/tourn_arena/cell.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6fdea40bf29965944b9ae4c5184361b1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
local TournArenaBountyCell = class("TournArenaBountyCell", BaseCell)
|
||||||
|
|
||||||
|
function TournArenaBountyCell:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
self.txLevel = uiMap["tourn_arena_bounty_cell.level.tx_level"]
|
||||||
|
self.rewardCell1 = uiMap["tourn_arena_bounty_cell.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
|
||||||
|
self.rewardCell2 = uiMap["tourn_arena_bounty_cell.reward_cell_2"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
|
||||||
|
self.rewardCell3 = uiMap["tourn_arena_bounty_cell.reward_cell_3"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaBountyCell:refresh(level, id)
|
||||||
|
self.id = id
|
||||||
|
self.txLevel:setText(DataManager.TournArenaData:getLevelTotalScore(level))
|
||||||
|
|
||||||
|
local isGet
|
||||||
|
|
||||||
|
isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE)
|
||||||
|
self.rewardCell1:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE), isGet, isGet)
|
||||||
|
self.rewardCell1:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE))
|
||||||
|
if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE) then
|
||||||
|
self.rewardCell1.baseObject:addRedPoint(50, 50, 0.6)
|
||||||
|
self.rewardCell1:addClickListener(function()
|
||||||
|
self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
self.rewardCell1.baseObject:removeRedPoint()
|
||||||
|
self.rewardCell1:addClickListener(nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
|
||||||
|
self.rewardCell2:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1), isGet, isGet)
|
||||||
|
self.rewardCell2:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1))
|
||||||
|
if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1) then
|
||||||
|
self.rewardCell2.baseObject:addRedPoint(50, 50, 0.6)
|
||||||
|
self.rewardCell2:addClickListener(function()
|
||||||
|
self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
self.rewardCell2.baseObject:removeRedPoint()
|
||||||
|
self.rewardCell2:addClickListener(nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
isGet = DataManager.TournArenaData:isReceivedBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
|
||||||
|
self.rewardCell3:refreshByConfig(DataManager.TournArenaData:getBountyGradeReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2), isGet, isGet)
|
||||||
|
self.rewardCell3:showLock(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2))
|
||||||
|
if DataManager.TournArenaData:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2) then
|
||||||
|
self.rewardCell3.baseObject:addRedPoint(50, 50, 0.6)
|
||||||
|
self.rewardCell3:addClickListener(function()
|
||||||
|
self:onClickReward(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
self.rewardCell3.baseObject:removeRedPoint()
|
||||||
|
self.rewardCell3:addClickListener(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 领取奖励
|
||||||
|
function TournArenaBountyCell:onClickReward(grade)
|
||||||
|
ModuleManager.TournArenaManager:reqBountyReward(self.id, grade)
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaBountyCell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ede94bb5b293fd84487866bda65bc97e
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
local TournArenaGiftCell = class("TournArenaGiftCell", BaseCell)
|
||||||
|
|
||||||
|
function TournArenaGiftCell:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
|
||||||
|
self.txLimit = uiMap["tourn_arena_gift_cell.tx_limit"]
|
||||||
|
self.txBuy = uiMap["tourn_arena_gift_cell.tx_buy"]
|
||||||
|
self.imgOff = uiMap["tourn_arena_gift_cell.off_img"]
|
||||||
|
self.txOff = uiMap["tourn_arena_gift_cell.off_img.tx_off"]
|
||||||
|
self.rewards = {}
|
||||||
|
for i = 1, 3 do
|
||||||
|
table.insert(self.rewards, uiMap["tourn_arena_gift_cell.reward_cell_"..i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
||||||
|
end
|
||||||
|
|
||||||
|
self:addClickListener(function()
|
||||||
|
if DataManager.TournArenaData:getGiftRemainTime(self.id) > 0 then
|
||||||
|
PayManager:purchasePackage(self.id, PayManager.PURCHARSE_TYPE.ACT_GIFT)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaGiftCell:refresh(id)
|
||||||
|
self.id = id
|
||||||
|
local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
|
||||||
|
local time = DataManager.TournArenaData:getGiftRemainTime(self.id)
|
||||||
|
|
||||||
|
self.txLimit:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_18, time))
|
||||||
|
|
||||||
|
for idx, reward in ipairs(self.rewards) do
|
||||||
|
if cfg.reward[idx] then
|
||||||
|
reward:setVisible(true)
|
||||||
|
reward:refreshByConfig(cfg.reward[idx])
|
||||||
|
else
|
||||||
|
reward:setVisible(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local buyStr
|
||||||
|
if cfg.recharge_id then
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_6")
|
||||||
|
self.imgOff:setActive(true)
|
||||||
|
self.txOff:setText(cfg.value .. "%")
|
||||||
|
buyStr = GFunc.getFormatPrice(cfg.recharge_id)
|
||||||
|
else
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_bg_5")
|
||||||
|
self.imgOff:setActive(false)
|
||||||
|
buyStr = I18N:getGlobalText(I18N.GlobalConst.STR_FREE)
|
||||||
|
end
|
||||||
|
|
||||||
|
if time <= 0 then
|
||||||
|
buyStr = I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20)
|
||||||
|
end
|
||||||
|
self.txBuy:setText(buyStr)
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaGiftCell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 88465b50d54bb764eaa2aa91a489e08d
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
local TournArenaRankCell = class("TournArenaRankCell", BaseCell)
|
||||||
|
|
||||||
|
local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
|
||||||
|
local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
|
||||||
|
|
||||||
|
function TournArenaRankCell:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
|
||||||
|
self.txRank = uiMap["tourn_arena_rank_cell.tx_rank"]
|
||||||
|
self.imgRank = uiMap["tourn_arena_rank_cell.img_rank"]
|
||||||
|
self.playerHeadCell = uiMap["tourn_arena_rank_cell.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
|
||||||
|
self.txName = uiMap["tourn_arena_rank_cell.tx_name"]
|
||||||
|
self.txScore = uiMap["tourn_arena_rank_cell.tx_score"]
|
||||||
|
self.rewards = uiMap["tourn_arena_rank_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
|
||||||
|
self.rewardCells = {}
|
||||||
|
for i = 1, 3 do
|
||||||
|
table.insert(self.rewardCells, uiMap["tourn_arena_rank_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaRankCell:refresh(rank, info)
|
||||||
|
self.playerHeadCell:refresh(info.avatar, info.avatar_frame)
|
||||||
|
local name = info.name
|
||||||
|
if name == nil or #name == 0 then
|
||||||
|
name = I18N:getGlobalText(I18N.GlobalConst.NEW_PLAYER)
|
||||||
|
end
|
||||||
|
self.txName:setText(name)
|
||||||
|
self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..info.score)
|
||||||
|
|
||||||
|
if BG[rank] then
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[rank])
|
||||||
|
else
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
|
||||||
|
end
|
||||||
|
|
||||||
|
if RANK_IMG[rank] then
|
||||||
|
self.imgRank:setActive(true)
|
||||||
|
self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
|
||||||
|
self.txRank:setText(GConst.EMPTY_STRING)
|
||||||
|
else
|
||||||
|
self.imgRank:setActive(false)
|
||||||
|
if info.score > 0 then
|
||||||
|
self.txRank:setText(rank)
|
||||||
|
else
|
||||||
|
self.txRank:setText("--")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local rewards = DataManager.TournArenaData:getRewardByRank(rank)
|
||||||
|
for index, cell in ipairs(self.rewardCells) do
|
||||||
|
if rewards[index] then
|
||||||
|
cell:setVisible(true)
|
||||||
|
cell:refreshByConfig(rewards[index])
|
||||||
|
else
|
||||||
|
cell:setVisible(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.rewards:RefreshLayout()
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaRankCell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0701b2f9d5a616241b15a566c048cbf5
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
local TournArenaRankRewardCell = class("TournArenaRankRewardCell", BaseCell)
|
||||||
|
|
||||||
|
local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
|
||||||
|
local BG = {"common_bg_8", "common_bg_9", "common_bg_10", "common_bg_11"}
|
||||||
|
|
||||||
|
function TournArenaRankRewardCell:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
|
||||||
|
self.txRank = uiMap["tourn_arena_rank_reward_cell.tx_rank"]
|
||||||
|
self.imgRank = uiMap["tourn_arena_rank_reward_cell.img_rank"]
|
||||||
|
self.rewards = uiMap["tourn_arena_rank_reward_cell.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
|
||||||
|
self.rewardCells = {}
|
||||||
|
for i = 1, 3 do
|
||||||
|
table.insert(self.rewardCells, uiMap["tourn_arena_rank_reward_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaRankRewardCell:refresh(index)
|
||||||
|
local info = DataManager.TournArenaData:getRankCfgByIndex(index)
|
||||||
|
local ranking1 = info.ranking[1]
|
||||||
|
local ranking2 = info.ranking[2]
|
||||||
|
|
||||||
|
if BG[ranking1] then
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[ranking1])
|
||||||
|
else
|
||||||
|
self.baseObject:setSprite(GConst.ATLAS_PATH.COMMON, BG[4])
|
||||||
|
end
|
||||||
|
|
||||||
|
if RANK_IMG[ranking1] then
|
||||||
|
self.imgRank:setActive(true)
|
||||||
|
self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[ranking1])
|
||||||
|
self.txRank:setText(GConst.EMPTY_STRING)
|
||||||
|
else
|
||||||
|
self.imgRank:setActive(false)
|
||||||
|
local rankStr = ranking1 .. "-"
|
||||||
|
if ranking2 then
|
||||||
|
rankStr = rankStr .. ranking2
|
||||||
|
else
|
||||||
|
rankStr = rankStr .. "-"
|
||||||
|
end
|
||||||
|
if ranking1 == ranking2 then
|
||||||
|
rankStr = ranking1
|
||||||
|
end
|
||||||
|
if index == #DataManager.TournArenaData:getRankIdList() then
|
||||||
|
rankStr = ranking1 .. "+"
|
||||||
|
end
|
||||||
|
self.txRank:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_23, rankStr))
|
||||||
|
end
|
||||||
|
|
||||||
|
for index, cell in ipairs(self.rewardCells) do
|
||||||
|
if info.reward[index] then
|
||||||
|
cell:setVisible(true)
|
||||||
|
cell:refreshByConfig(info.reward[index])
|
||||||
|
else
|
||||||
|
cell:setVisible(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.rewards:RefreshLayout()
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaRankRewardCell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 39da646b9dfd3154ea5eb18ea98c12d7
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
99
lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua
Normal file
99
lua/app/ui/activity/tourn_arena/tourn_arena_bounty_comp.lua
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
local TournArenaBountyComp = class("TournArenaBountyComp", LuaComponent)
|
||||||
|
|
||||||
|
function TournArenaBountyComp:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
self.txDesc = uiMap["bounty_panel.tx_desc"]
|
||||||
|
self.txFree = uiMap["bounty_panel.title.free.tx_free"]
|
||||||
|
self.txCurScore = uiMap["bounty_panel.title.cur_level.tx_level"]
|
||||||
|
-- 档位1
|
||||||
|
self.txBuyed1 = uiMap["bounty_panel.title.buy1.tx_buyed"]
|
||||||
|
self.btnBuy1 = uiMap["bounty_panel.title.buy1.btn_buy"]
|
||||||
|
self.txBuy1 = uiMap["bounty_panel.title.buy1.btn_buy.tx_buy"]
|
||||||
|
-- 档位2
|
||||||
|
self.txBuyed2 = uiMap["bounty_panel.title.buy2.tx_buyed"]
|
||||||
|
self.btnBuy2 = uiMap["bounty_panel.title.buy2.btn_buy"]
|
||||||
|
self.txBuy2 = uiMap["bounty_panel.title.buy2.btn_buy.tx_buy"]
|
||||||
|
|
||||||
|
self.scrollrectComp = uiMap["bounty_panel.list_bounty"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
|
self.progLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog"]
|
||||||
|
self.imgProgLevel = uiMap["bounty_panel.list_bounty.viewport.content.prog.img_prog"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_SLIDER)
|
||||||
|
self.maskLevel = uiMap["bounty_panel.list_bounty.viewport.content.mask_img"]
|
||||||
|
self.lineLevel = uiMap["bounty_panel.list_bounty.viewport.content.line"]
|
||||||
|
self.btnBuyLevel = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level"]
|
||||||
|
self.txBuyLevelNum = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.tx_num"]
|
||||||
|
self.imgBuyLevelIcon = uiMap["bounty_panel.list_bounty.viewport.content.line.btn_buy_level.icon"]
|
||||||
|
|
||||||
|
self.txDesc:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_DESC_1))
|
||||||
|
self.txFree:setText(I18N:getGlobalText(I18N.GlobalConst.STR_FREE))
|
||||||
|
self.txBuyed1:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
|
||||||
|
self.txBuyed2:setText(I18N:getGlobalText(I18N.GlobalConst.SHOP_DESC_20))
|
||||||
|
|
||||||
|
self.bountyIdList = DataManager.TournArenaData:getBountyIdList()
|
||||||
|
self.scrollrectComp:addInitCallback(function()
|
||||||
|
self.maskLevel:getTransform():SetAsLastSibling()
|
||||||
|
self.lineLevel:getTransform():SetAsLastSibling()
|
||||||
|
return "app/ui/activity/tourn_arena/cell/tourn_arena_bounty_cell"
|
||||||
|
end)
|
||||||
|
self.scrollrectComp:addRefreshCallback(function(index, cell)
|
||||||
|
cell:refresh(index, self.bountyIdList[index])
|
||||||
|
end)
|
||||||
|
self.scrollrectComp:clearCells()
|
||||||
|
self.scrollrectComp:refillCells(DataManager.TournArenaData:getBountyMaxLevel())
|
||||||
|
|
||||||
|
self.btnBuy1:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:buyBounty(GConst.TournArenaConst.BOUNTY_GIFT_ID_1)
|
||||||
|
end)
|
||||||
|
self.btnBuy2:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:buyBounty(GConst.TournArenaConst.BOUNTY_GIFT_ID_2)
|
||||||
|
end)
|
||||||
|
self.btnBuyLevel:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:reqBuyBountyLevel()
|
||||||
|
end)
|
||||||
|
self:bind(DataManager.TournArenaData, "isDirty", function()
|
||||||
|
self:refresh(true)
|
||||||
|
end)
|
||||||
|
self:bind(DataManager.ShopData, "isDirty", function()
|
||||||
|
self:refresh(true)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaBountyComp:refresh(notUpdatePos)
|
||||||
|
self.btnBuyLevel:setActive(DataManager.TournArenaData:canBuyBountyLevel())
|
||||||
|
self.txCurScore:setText(DataManager.TournArenaData:getBountyTotalScore())
|
||||||
|
|
||||||
|
-- 档位展示
|
||||||
|
self.btnBuy1:setActive(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1))
|
||||||
|
self.btnBuy2:setActive(not DataManager.TournArenaData:isBountyGradeUnlock(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2))
|
||||||
|
|
||||||
|
local gift1 = DataManager.TournArenaData:getBountyGradeGiftCfg(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1)
|
||||||
|
local gift2 = DataManager.TournArenaData:getBountyGradeGiftCfg(GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2)
|
||||||
|
self.txBuy1:setText(GFunc.getFormatPrice(gift1.recharge_id))
|
||||||
|
self.txBuy2:setText(GFunc.getFormatPrice(gift2.recharge_id))
|
||||||
|
self.txBuyLevelNum:setText(GFunc.getRewardNum(DataManager.TournArenaData:getBuyBountyLevelCost()))
|
||||||
|
GFunc.centerImgAndTx(self.imgBuyLevelIcon, self.txBuyLevelNum, 5)
|
||||||
|
|
||||||
|
-- 等级列表
|
||||||
|
local maxLevel = DataManager.TournArenaData:getBountyMaxLevel()
|
||||||
|
local curLevel = DataManager.TournArenaData:getBountyLevel()
|
||||||
|
local topRecoveryOffset = self.scrollrectComp:getTopRecoveryOffset()
|
||||||
|
local downRecoveryOffset = self.scrollrectComp:getDownRecoveryOffset()
|
||||||
|
local cellHeight = self.scrollrectComp:getCellHeight()
|
||||||
|
if curLevel >= maxLevel then
|
||||||
|
self.lineLevel:setVisible(false)
|
||||||
|
else
|
||||||
|
self.lineLevel:setVisible(true)
|
||||||
|
self.lineLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
|
||||||
|
end
|
||||||
|
self.progLevel:setAnchoredPositionY((topRecoveryOffset + downRecoveryOffset) / 2 - cellHeight / 2 - 10)
|
||||||
|
self.progLevel:setSizeDeltaY(cellHeight * (maxLevel - 1))
|
||||||
|
self.imgProgLevel.value = DataManager.TournArenaData:getBountyTotalScore() / DataManager.TournArenaData:getLevelTotalScore(#DataManager.TournArenaData:getBountyIdList())
|
||||||
|
self.maskLevel:setAnchoredPositionY(-topRecoveryOffset - curLevel * cellHeight)
|
||||||
|
self.maskLevel:setSizeDeltaY(cellHeight * maxLevel + GConst.UI_SCREEN_HEIGHT)
|
||||||
|
self.scrollrectComp:updateAllCell()
|
||||||
|
if not notUpdatePos then
|
||||||
|
local rewardLevel = DataManager.TournArenaData:getFirstCanGetBountyRewardLevel()
|
||||||
|
self.scrollrectComp:moveToIndex(rewardLevel or curLevel)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaBountyComp
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: add50f9a8e4e59c438d243609ebb1951
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
28
lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua
Normal file
28
lua/app/ui/activity/tourn_arena/tourn_arena_gift_comp.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
local TournArenaGiftComp = class("TournArenaGiftComp", LuaComponent)
|
||||||
|
|
||||||
|
function TournArenaGiftComp:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
self.scrollrectComp = uiMap["gift_panel.scrollrect"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
|
|
||||||
|
self.scrollrectComp:addInitCallback(function()
|
||||||
|
return "app/ui/activity/tourn_arena/cell/tourn_arena_gift_cell"
|
||||||
|
end)
|
||||||
|
self.scrollrectComp:addRefreshCallback(function(index, cell)
|
||||||
|
cell:refresh(self.giftList[index].id)
|
||||||
|
end)
|
||||||
|
|
||||||
|
self:bind(DataManager.TournArenaData, "isDirty", function()
|
||||||
|
self:refresh()
|
||||||
|
end)
|
||||||
|
self:bind(DataManager.ShopData, "isDirty", function()
|
||||||
|
self:refresh()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaGiftComp:refresh()
|
||||||
|
self.giftList = DataManager.TournArenaData:getGiftIdsSort()
|
||||||
|
self.scrollrectComp:clearCells()
|
||||||
|
self.scrollrectComp:refillCells(#self.giftList)
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaGiftComp
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b6ea3f91f034273478a904f0ca403424
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
204
lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua
Normal file
204
lua/app/ui/activity/tourn_arena/tourn_arena_rank_comp.lua
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
local TournArenaRankComp = class("TournArenaRankComp", LuaComponent)
|
||||||
|
|
||||||
|
local SHOW_TYPE = {
|
||||||
|
CUR_RANK = 1,
|
||||||
|
LAST_RANK = 2,
|
||||||
|
REWARD = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
local RANK_IMG = {"act_ranking_1", "act_ranking_2", "act_ranking_3"}
|
||||||
|
|
||||||
|
function TournArenaRankComp:onClose()
|
||||||
|
if self.countdownSid then
|
||||||
|
self.baseObject:unscheduleGlobal(self.countdownSid)
|
||||||
|
self.countdownSid = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaRankComp:init()
|
||||||
|
local uiMap = self:getUIMap()
|
||||||
|
|
||||||
|
self.txEmpty = uiMap["rank_panel.tx_empty"]
|
||||||
|
self.btnHelp = uiMap["rank_panel.btn_help"]
|
||||||
|
self.btns = uiMap["rank_panel.btns"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
|
||||||
|
self.btnCur = uiMap["rank_panel.btns.btn_cur"]
|
||||||
|
self.txCur = uiMap["rank_panel.btns.btn_cur.tx_cur"]
|
||||||
|
self.btnLast = uiMap["rank_panel.btns.btn_last"]
|
||||||
|
self.txLast = uiMap["rank_panel.btns.btn_last.tx_last"]
|
||||||
|
self.btnReward = uiMap["rank_panel.btns.btn_reward"]
|
||||||
|
self.txReward = uiMap["rank_panel.btns.btn_reward.tx_reward"]
|
||||||
|
self.txCountdown = uiMap["rank_panel.tx_countdown"]
|
||||||
|
self.listRewardComp = uiMap["rank_panel.list_reward"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
|
self.listRankComp = uiMap["rank_panel.list_rank"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.SCROLL_RECT_BASE)
|
||||||
|
-- 自己排名
|
||||||
|
self.imgRank = uiMap["rank_panel.my_rank.img_rank"]
|
||||||
|
self.txRank = uiMap["rank_panel.my_rank.tx_rank"]
|
||||||
|
self.txName = uiMap["rank_panel.my_rank.tx_name"]
|
||||||
|
self.txScore = uiMap["rank_panel.my_rank.tx_score"]
|
||||||
|
self.playerHeadCell = uiMap["rank_panel.my_rank.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
|
||||||
|
self.rewards = uiMap["rank_panel.my_rank.rewards"]:getComponent(GConst.TYPEOF_UNITY_CLASS.BF_HORIZONTAL_OR_VERTICAL_LAYOUT)
|
||||||
|
self.rewardCells = {}
|
||||||
|
for i = 1, 3 do
|
||||||
|
table.insert(self.rewardCells, uiMap["rank_panel.my_rank.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
|
||||||
|
end
|
||||||
|
|
||||||
|
self.txEmpty:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_BOSS_RUSH_DESC_8))
|
||||||
|
self.txCur:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_1))
|
||||||
|
self.txLast:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_2))
|
||||||
|
self.txReward:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_BTN_3))
|
||||||
|
self:refreshCountdown()
|
||||||
|
|
||||||
|
self.listRankComp:addInitCallback(function()
|
||||||
|
return "app/ui/activity/tourn_arena/cell/tourn_arena_rank_cell"
|
||||||
|
end)
|
||||||
|
self.listRankComp:addRefreshCallback(function(index, cell)
|
||||||
|
cell:refresh(index, self.rankDataList[index])
|
||||||
|
end)
|
||||||
|
self.listRewardComp:addInitCallback(function()
|
||||||
|
return "app/ui/activity/tourn_arena/cell/tourn_arena_rank_reward_cell"
|
||||||
|
end)
|
||||||
|
self.listRewardComp:addRefreshCallback(function(index, cell)
|
||||||
|
cell:refresh(index)
|
||||||
|
end)
|
||||||
|
|
||||||
|
self.btnHelp:addClickListener(function()
|
||||||
|
local params = {
|
||||||
|
type = GConst.TipsConst.HELP_TIPS_TYPE.ARENA,
|
||||||
|
title = I18N:getGlobalText(I18N.GlobalConst.COLLECTION_DESC_11),
|
||||||
|
desc = I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_HELP),
|
||||||
|
}
|
||||||
|
ModuleManager.TipsManager:showHelpTips(params)
|
||||||
|
end)
|
||||||
|
self.btnCur:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
|
||||||
|
self:refresh(SHOW_TYPE.CUR_RANK)
|
||||||
|
end)
|
||||||
|
self.btnLast:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep() - 1)
|
||||||
|
self:refresh(SHOW_TYPE.LAST_RANK)
|
||||||
|
end)
|
||||||
|
self.btnReward:addClickListener(function()
|
||||||
|
self:refresh(SHOW_TYPE.REWARD)
|
||||||
|
end)
|
||||||
|
self:bind(DataManager.TournArenaData, "isDirty", function()
|
||||||
|
self:refresh()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaRankComp:refresh(showType)
|
||||||
|
self.showType = showType or self.showType or SHOW_TYPE.CUR_RANK
|
||||||
|
|
||||||
|
self.btnCur:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.CUR_RANK and "common_board_130" or "common_board_134")
|
||||||
|
self.btnLast:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.LAST_RANK and "common_board_130" or "common_board_134")
|
||||||
|
self.btnReward:setSprite(GConst.ATLAS_PATH.COMMON, self.showType == SHOW_TYPE.REWARD and "common_board_130" or "common_board_134")
|
||||||
|
|
||||||
|
local curStep = DataManager.TournArenaData:getCurRankStep()
|
||||||
|
|
||||||
|
self.btnLast:setActive(curStep > 1)
|
||||||
|
self.btns:RefreshLayout()
|
||||||
|
|
||||||
|
if self.showType == SHOW_TYPE.CUR_RANK then
|
||||||
|
self:showRankList(curStep)
|
||||||
|
self:showSelfRank(curStep)
|
||||||
|
elseif self.showType == SHOW_TYPE.LAST_RANK then
|
||||||
|
local lastStep = curStep - 1
|
||||||
|
self:showRankList(lastStep)
|
||||||
|
self:showSelfRank(lastStep)
|
||||||
|
elseif self.showType == SHOW_TYPE.REWARD then
|
||||||
|
self:showRankReward()
|
||||||
|
self:showSelfRank(curStep)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 展示自己排名
|
||||||
|
function TournArenaRankComp:showSelfRank(step)
|
||||||
|
local rank = DataManager.TournArenaData:getSelfRank(step)
|
||||||
|
local score = DataManager.TournArenaData:getSelfScore(step)
|
||||||
|
|
||||||
|
if score > 0 then
|
||||||
|
if RANK_IMG[rank] then
|
||||||
|
self.imgRank:setActive(true)
|
||||||
|
self.imgRank:setSprite(GConst.ATLAS_PATH.ACT_COMMON, RANK_IMG[rank])
|
||||||
|
self.txRank:setText(GConst.EMPTY_STRING)
|
||||||
|
else
|
||||||
|
self.imgRank:setActive(false)
|
||||||
|
self.txRank:setText(rank)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.imgRank:setActive(false)
|
||||||
|
self.txRank:setText("--")
|
||||||
|
end
|
||||||
|
self.playerHeadCell:refresh()
|
||||||
|
self.txName:setText(DataManager.PlayerData:getNickname())
|
||||||
|
self.txScore:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_16)..":"..score)
|
||||||
|
|
||||||
|
local rewards = DataManager.TournArenaData:getRewardByRank(rank)
|
||||||
|
for index, cell in ipairs(self.rewardCells) do
|
||||||
|
if score > 0 and rewards[index] then
|
||||||
|
cell:setVisible(true)
|
||||||
|
cell:refreshByConfig(rewards[index])
|
||||||
|
if step ~= DataManager.TournArenaData:getCurRankStep() and DataManager.TournArenaData:isReachRankReward() then
|
||||||
|
cell.baseObject:addRedPoint(50, 50, 0.6)
|
||||||
|
cell:addClickListener(function()
|
||||||
|
ModuleManager.TournArenaManager:reqRankReward()
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
cell.baseObject:removeRedPoint()
|
||||||
|
cell:addClickListener(nil)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
cell:setVisible(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.rewards:RefreshLayout()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 展示榜单
|
||||||
|
function TournArenaRankComp:showRankList(step)
|
||||||
|
self.listRankComp:getBaseObject():setActive(true)
|
||||||
|
self.listRewardComp:getBaseObject():setActive(false)
|
||||||
|
|
||||||
|
self.rankDataList = DataManager.TournArenaData:getRankListData(step)
|
||||||
|
if self.rankDataList == nil then
|
||||||
|
self.rankDataList = {}
|
||||||
|
end
|
||||||
|
self.listRankComp:clearCells()
|
||||||
|
self.listRankComp:refillCells(#self.rankDataList)
|
||||||
|
self.txEmpty:setActive(#self.rankDataList <= 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 展示排行榜奖励
|
||||||
|
function TournArenaRankComp:showRankReward()
|
||||||
|
self.listRankComp:getBaseObject():setActive(false)
|
||||||
|
self.listRewardComp:getBaseObject():setActive(true)
|
||||||
|
self.txEmpty:setActive(false)
|
||||||
|
|
||||||
|
self.rankIdList = DataManager.TournArenaData:getRankIdList()
|
||||||
|
self.listRewardComp:clearCells()
|
||||||
|
self.listRewardComp:refillCells(#self.rankIdList)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 刷新倒计时
|
||||||
|
function TournArenaRankComp:refreshCountdown()
|
||||||
|
if self.countdownSid then
|
||||||
|
self.baseObject:unscheduleGlobal(self.countdownSid)
|
||||||
|
end
|
||||||
|
|
||||||
|
local str = DataManager.TournArenaData:isFinalDay() and I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_3) or I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_DESC_2)
|
||||||
|
|
||||||
|
self.txCountdown:setText(str .. Time:formatNumTimeStr(DataManager.TournArenaData:getCurRankStepRemainTime()))
|
||||||
|
self.countdownSid = self.baseObject:scheduleGlobal(function()
|
||||||
|
local time = DataManager.TournArenaData:getCurRankStepRemainTime()
|
||||||
|
if time >= 0 then
|
||||||
|
self.txCountdown:setText(str .. Time:formatNumTimeStr(time))
|
||||||
|
else
|
||||||
|
if self.showType == SHOW_TYPE.CUR_RANK then
|
||||||
|
ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
|
||||||
|
elseif self.showType == SHOW_TYPE.LAST_RANK then
|
||||||
|
ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep() - 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaRankComp
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 423848385560f3d49a0d5861ef04b564
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
210
lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua
Normal file
210
lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
local TournArenaUI = class("TournArenaUI", BaseUI)
|
||||||
|
|
||||||
|
local COMP_BOUNTY = "app/ui/activity/tourn_arena/tourn_arena_bounty_comp"
|
||||||
|
local COMP_RANK = "app/ui/activity/tourn_arena/tourn_arena_rank_comp"
|
||||||
|
local COMP_GIFT = "app/ui/activity/tourn_arena/tourn_arena_gift_comp"
|
||||||
|
|
||||||
|
function TournArenaUI:isFullScreen()
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:getPrefabPath()
|
||||||
|
return "assets/prefabs/ui/activity/tourn_arena/tourn_arena_ui.prefab"
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:onPressBackspace()
|
||||||
|
self:closeUI()
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:onClose()
|
||||||
|
if self.compRank ~= nil then
|
||||||
|
self.compRank:refresh()
|
||||||
|
end
|
||||||
|
if self.countdownSid then
|
||||||
|
self.txCountdown:unscheduleGlobal(self.countdownSid)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:ctor(param)
|
||||||
|
if param then
|
||||||
|
self.panelType = param
|
||||||
|
else
|
||||||
|
self.panelType = GConst.TournArenaConst.PANEL_TYPE.BOUNTY -- 默认进入任务页签
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:onLoadRootComplete()
|
||||||
|
local uiMap = self.root:genAllChildren()
|
||||||
|
|
||||||
|
-- 通用
|
||||||
|
self.txTitle = uiMap["tourn_arena_ui.common.img_title.tx_title"]
|
||||||
|
self.btnClose = uiMap["tourn_arena_ui.common.btn_close"]
|
||||||
|
self.bg = uiMap["tourn_arena_ui.common.bg"]
|
||||||
|
self.countdown = uiMap["tourn_arena_ui.common.countdown"]
|
||||||
|
self.txCountdown = uiMap["tourn_arena_ui.common.countdown.tx_countdown"]
|
||||||
|
self.spineTitle = uiMap["tourn_arena_ui.common.spine_title"]
|
||||||
|
-- 子界面
|
||||||
|
self.bountyPanel = uiMap["tourn_arena_ui.bounty_panel"]
|
||||||
|
self.rankPanel = uiMap["tourn_arena_ui.rank_panel"]
|
||||||
|
self.giftPanel = uiMap["tourn_arena_ui.gift_panel"]
|
||||||
|
-- 战令标签
|
||||||
|
self.btnBounty = uiMap["tourn_arena_ui.common.btns.btn_bounty"]
|
||||||
|
self.txBounty1 = uiMap["tourn_arena_ui.common.btns.btn_bounty.tx_btn"]
|
||||||
|
self.txBounty2 = uiMap["tourn_arena_ui.common.btns.btn_bounty.select.tx_select"]
|
||||||
|
self.selectBounty = uiMap["tourn_arena_ui.common.btns.btn_bounty.select"]
|
||||||
|
-- 排行榜标签
|
||||||
|
self.btnRank = uiMap["tourn_arena_ui.common.btns.btn_rank"]
|
||||||
|
self.txRank1 = uiMap["tourn_arena_ui.common.btns.btn_rank.tx_btn"]
|
||||||
|
self.txRank2 = uiMap["tourn_arena_ui.common.btns.btn_rank.select.tx_select"]
|
||||||
|
self.selectRank = uiMap["tourn_arena_ui.common.btns.btn_rank.select"]
|
||||||
|
-- 礼包标签
|
||||||
|
self.btnGift = uiMap["tourn_arena_ui.common.btns.btn_gift"]
|
||||||
|
self.txGift1 = uiMap["tourn_arena_ui.common.btns.btn_gift.tx_btn"]
|
||||||
|
self.txGift2 = uiMap["tourn_arena_ui.common.btns.btn_gift.select.tx_select"]
|
||||||
|
self.selectGift = uiMap["tourn_arena_ui.common.btns.btn_gift.select"]
|
||||||
|
|
||||||
|
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_ARENEA_TITLE))
|
||||||
|
self.txBounty1:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
|
||||||
|
self.txBounty2:setText(I18N:getGlobalText(I18N.GlobalConst.REWARD_DESC))
|
||||||
|
self.txRank1:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
|
||||||
|
self.txRank2:setText(I18N:getGlobalText(I18N.GlobalConst.ARENA_DESC_5))
|
||||||
|
self.txGift1:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
|
||||||
|
self.txGift2:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_DESC_4))
|
||||||
|
|
||||||
|
self.spineTitle:getSkeletonGraphic().enabled = false
|
||||||
|
self.spineTitle:loadAssetAsync("ui_act_tourn_arena_title", function()
|
||||||
|
self.spineTitle:getSkeletonGraphic().enabled = true
|
||||||
|
self.spineTitle:playAnimComplete("animation", false, true, function()
|
||||||
|
self.spineTitle:playAnim("idle", true, true, true)
|
||||||
|
end, true)
|
||||||
|
end, false)
|
||||||
|
|
||||||
|
self.btnBounty:addClickListener(function()
|
||||||
|
self.panelType = GConst.TournArenaConst.PANEL_TYPE.BOUNTY
|
||||||
|
self:onRefresh()
|
||||||
|
end)
|
||||||
|
self.btnRank:addClickListener(function()
|
||||||
|
self.panelType = GConst.TournArenaConst.PANEL_TYPE.RANK
|
||||||
|
self:onRefresh()
|
||||||
|
end)
|
||||||
|
self.btnGift:addClickListener(function()
|
||||||
|
self.panelType = GConst.TournArenaConst.PANEL_TYPE.GIFT
|
||||||
|
self:onRefresh()
|
||||||
|
end)
|
||||||
|
self.btnClose:addClickListener(function()
|
||||||
|
self:closeUI()
|
||||||
|
end)
|
||||||
|
self:addEventListener(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_ARENA_END, function()
|
||||||
|
self:closeUI()
|
||||||
|
end)
|
||||||
|
self:bind(DataManager.TournArenaData, "isDirty", function()
|
||||||
|
-- 检查更新数据
|
||||||
|
if DataManager.TournArenaData:getIsInReset() and self.panelType == GConst.TournArenaConst.PANEL_TYPE.RANK then
|
||||||
|
self:onRefresh()
|
||||||
|
else
|
||||||
|
self:refreshRedPoint()
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:onRefresh()
|
||||||
|
-- 倒计时
|
||||||
|
if self.countdownSid then
|
||||||
|
self.txCountdown:unscheduleGlobal(self.countdownSid)
|
||||||
|
end
|
||||||
|
self.txCountdown:setText(Time:formatNumTimeStr(DataManager.TournArenaData:getEndRemainTime()))
|
||||||
|
self.countdownSid = self.txCountdown:scheduleGlobal(function()
|
||||||
|
local time = DataManager.TournArenaData:getEndRemainTime()
|
||||||
|
if time >= 0 then
|
||||||
|
self.txCountdown:setText(Time:formatNumTimeStr(time))
|
||||||
|
end
|
||||||
|
end, 1)
|
||||||
|
|
||||||
|
if self.panelType == GConst.TournArenaConst.PANEL_TYPE.BOUNTY then
|
||||||
|
self:showBountyInfo()
|
||||||
|
elseif self.panelType == GConst.TournArenaConst.PANEL_TYPE.RANK then
|
||||||
|
self:showRankInfo()
|
||||||
|
elseif self.panelType == GConst.TournArenaConst.PANEL_TYPE.GIFT then
|
||||||
|
self:showGiftInfo()
|
||||||
|
end
|
||||||
|
self:refreshRedPoint()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 刷新标签红点
|
||||||
|
function TournArenaUI:refreshRedPoint()
|
||||||
|
if DataManager.TournArenaData:hasBountyRedPoint() then
|
||||||
|
self.btnBounty:addRedPoint(75, 5, 0.6)
|
||||||
|
else
|
||||||
|
self.btnBounty:removeRedPoint()
|
||||||
|
end
|
||||||
|
if DataManager.TournArenaData:hasRankRedPoint() then
|
||||||
|
self.btnRank:addRedPoint(75, 5, 0.6)
|
||||||
|
else
|
||||||
|
self.btnRank:removeRedPoint()
|
||||||
|
end
|
||||||
|
if DataManager.TournArenaData:hasGiftRedPoint() then
|
||||||
|
self.btnGift:addRedPoint(75, 5, 0.6)
|
||||||
|
else
|
||||||
|
self.btnGift:removeRedPoint()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:showBountyInfo()
|
||||||
|
self.bountyPanel:setActive(true)
|
||||||
|
self.selectBounty:setActive(true)
|
||||||
|
self.rankPanel:setActive(false)
|
||||||
|
self.selectRank:setActive(false)
|
||||||
|
self.giftPanel:setActive(false)
|
||||||
|
self.selectGift:setActive(false)
|
||||||
|
self.countdown:setActive(true)
|
||||||
|
self.bg:setActive(true)
|
||||||
|
|
||||||
|
if not self.compBounty then
|
||||||
|
self.bountyPanel:initPrefabHelper()
|
||||||
|
self.bountyPanel:genAllChildren()
|
||||||
|
self.compBounty = self.bountyPanel:addLuaComponent(COMP_BOUNTY)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.compBounty:refresh()
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:showRankInfo()
|
||||||
|
self.bountyPanel:setActive(false)
|
||||||
|
self.selectBounty:setActive(false)
|
||||||
|
self.rankPanel:setActive(true)
|
||||||
|
self.selectRank:setActive(true)
|
||||||
|
self.giftPanel:setActive(false)
|
||||||
|
self.selectGift:setActive(false)
|
||||||
|
self.countdown:setActive(false)
|
||||||
|
self.bg:setActive(false)
|
||||||
|
|
||||||
|
ModuleManager.TournArenaManager:reqRankList(DataManager.TournArenaData:getCurRankStep())
|
||||||
|
if not self.compRank then
|
||||||
|
self.rankPanel:initPrefabHelper()
|
||||||
|
self.rankPanel:genAllChildren()
|
||||||
|
self.compRank = self.rankPanel:addLuaComponent(COMP_RANK)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.compRank:refresh()
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaUI:showGiftInfo()
|
||||||
|
self.bountyPanel:setActive(false)
|
||||||
|
self.selectBounty:setActive(false)
|
||||||
|
self.rankPanel:setActive(false)
|
||||||
|
self.selectRank:setActive(false)
|
||||||
|
self.giftPanel:setActive(true)
|
||||||
|
self.selectGift:setActive(true)
|
||||||
|
self.countdown:setActive(true)
|
||||||
|
self.bg:setActive(false)
|
||||||
|
|
||||||
|
if not self.compGift then
|
||||||
|
self.giftPanel:initPrefabHelper()
|
||||||
|
self.giftPanel:genAllChildren()
|
||||||
|
self.compGift = self.giftPanel:addLuaComponent(COMP_GIFT)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.compGift:refresh()
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaUI
|
||||||
10
lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua.meta
Normal file
10
lua/app/ui/activity/tourn_arena/tourn_arena_ui.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c29f7f21d2c22f74db078cffc8100e42
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
46
lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua
Normal file
46
lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
|
||||||
|
local SideBarTournArenaCell = class("SideBarTournArenaCell", SideBarBaseCellComp)
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:getModuleKey()
|
||||||
|
return ModuleManager.MODULE_KEY.ACTIVITY
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:getIsOpen()
|
||||||
|
return DataManager.TournArenaData:isOpen() and DataManager.TournArenaData:isActiveTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:getSpineName()
|
||||||
|
return "ui_main_btn_act_fullmoon"
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:onClick()
|
||||||
|
ModuleManager.TournArenaManager:showActMainUI()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:getIsShowRedPoint()
|
||||||
|
return DataManager.TournArenaData:hasEntryRedPoint()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:onRefresh()
|
||||||
|
self.timeBg:setVisible(true)
|
||||||
|
self:_refreshTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:updateTime()
|
||||||
|
if self:getIsOpen() then
|
||||||
|
self:_refreshTime()
|
||||||
|
else
|
||||||
|
self:closeBtn()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarTournArenaCell:_refreshTime()
|
||||||
|
local remainTime = DataManager.TournArenaData:getEndRemainTime()
|
||||||
|
if remainTime >= 0 then
|
||||||
|
self.timeTx:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return SideBarTournArenaCell
|
||||||
10
lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua.meta
Normal file
10
lua/app/ui/main_city/cell/side_bar_tourn_arena_cell.lua.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fbea87ac611b43747bf41d2ca95b29cd
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
540
lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua
Normal file
540
lua/app/userdata/activity/tourn_arena/tourn_arena_data.lua
Normal file
@ -0,0 +1,540 @@
|
|||||||
|
local TournArenaData = class("TournArenaData", BaseData)
|
||||||
|
|
||||||
|
function TournArenaData:ctor()
|
||||||
|
self.data.isDirty = false
|
||||||
|
|
||||||
|
self.bountyLevel = 1
|
||||||
|
self.bountyExp = 0
|
||||||
|
self.bountyCollected = {}
|
||||||
|
self.rankStep = 1
|
||||||
|
self.rankStepEndTime = 0
|
||||||
|
self.rankCollected = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaData:clear()
|
||||||
|
DataManager:unregisterTryOpenFunc("TournArenaData")
|
||||||
|
DataManager:unregisterCrossDayFunc("TournArenaData")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 设置活动数据
|
||||||
|
function TournArenaData:setActStatus(data)
|
||||||
|
data = data or GConst.EMPTY_TABLE
|
||||||
|
|
||||||
|
self.actId = data.id
|
||||||
|
self.startTime = GFunc.formatTimeStep(data.start_at)
|
||||||
|
self.endTime = GFunc.formatTimeStep(data.end_at)
|
||||||
|
|
||||||
|
if EDITOR_MODE then
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动开启时间:")
|
||||||
|
Logger.printTable(data)
|
||||||
|
end
|
||||||
|
|
||||||
|
if not self:isOpen() then
|
||||||
|
-- 活动开启
|
||||||
|
DataManager:registerTryOpenFunc("TournArenaData", function()
|
||||||
|
if not self:isOpen() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not self:isActiveTime() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
DataManager:unregisterTryOpenFunc("TournArenaData")
|
||||||
|
ModuleManager.TournArenaManager:reqActData()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取活动数据成功
|
||||||
|
function TournArenaData:onGetActData(data)
|
||||||
|
data = data or GConst.EMPTY_TABLE
|
||||||
|
if EDITOR_MODE then
|
||||||
|
Logger.logHighlight("竞技场锦标赛活动数据:")
|
||||||
|
Logger.printTable(data)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令
|
||||||
|
self.bountyLevel = data.level
|
||||||
|
self.bountyExp = data.exp
|
||||||
|
self.bountyCollected = data.collected
|
||||||
|
-- 排行榜
|
||||||
|
self.rankStep = data.present_turn
|
||||||
|
self.rankStepEndTime = GFunc.formatTimeStep(data.turn_end_at)
|
||||||
|
self.rankCollected = data.rank_reward_claimed
|
||||||
|
|
||||||
|
-- 跨天
|
||||||
|
DataManager:registerCrossDayFunc("TournArenaData", function()
|
||||||
|
if not self:isOpen() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not self:isActiveTime() then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.ranks = nil
|
||||||
|
self:setInReset(true)
|
||||||
|
self:setDirty()
|
||||||
|
end)
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaData:setInReset(isInReset)
|
||||||
|
self.isInReset = isInReset
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaData:getIsInReset()
|
||||||
|
return self.isInReset
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaData:setDirty()
|
||||||
|
self.data.isDirty = not self.data.isDirty
|
||||||
|
end
|
||||||
|
|
||||||
|
function TournArenaData:isOpen()
|
||||||
|
if GFunc.isShenhe() then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ACTIVITY, true) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否在活动配置时间内
|
||||||
|
function TournArenaData:isActiveTime()
|
||||||
|
if self.startTime == nil or self.startTime <= 0 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
if self.endTime == nil or self.endTime <= 0 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return Time:getServerTime() >= self.startTime and Time:getServerTime() <= self.endTime
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取活动开启剩余时间(秒)
|
||||||
|
function TournArenaData:getStartRemainTime()
|
||||||
|
if self.startTime == nil or self.startTime <= 0 then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return self.startTime - Time:getServerTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取活动结束剩余时间(秒)
|
||||||
|
function TournArenaData:getEndRemainTime()
|
||||||
|
if self.endTime == nil or self.endTime <= 0 then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return self.endTime - Time:getServerTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 当前为活动第几天
|
||||||
|
function TournArenaData:getActDay()
|
||||||
|
local days = Time:getDistanceDays(self.startTime)
|
||||||
|
if days < 0 then
|
||||||
|
days = -days
|
||||||
|
end
|
||||||
|
return days + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否有入口红点
|
||||||
|
function TournArenaData:hasEntryRedPoint()
|
||||||
|
return self:hasBountyRedPoint() or self:hasRankRedPoint() or self:hasGiftRedPoint()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- 是否有战令红点
|
||||||
|
function TournArenaData:hasBountyRedPoint()
|
||||||
|
if self:getFirstCanGetBountyRewardLevel() ~= nil then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取首个可领取奖励的战令等级
|
||||||
|
function TournArenaData:getFirstCanGetBountyRewardLevel()
|
||||||
|
local curLevel = self:getBountyLevel()
|
||||||
|
|
||||||
|
for level, data in ipairs(self:getBountyIdList()) do
|
||||||
|
if level > curLevel then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
if self:canGetBountyReward(level, GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- <level,id>
|
||||||
|
function TournArenaData:getBountyIdList()
|
||||||
|
if not self.bountyIdList then
|
||||||
|
self.bountyIdList = GFunc.getTable(DataManager:getActivityBountyLevelByActId(self.actId) or {})
|
||||||
|
table.sort(self.bountyIdList, function(a, b)
|
||||||
|
return a < b
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return self.bountyIdList
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取对应等级的配置
|
||||||
|
function TournArenaData:getBountyCfgByLevel(level)
|
||||||
|
return ConfigManager:getConfig("activity_bounty_level")[self:getBountyIdList()[level]]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取战令档位礼包配置
|
||||||
|
function TournArenaData:getBountyGradeGiftCfg(gradeType)
|
||||||
|
if gradeType == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
|
||||||
|
return DataManager.ShopData:getActGiftConfig()[GConst.TournArenaConst.BOUNTY_GIFT_ID_1]
|
||||||
|
elseif gradeType == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
|
||||||
|
return DataManager.ShopData:getActGiftConfig()[GConst.TournArenaConst.BOUNTY_GIFT_ID_2]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令档位是否已解锁
|
||||||
|
function TournArenaData:isBountyGradeUnlock(grade)
|
||||||
|
if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
|
||||||
|
return true
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
|
||||||
|
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournArenaConst.BOUNTY_GIFT_ID_1) > 0
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
|
||||||
|
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournArenaConst.BOUNTY_GIFT_ID_2) > 0
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令最大等级
|
||||||
|
function TournArenaData:getBountyMaxLevel()
|
||||||
|
return #self:getBountyIdList()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前战令等级
|
||||||
|
function TournArenaData:getBountyLevel()
|
||||||
|
if self.bountyLevel <= self:getBountyMaxLevel() then
|
||||||
|
return self.bountyLevel
|
||||||
|
else
|
||||||
|
return self:getBountyMaxLevel()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前等级战令积分
|
||||||
|
function TournArenaData:getBountyLevelScore()
|
||||||
|
return self.bountyExp
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前总积分
|
||||||
|
function TournArenaData:getBountyTotalScore()
|
||||||
|
local total = self:getBountyLevelScore()
|
||||||
|
|
||||||
|
for l = 1, self:getBountyLevel() - 1 do
|
||||||
|
total = total + (self:getBountyCfgByLevel(l).exp or 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
return total
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取等级所需总积分
|
||||||
|
function TournArenaData:getLevelTotalScore(level)
|
||||||
|
local total = 0
|
||||||
|
|
||||||
|
if level > 1 then
|
||||||
|
for l = 1, level - 1 do
|
||||||
|
total = total + (self:getBountyCfgByLevel(l).exp or 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return total
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前升级所需总积分
|
||||||
|
function TournArenaData:getBountyUpgradeScore()
|
||||||
|
return self:getBountyCfgByLevel(self:getBountyLevel()).exp or 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否满足购买战令等级的条件
|
||||||
|
function TournArenaData:canBuyBountyLevel()
|
||||||
|
if self:getBountyLevel() >= self:getBountyMaxLevel() then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local lastDay = Time:getDistanceDays(self.endTime)
|
||||||
|
if lastDay < 0 then
|
||||||
|
lastDay = -lastDay
|
||||||
|
end
|
||||||
|
return self:getActDay() >= lastDay
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 购买战令等级的消耗
|
||||||
|
function TournArenaData:getBuyBountyLevelCost()
|
||||||
|
return GFunc.getConstReward("activity_bounty_cost")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取战令档位奖励
|
||||||
|
function TournArenaData:getBountyGradeReward(level, grade)
|
||||||
|
local cfg = self:getBountyCfgByLevel(level)
|
||||||
|
local result
|
||||||
|
if cfg then
|
||||||
|
if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
|
||||||
|
result = cfg.reward
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
|
||||||
|
result = cfg.reward_pro
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
|
||||||
|
result = cfg.reward_pro_max
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令奖励可领取
|
||||||
|
function TournArenaData:canGetBountyReward(level, grade)
|
||||||
|
return self:isReachBountyReward(level, grade) and not self:isReceivedBountyReward(level, grade)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令奖励是否满足领取条件
|
||||||
|
function TournArenaData:isReachBountyReward(level, grade)
|
||||||
|
local curLevel = self:getBountyLevel()
|
||||||
|
if curLevel >= level then
|
||||||
|
return self:isBountyGradeUnlock(grade)
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令奖励是否已领取
|
||||||
|
function TournArenaData:isReceivedBountyReward(level, grade)
|
||||||
|
local id = self:getBountyIdList()[level]
|
||||||
|
if self.bountyCollected[id] == nil then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
|
||||||
|
return self.bountyCollected[id].normal
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
|
||||||
|
return self.bountyCollected[id].superior
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
|
||||||
|
return self.bountyCollected[id].superior_max
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 战令奖励领取成功
|
||||||
|
function TournArenaData:onReceivedBountyReward(successMap)
|
||||||
|
for id, grade in pairs(successMap) do
|
||||||
|
if self.bountyCollected[id] == nil then
|
||||||
|
self.bountyCollected[id] = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
if grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.FREE then
|
||||||
|
self.bountyCollected[id].normal = true
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY1 then
|
||||||
|
self.bountyCollected[id].superior = true
|
||||||
|
elseif grade == GConst.TournArenaConst.BOUNTY_GRADE_TYPE.PAY2 then
|
||||||
|
self.bountyCollected[id].superior_max = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 解锁战令等级成功
|
||||||
|
function TournArenaData:onBoughtBountyLevel()
|
||||||
|
self.bountyLevel = self.bountyLevel + 1
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 排行榜--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- 是否有排行榜红点
|
||||||
|
function TournArenaData:hasRankRedPoint()
|
||||||
|
for rank, id in ipairs(self:getRankIdList()) do
|
||||||
|
if self:isReachRankReward(rank) and not self:isReceivedRankReward(rank) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- <rank,id>
|
||||||
|
function TournArenaData:getRankIdList()
|
||||||
|
if not self.rankIdList then
|
||||||
|
self.rankIdList = GFunc.getTable(DataManager:getActivityRankByActId(self.actId) or {})
|
||||||
|
table.sort(self.rankIdList, function(a, b)
|
||||||
|
return a < b
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return self.rankIdList
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取排行榜的配置
|
||||||
|
function TournArenaData:getRankCfgByIndex(index)
|
||||||
|
return ConfigManager:getConfig("activity_rank")[self:getRankIdList()[index]]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否是最后一次分组
|
||||||
|
function TournArenaData:isFinalDay()
|
||||||
|
return self:getEndRemainTime() <= 86400
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前排行榜阶段
|
||||||
|
function TournArenaData:getCurRankStep()
|
||||||
|
return self.rankStep
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取排名相应的奖励
|
||||||
|
function TournArenaData:getRewardByRank(rank)
|
||||||
|
for index, id in ipairs(self:getRankIdList()) do
|
||||||
|
local cfg = ConfigManager:getConfig("activity_rank")[id]
|
||||||
|
if rank >= cfg.ranking[1] and rank <= cfg.ranking[2] then
|
||||||
|
return cfg.reward
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取当前排行榜阶段剩余时间
|
||||||
|
function TournArenaData:getCurRankStepRemainTime()
|
||||||
|
return self.rankStepEndTime - Time:getServerTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取排行榜数据
|
||||||
|
function TournArenaData:getRankListData(step)
|
||||||
|
if self.ranks == nil then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
return self.ranks[step] and self.ranks[step].ranks or {}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取自己的排名
|
||||||
|
function TournArenaData:getSelfRank(step)
|
||||||
|
if self.ranks == nil or self.ranks[step] == nil then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
return self.ranks[step].ownRank
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取自己的积分
|
||||||
|
function TournArenaData:getSelfScore(step)
|
||||||
|
if self.ranks == nil or self.ranks[step] == nil then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
return self.ranks[step].ownSorce
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否满足段位奖励条件
|
||||||
|
function TournArenaData:isReachRankReward()
|
||||||
|
if self:getCurRankStep() == 1 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local lastRank = self:getSelfRank(self:getCurRankStep() - 1)
|
||||||
|
if lastRank and lastRank <= 0 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return not self:isReceivedRankReward()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否已领取段位奖励
|
||||||
|
function TournArenaData:isReceivedRankReward()
|
||||||
|
if self:getCurRankStep() == 1 then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local received = self.rankCollected[self:getCurRankStep() - 1]
|
||||||
|
return received ~= nil and received or false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取排行榜数据成功
|
||||||
|
function TournArenaData:onGetRankData(step, ranks, score, ownRank)
|
||||||
|
if self.ranks == nil then
|
||||||
|
self.ranks = {}
|
||||||
|
end
|
||||||
|
self.ranks[step] = {ownRank = ownRank, ownSorce = score, ranks = ranks}
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 领取排名奖励成功
|
||||||
|
function TournArenaData:onReceivedRankReward()
|
||||||
|
self.rankCollected[self:getCurRankStep() - 1] = true
|
||||||
|
|
||||||
|
self:setDirty()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- 礼包---------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- 是否有礼包红点
|
||||||
|
function TournArenaData:hasGiftRedPoint()
|
||||||
|
local ids = GConst.TournArenaConst.GIFT_IDS
|
||||||
|
for index, id in pairs(ids) do
|
||||||
|
if self:isFreeGift(id) and self:getGiftRemainTime(id) > 0 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取礼包配置
|
||||||
|
function TournArenaData:getGiftCfg(giftId)
|
||||||
|
return DataManager.ShopData:getActGiftConfig()[giftId]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 是否是免费礼包
|
||||||
|
function TournArenaData:isFreeGift(id)
|
||||||
|
return DataManager.ShopData:getActGiftConfig()[id].recharge_id == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 获取礼包id列表
|
||||||
|
function TournArenaData:getGiftIdsSort()
|
||||||
|
local result = {}
|
||||||
|
local ids = GConst.TournArenaConst.GIFT_IDS
|
||||||
|
for index, id in ipairs(ids) do
|
||||||
|
local sort = id + 10000000000
|
||||||
|
|
||||||
|
if self:isFreeGift(id) then
|
||||||
|
sort = sort - 10000000
|
||||||
|
end
|
||||||
|
|
||||||
|
if self:getGiftRemainTime(id) > 0 then
|
||||||
|
sort = sort - 10000
|
||||||
|
end
|
||||||
|
table.insert(result, {id = id, sort = sort})
|
||||||
|
end
|
||||||
|
|
||||||
|
table.sort(result, function (a, b)
|
||||||
|
return a.sort < b.sort
|
||||||
|
end)
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 礼包剩余购买次数
|
||||||
|
function TournArenaData:getGiftRemainTime(giftId)
|
||||||
|
if self:isFreeGift(giftId) then
|
||||||
|
local giftData = DataManager.ShopData:getActGiftDetailData(PayManager.PURCHARSE_TYPE.ACT_GIFT, giftId)
|
||||||
|
if giftData and giftData.buy_count > 0 and giftData.latest_buy_at then
|
||||||
|
if Time:getBeginningOfOneDay(Time:getServerTime()) == Time:getBeginningOfOneDay(giftData.latest_buy_at // 1000) then
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return DataManager.ShopData:getGiftRemainBuyNum(giftId) or 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return TournArenaData
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c33e1d5bdb494e84cab9ccd418e3083f
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
Loading…
x
Reference in New Issue
Block a user