波次锦标赛

This commit is contained in:
Fang 2023-09-22 16:47:54 +08:00
parent 368286f11f
commit f6c4010add
38 changed files with 1751 additions and 5 deletions

View File

@ -169,6 +169,11 @@ BIReport.ITEM_GET_TYPE = {
RUNES_QUENCHING = "RuneQuenching",
RUNES_AUTO_QUENCHING = "RuneAutoQuenching",
RUNES_GIFT = "RuneGift",
TOURN_WAVE_BOUNTY_REWARD = "TournWaveBountyReward",
TOURN_WAVE_BOUNTY_LEVEL = "TournWaveBountyLevel",
TOURN_WAVE_RANK_REWARD = "TournWaveRankReward",
TOURN_WAVE_GIFT = "TournWaveGift",
TOURN_ARENA_GIFT = "TournArenaGift",
FULL_MOON_TASK = "FullMoonTask",
FULL_MOON_TASK_PROG_REWARD = "FullMoonTaskProgReward",
FULL_MOON_SKIN_CHALLENGE_REWARD = "FullMoonSkinChallengeReward",
@ -256,6 +261,8 @@ BIReport.GIFT_TYPE = {
FULL_MOON_NEW_HERO_GIFT = "FullMoonNewHeroGift",
FULL_MOON_SKIN_GIFT = "FullMoonSkinGift",
RUNES_GIFT = "RunesGift",
TOURN_WAVE_GIFT = "TournWaveGift",
TOURN_ARENA_GIFT = "TournArenaGift",
}
BIReport.COIN_TYPE = {

View File

@ -34,6 +34,7 @@ function DataManager:init()
self:initManager("ShopData", "app/userdata/shop/shop_data")
self:initManager("SummonData", "app/userdata/summon/summon_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("AIHelperData", "app/userdata/game_setting/ai_helper_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")
@ -123,6 +124,7 @@ function DataManager:clear()
self.ShopData:clear()
self.SummonData:clear()
self.FullMoonData:clear()
self.TournWaveData:clear()
-- 任务数据最后清理
self.TaskData:clear()
self.AIHelperData:clear()
@ -535,6 +537,11 @@ DataManager.activityOpenFunc = {
ModuleManager.FullMoonManager:reqActData()
ModuleManager.FullMoonManager:initTimer()
end,
[5] = function(params)
DataManager.TournWaveData:setActStatus(params)
ModuleManager.TournWaveManager:reqActData()
ModuleManager.TournWaveManager:initTimer()
end,
}
DataManager.waitOpenActivity = {
@ -551,6 +558,10 @@ DataManager.waitOpenActivity = {
DataManager.FullMoonData:setActStatus(params)
ModuleManager.FullMoonManager:initTimer()
end,
[5] = function(params)
DataManager.TournWaveData:setActStatus(params)
ModuleManager.TournWaveManager:initTimer()
end,
}
return DataManager

View File

@ -63,6 +63,7 @@ EventManager.CUSTOM_EVENT = {
DUNGEON_ARMOR_TO_TARGET_ID = "DUNGEON_ARMOR_TO_TARGET_ID",
ACTIVITY_SUMMER_END = "ACTIVITY_SUMMER_END",
ACTIVITY_FULL_MOON_END = "ACTIVITY_FULL_MOON_END",
ACTIVITY_TOURN_WAVE_END = "ACTIVITY_TOURN_WAVE_END",
MAIN_UI_CHECK_SIDE_BAR = "MAIN_UI_CHECK_SIDE_BAR",
FORMATION_CHANGE = "FORMATION_CHANGE",
BATTLE_REBIRTH = "BATTLE_REBIRTH",

View File

@ -79,6 +79,8 @@ local MODULE_PATHS = {
FourteenDayManager = "app/module/activity/fourteen_day/fourteen_day_manager",
-- 圆月活动
FullMoonManager = "app/module/activity/full_moon/full_moon_manager",
-- 波次锦标赛活动
TournWaveManager = "app/module/activity/tourn_wave/tourn_wave_manager",
-- 符文副本
DungeonRuneManager = "app/module/dungeon_rune/dungeon_rune_manager",
-- 梦魇酒馆

View File

@ -32,6 +32,8 @@ PayManager.PURCHARSE_ACT_TYPE = {
FULL_MOON_NEW_HERO_GIFT = 19,
FULL_MOON_SKIN_GIFT = 20,
RUNES_GIFT = 21,
TOURN_WAVE_GIFT = 23,
TOURN_ARENA_GIFT = 24,
}
PayManager.PURCHARSE_TYPE_CONFIG = {
@ -66,6 +68,8 @@ PayManager.BI_ITEM_GET_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_NEW_HERO_GIFT] = BIReport.ITEM_GET_TYPE.FULL_MOON_NEW_HERO_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_SKIN_GIFT] = BIReport.ITEM_GET_TYPE.FULL_MOON_SKIN_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.RUNES_GIFT] = BIReport.ITEM_GET_TYPE.RUNES_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.TOURN_WAVE_GIFT] = BIReport.ITEM_GET_TYPE.TOURN_WAVE_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.TOURN_ARENA_GIFT] = BIReport.ITEM_GET_TYPE.TOURN_ARENA_GIFT,
},
[PayManager.PURCHARSE_TYPE.ACT_GOLD_PIG] = BIReport.ITEM_GET_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.ITEM_GET_TYPE.MALL_TREASURE,
@ -97,6 +101,8 @@ PayManager.BI_GIFT_TYPE = {
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_NEW_HERO_GIFT] = BIReport.GIFT_TYPE.FULL_MOON_NEW_HERO_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.FULL_MOON_SKIN_GIFT] = BIReport.GIFT_TYPE.FULL_MOON_SKIN_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.RUNES_GIFT] = BIReport.GIFT_TYPE.RUNES_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.TOURN_WAVE_GIFT] = BIReport.GIFT_TYPE.TOURN_WAVE_GIFT,
[PayManager.PURCHARSE_ACT_TYPE.TOURN_ARENA_GIFT] = BIReport.GIFT_TYPE.TOURN_ARENA_GIFT,
},
[PayManager.PURCHARSE_TYPE.ACT_GOLD_PIG] = BIReport.GIFT_TYPE.GOLD_PIG,
[PayManager.PURCHARSE_TYPE.MALL_TREASURE] = BIReport.GIFT_TYPE.MALL_TREASURE,

View File

@ -24,6 +24,7 @@ local CONST_PATHS = {
FourteenDayConst = "app/module/activity/fourteen_day/fourteen_day_const",
DungeonRuneConst = "app/module/dungeon_rune/dungeon_rune_const",
FullMoonConst = "app/module/activity/full_moon/full_moon_const",
TournWaveConst = "app/module/activity/tourn_wave/tourn_wave_const",
}
if EDITOR_MODE then

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4b9001279852c1a4ca2b3596edbcc576
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,30 @@
local TournWaveConst = {}
-- 界面
TournWaveConst.PANEL_TYPE = {
BOUNTY = 1,
RANK = 2,
GIFT = 3,
}
-- 战令档位
TournWaveConst.BOUNTY_GRADE_TYPE = {
FREE = 0,
PAY1 = 1,
PAY2 = 2,
}
-- 战令礼包id
TournWaveConst.BOUNTY_GIFT_ID_1 = 230102
TournWaveConst.BOUNTY_GIFT_ID_2 = 230202
TournWaveConst.GIFT_IDS = {
230302,
230402,
230502,
230602,
230702,
230802,
}
return TournWaveConst

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: b16d29c98a6455245aeeb8e6941c3625
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,127 @@
local TournWaveManager = class("TournWaveManager", BaseModule)
function TournWaveManager:showActMainUI()
UIManager:showUI("app/ui/activity/tourn_wave/tourn_wave_ui")
end
-- 初始化计时器
function TournWaveManager:initTimer()
self:unscheduleGlobal(self.actSid)
if DataManager.TournWaveData:isActiveTime() then
Logger.logHighlight("波次锦标赛活动结束倒计时:"..DataManager.TournWaveData:getEndRemainTime())
self.actSid = self:performWithDelayGlobal(function()
Logger.logHighlight("波次锦标赛活动结束")
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_WAVE_END)
end, DataManager.TournWaveData:getEndRemainTime())
elseif DataManager.TournWaveData:getStartRemainTime() > 0 then
Logger.logHighlight("波次锦标赛活动开始倒计时:"..DataManager.TournWaveData:getStartRemainTime())
self.actSid = self:performWithDelayGlobal(function()
Logger.logHighlight("波次锦标赛活动开始")
self:reqActData()
end, DataManager.TournWaveData:getStartRemainTime())
end
end
-- 购买活动战令
function TournWaveManager:buyBounty(giftId)
PayManager:purchasePackage(giftId, PayManager.PURCHARSE_TYPE.ACT_GIFT)
end
-- 请求活动数据
function TournWaveManager:reqActData()
if not DataManager.TournWaveData:isOpen() then
return
end
if not DataManager.TournWaveData:isActiveTime() then
return
end
if self.isReqActData then
return
end
self.isReqActData = true
self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveDataReq, {}, {}, self.rspActData, nil)
end
function TournWaveManager:rspActData(result)
self.isReqActData = false
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.TournWaveData:onGetActData(result.tourn_wave)
end
end
-- 请求战令奖励
function TournWaveManager:reqBountyReward(id, grade)
self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveBountyClaimReq, {id = id, grade = grade}, {}, self.rspBountyReward, BIReport.ITEM_GET_TYPE.TOURN_WAVE_BOUNTY_REWARD)
end
function TournWaveManager:rspBountyReward(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.TournWaveData:onReceivedBountyReward(result.success_id_grade)
GFunc.showRewardBox(result.rewards)
end
end
-- 购买战令等级
function TournWaveManager:reqBuyBountyLevel()
local cost = DataManager.TournWaveData: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.TournWaveData:getBountyCfgByLevel(DataManager.TournWaveData:getBountyLevel() + 1).id
-- Logger.logHighlight("购买战令等级:"..id)
self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveBountyClaimByDiamondReq, {id = id}, {}, self.rspBuyBountyLevel, BIReport.ITEM_GET_TYPE.TOURN_WAVE_BOUNTY_LEVEL)
end,
}
GFunc.showMessageBox(params)
end
function TournWaveManager:rspBuyBountyLevel(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.TournWaveData:onBoughtBountyLevel()
end
end
-- 获取排行榜数据
function TournWaveManager:reqRankList(turn)
if turn == self.isReqRankList then
return
end
self.isReqRankList = turn
self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveRankReq, {turn = turn}, {}, self.rspRankList, nil)
end
function TournWaveManager:rspRankList(result)
self.isReqRankList = nil
DataManager.TournWaveData:setInReset(false)
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.TournWaveData:onGetRankData(result.reqData.turn, result.ranks, result.score, result.own_rank)
end
end
-- 领取排行榜奖励
function TournWaveManager:reqRankReward()
self:sendMessage(ProtoMsgType.FromMsgEnum.TournWaveRankClaimRewardReq, {}, {}, self.rspRankReward, BIReport.ITEM_GET_TYPE.TOURN_WAVE_RANK_REWARD)
end
function TournWaveManager:rspRankReward(result)
if result.err_code == GConst.ERROR_STR.SUCCESS then
DataManager.TournWaveData:onReceivedRankReward()
GFunc.showRewardBox(result.rewards)
end
end
return TournWaveManager

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 96146863570985640a1597f0ab1dbd55
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -37,6 +37,7 @@ MainCityConst.LEFT_SIDE_BARS = {
"app/ui/main_city/cell/side_bar_seven_days_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_tourn_wave_cell",
-- gm放最后一个
"app/ui/main_city/cell/side_bar_gm_cell"
}

View File

@ -1,6 +1,6 @@
local FourteenDayExchangeCell = class("FourteenDayExchangeCell", BaseCell)
local FourteenDayGiftCell = class("FourteenDayGiftCell", BaseCell)
function FourteenDayExchangeCell:init()
function FourteenDayGiftCell:init()
local uiMap = self:getUIMap()
self.txLimit = uiMap["fourteen_day_gift_cell.tx_limit"]
@ -19,7 +19,7 @@ function FourteenDayExchangeCell:init()
end)
end
function FourteenDayExchangeCell:refresh(id)
function FourteenDayGiftCell:refresh(id)
self.id = id
local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
local time = DataManager.FourteenDayData:getGiftRemainTime(self.id)
@ -53,4 +53,4 @@ function FourteenDayExchangeCell:refresh(id)
self.txBuy:setText(buyStr)
end
return FourteenDayExchangeCell
return FourteenDayGiftCell

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 840201af24820dd4387b1ebf46520230
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bb3773d108d0c7c46b23ba556dec5723
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,62 @@
local TournWaveBountyCell = class("TournWaveBountyCell", BaseCell)
function TournWaveBountyCell:init()
local uiMap = self:getUIMap()
self.txLevel = uiMap["tourn_wave_bounty_cell.level.tx_level"]
self.rewardCell1 = uiMap["tourn_wave_bounty_cell.reward_cell_1"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.rewardCell2 = uiMap["tourn_wave_bounty_cell.reward_cell_2"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
self.rewardCell3 = uiMap["tourn_wave_bounty_cell.reward_cell_3"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL)
end
function TournWaveBountyCell:refresh(level, id)
self.id = id
self.txLevel:setText(DataManager.TournWaveData:getLevelTotalScore(level))
local isGet
isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE)
self.rewardCell1:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE), isGet, isGet)
self.rewardCell1:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE))
if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE) then
self.rewardCell1.baseObject:addRedPoint(50, 50, 0.6)
self.rewardCell1:addClickListener(function()
self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE)
end)
else
self.rewardCell1.baseObject:removeRedPoint()
self.rewardCell1:addClickListener(nil)
end
isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
self.rewardCell2:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1), isGet, isGet)
self.rewardCell2:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1))
if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1) then
self.rewardCell2.baseObject:addRedPoint(50, 50, 0.6)
self.rewardCell2:addClickListener(function()
self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
end)
else
self.rewardCell2.baseObject:removeRedPoint()
self.rewardCell2:addClickListener(nil)
end
isGet = DataManager.TournWaveData:isReceivedBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2)
self.rewardCell3:refreshByConfig(DataManager.TournWaveData:getBountyGradeReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2), isGet, isGet)
self.rewardCell3:showLock(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2))
if DataManager.TournWaveData:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2) then
self.rewardCell3.baseObject:addRedPoint(50, 50, 0.6)
self.rewardCell3:addClickListener(function()
self:onClickReward(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2)
end)
else
self.rewardCell3.baseObject:removeRedPoint()
self.rewardCell3:addClickListener(nil)
end
end
-- 领取奖励
function TournWaveBountyCell:onClickReward(grade)
ModuleManager.TournWaveManager:reqBountyReward(self.id, grade)
end
return TournWaveBountyCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0aba106b0cea72f43bb5fe476d750402
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,56 @@
local TournWaveGiftCell = class("TournWaveGiftCell", BaseCell)
function TournWaveGiftCell:init()
local uiMap = self:getUIMap()
self.txLimit = uiMap["tourn_wave_gift_cell.tx_limit"]
self.txBuy = uiMap["tourn_wave_gift_cell.tx_buy"]
self.imgOff = uiMap["tourn_wave_gift_cell.off_img"]
self.txOff = uiMap["tourn_wave_gift_cell.off_img.tx_off"]
self.rewards = {}
for i = 1, 3 do
table.insert(self.rewards, uiMap["tourn_wave_gift_cell.reward_cell_"..i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
end
self:addClickListener(function()
if DataManager.TournWaveData:getGiftRemainTime(self.id) > 0 then
PayManager:purchasePackage(self.id, PayManager.PURCHARSE_TYPE.ACT_GIFT)
end
end)
end
function TournWaveGiftCell:refresh(id)
self.id = id
local cfg = DataManager.ShopData:getActGiftConfig()[self.id]
local time = DataManager.TournWaveData: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 TournWaveGiftCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 08a1c923b2c92e0478372680efbdce07
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,61 @@
local TournWaveRankCell = class("TournWaveRankCell", 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 TournWaveRankCell:init()
local uiMap = self:getUIMap()
self.txRank = uiMap["tourn_wave_rank_cell.tx_rank"]
self.imgRank = uiMap["tourn_wave_rank_cell.img_rank"]
self.playerHeadCell = uiMap["tourn_wave_rank_cell.player_head_cell"]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.PLAYER_HEAD_CELL)
self.txName = uiMap["tourn_wave_rank_cell.tx_name"]
self.txScore = uiMap["tourn_wave_rank_cell.tx_score"]
self.rewards = uiMap["tourn_wave_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_wave_rank_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
end
end
function TournWaveRankCell: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.TournWaveData: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 TournWaveRankCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 8cd3744c1d41e3449b5a254f46c48b86
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,61 @@
local TournWaveRankRewardCell = class("TournWaveRankRewardCell", 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 TournWaveRankRewardCell:init()
local uiMap = self:getUIMap()
self.txRank = uiMap["tourn_wave_rank_reward_cell.tx_rank"]
self.imgRank = uiMap["tourn_wave_rank_reward_cell.img_rank"]
self.rewards = uiMap["tourn_wave_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_wave_rank_reward_cell.rewards.reward_cell_" .. i]:addLuaComponent(GConst.TYPEOF_LUA_CLASS.REWARD_CELL))
end
end
function TournWaveRankRewardCell:refresh(index)
local info = DataManager.TournWaveData: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.TournWaveData: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 TournWaveRankRewardCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 967b65025941ddd469069a4d210fc121
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,110 @@
local TournWaveBountyComp = class("TournWaveBountyComp", LuaComponent)
function TournWaveBountyComp:init()
local uiMap = self:getUIMap()
self.txDesc = uiMap["bounty_panel.tx_desc"]
self.btnHelp = uiMap["bounty_panel.tx_desc.btn_help"]
self.txFree = uiMap["bounty_panel.title.free.tx_free"]
self.txCurWave = 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_WAVE_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.TournWaveData:getBountyIdList()
self.scrollrectComp:addInitCallback(function()
self.maskLevel:getTransform():SetAsLastSibling()
self.lineLevel:getTransform():SetAsLastSibling()
return "app/ui/activity/tourn_wave/cell/tourn_wave_bounty_cell"
end)
self.scrollrectComp:addRefreshCallback(function(index, cell)
cell:refresh(index, self.bountyIdList[index])
end)
self.scrollrectComp:clearCells()
self.scrollrectComp:refillCells(DataManager.TournWaveData:getBountyMaxLevel())
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_WAVE_HELP_1),
}
ModuleManager.TipsManager:showHelpTips(params)
end)
self.btnBuy1:addClickListener(function()
ModuleManager.TournWaveManager:buyBounty(GConst.TournWaveConst.BOUNTY_GIFT_ID_1)
end)
self.btnBuy2:addClickListener(function()
ModuleManager.TournWaveManager:buyBounty(GConst.TournWaveConst.BOUNTY_GIFT_ID_2)
end)
self.btnBuyLevel:addClickListener(function()
ModuleManager.TournWaveManager:reqBuyBountyLevel()
end)
self:bind(DataManager.TournWaveData, "isDirty", function()
self:refresh(true)
end)
self:bind(DataManager.ShopData, "isDirty", function()
self:refresh(true)
end)
end
function TournWaveBountyComp:refresh(notUpdatePos)
self.btnBuyLevel:setActive(DataManager.TournWaveData:canBuyBountyLevel())
self.txCurWave:setText(DataManager.TournWaveData:getBountyTotalScore())
-- 档位展示
self.btnBuy1:setActive(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1))
self.btnBuy2:setActive(not DataManager.TournWaveData:isBountyGradeUnlock(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2))
local gift1 = DataManager.TournWaveData:getBountyGradeGiftCfg(GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1)
local gift2 = DataManager.TournWaveData:getBountyGradeGiftCfg(GConst.TournWaveConst.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.TournWaveData:getBuyBountyLevelCost()))
GFunc.centerImgAndTx(self.imgBuyLevelIcon, self.txBuyLevelNum, 5)
-- 等级列表
local maxLevel = DataManager.TournWaveData:getBountyMaxLevel()
local curLevel = DataManager.TournWaveData: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.TournWaveData:getBountyTotalScore() / DataManager.TournWaveData:getLevelTotalScore(#DataManager.TournWaveData: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.TournWaveData:getFirstCanGetBountyRewardLevel()
self.scrollrectComp:moveToIndex(rewardLevel or curLevel)
end
end
return TournWaveBountyComp

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a89a4c596ad402b448d81442cc26026f
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,28 @@
local TournWaveGiftComp = class("TournWaveGiftComp", LuaComponent)
function TournWaveGiftComp: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_wave/cell/tourn_wave_gift_cell"
end)
self.scrollrectComp:addRefreshCallback(function(index, cell)
cell:refresh(self.giftList[index].id)
end)
self:bind(DataManager.TournWaveData, "isDirty", function()
self:refresh()
end)
self:bind(DataManager.ShopData, "isDirty", function()
self:refresh()
end)
end
function TournWaveGiftComp:refresh()
self.giftList = DataManager.TournWaveData:getGiftIdsSort()
self.scrollrectComp:clearCells()
self.scrollrectComp:refillCells(#self.giftList)
end
return TournWaveGiftComp

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: cff71edf36f45d74d849b0c5ebc13b7c
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,204 @@
local TournWaveRankComp = class("TournWaveRankComp", 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 TournWaveRankComp:onClose()
if self.countdownSid then
self.baseObject:unscheduleGlobal(self.countdownSid)
self.countdownSid = nil
end
end
function TournWaveRankComp: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_wave/cell/tourn_wave_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_wave/cell/tourn_wave_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_WAVE_HELP_2),
}
ModuleManager.TipsManager:showHelpTips(params)
end)
self.btnCur:addClickListener(function()
ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep())
self:refresh(SHOW_TYPE.CUR_RANK)
end)
self.btnLast:addClickListener(function()
ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep() - 1)
self:refresh(SHOW_TYPE.LAST_RANK)
end)
self.btnReward:addClickListener(function()
self:refresh(SHOW_TYPE.REWARD)
end)
self:bind(DataManager.TournWaveData, "isDirty", function()
self:refresh()
end)
end
function TournWaveRankComp: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.TournWaveData: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 TournWaveRankComp:showSelfRank(step)
local rank = DataManager.TournWaveData:getSelfRank(step)
local score = DataManager.TournWaveData: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.TournWaveData: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.TournWaveData:getCurRankStep() and DataManager.TournWaveData:isReachRankReward() then
cell.baseObject:addRedPoint(50, 50, 0.6)
cell:addClickListener(function()
ModuleManager.TournWaveManager:reqRankReward()
end)
else
cell.baseObject:removeRedPoint()
cell:addClickListener(nil)
end
else
cell:setVisible(false)
end
end
self.rewards:RefreshLayout()
end
-- 展示榜单
function TournWaveRankComp:showRankList(step)
self.listRankComp:getBaseObject():setActive(true)
self.listRewardComp:getBaseObject():setActive(false)
self.rankDataList = DataManager.TournWaveData: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 TournWaveRankComp:showRankReward()
self.listRankComp:getBaseObject():setActive(false)
self.listRewardComp:getBaseObject():setActive(true)
self.txEmpty:setActive(false)
self.rankIdList = DataManager.TournWaveData:getRankIdList()
self.listRewardComp:clearCells()
self.listRewardComp:refillCells(#self.rankIdList)
end
-- 刷新倒计时
function TournWaveRankComp:refreshCountdown()
if self.countdownSid then
self.baseObject:unscheduleGlobal(self.countdownSid)
end
local str = DataManager.TournWaveData: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.TournWaveData:getCurRankStepRemainTime()))
self.countdownSid = self.baseObject:scheduleGlobal(function()
local time = DataManager.TournWaveData:getCurRankStepRemainTime()
if time >= 0 then
self.txCountdown:setText(str .. Time:formatNumTimeStr(time))
else
if self.showType == SHOW_TYPE.CUR_RANK then
ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep())
elseif self.showType == SHOW_TYPE.LAST_RANK then
ModuleManager.TournWaveManager:reqRankList(DataManager.TournWaveData:getCurRankStep() - 1)
end
end
end, 1)
end
return TournWaveRankComp

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: f1a089a3d69cb5c43954d024f28ce4e8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,201 @@
local TournWaveUI = class("TournWaveUI", BaseUI)
local COMP_BOUNTY = "app/ui/activity/tourn_wave/tourn_wave_bounty_comp"
local COMP_RANK = "app/ui/activity/tourn_wave/tourn_wave_rank_comp"
local COMP_GIFT = "app/ui/activity/tourn_wave/tourn_wave_gift_comp"
function TournWaveUI:isFullScreen()
return false
end
function TournWaveUI:getPrefabPath()
return "assets/prefabs/ui/activity/tourn_wave/tourn_wave_ui.prefab"
end
function TournWaveUI:onPressBackspace()
self:closeUI()
end
function TournWaveUI:onClose()
if self.compRank ~= nil then
self.compRank:refresh()
end
if self.countdownSid then
self.txCountdown:unscheduleGlobal(self.countdownSid)
end
end
function TournWaveUI:ctor(param)
if param then
self.panelType = param
else
self.panelType = GConst.TournWaveConst.PANEL_TYPE.BOUNTY -- 默认进入任务页签
end
end
function TournWaveUI:onLoadRootComplete()
local uiMap = self.root:genAllChildren()
-- 通用
self.txTitle = uiMap["tourn_wave_ui.common.img_title.tx_title"]
self.btnClose = uiMap["tourn_wave_ui.common.btn_close"]
self.bg = uiMap["tourn_wave_ui.common.bg"]
self.countdown = uiMap["tourn_wave_ui.common.countdown"]
self.txCountdown = uiMap["tourn_wave_ui.common.countdown.tx_countdown"]
-- 子界面
self.bountyPanel = uiMap["tourn_wave_ui.bounty_panel"]
self.rankPanel = uiMap["tourn_wave_ui.rank_panel"]
self.giftPanel = uiMap["tourn_wave_ui.gift_panel"]
-- 战令标签
self.btnBounty = uiMap["tourn_wave_ui.common.btns.btn_bounty"]
self.txBounty1 = uiMap["tourn_wave_ui.common.btns.btn_bounty.tx_btn"]
self.txBounty2 = uiMap["tourn_wave_ui.common.btns.btn_bounty.select.tx_select"]
self.selectBounty = uiMap["tourn_wave_ui.common.btns.btn_bounty.select"]
-- 排行榜标签
self.btnRank = uiMap["tourn_wave_ui.common.btns.btn_rank"]
self.txRank1 = uiMap["tourn_wave_ui.common.btns.btn_rank.tx_btn"]
self.txRank2 = uiMap["tourn_wave_ui.common.btns.btn_rank.select.tx_select"]
self.selectRank = uiMap["tourn_wave_ui.common.btns.btn_rank.select"]
-- 礼包标签
self.btnGift = uiMap["tourn_wave_ui.common.btns.btn_gift"]
self.txGift1 = uiMap["tourn_wave_ui.common.btns.btn_gift.tx_btn"]
self.txGift2 = uiMap["tourn_wave_ui.common.btns.btn_gift.select.tx_select"]
self.selectGift = uiMap["tourn_wave_ui.common.btns.btn_gift.select"]
self.txTitle:setText(I18N:getGlobalText(I18N.GlobalConst.ACT_TOURN_WAVE_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.btnBounty:addClickListener(function()
self.panelType = GConst.TournWaveConst.PANEL_TYPE.BOUNTY
self:onRefresh()
end)
self.btnRank:addClickListener(function()
self.panelType = GConst.TournWaveConst.PANEL_TYPE.RANK
self:onRefresh()
end)
self.btnGift:addClickListener(function()
self.panelType = GConst.TournWaveConst.PANEL_TYPE.GIFT
self:onRefresh()
end)
self.btnClose:addClickListener(function()
self:closeUI()
end)
self:addEventListener(EventManager.CUSTOM_EVENT.ACTIVITY_TOURN_WAVE_END, function()
self:closeUI()
end)
self:bind(DataManager.TournWaveData, "isDirty", function()
-- 检查更新数据
if DataManager.TournWaveData:getIsInReset() and self.panelType == GConst.TournWaveConst.PANEL_TYPE.RANK then
self:onRefresh()
else
self:refreshRedPoint()
end
end)
end
function TournWaveUI:onRefresh()
-- 倒计时
if self.countdownSid then
self.txCountdown:unscheduleGlobal(self.countdownSid)
end
self.txCountdown:setText(Time:formatNumTimeStr(DataManager.TournWaveData:getEndRemainTime()))
self.countdownSid = self.txCountdown:scheduleGlobal(function()
local time = DataManager.TournWaveData:getEndRemainTime()
if time >= 0 then
self.txCountdown:setText(Time:formatNumTimeStr(time))
end
end, 1)
if self.panelType == GConst.TournWaveConst.PANEL_TYPE.BOUNTY then
self:showBountyInfo()
elseif self.panelType == GConst.TournWaveConst.PANEL_TYPE.RANK then
self:showRankInfo()
elseif self.panelType == GConst.TournWaveConst.PANEL_TYPE.GIFT then
self:showGiftInfo()
end
self:refreshRedPoint()
end
-- 刷新标签红点
function TournWaveUI:refreshRedPoint()
if DataManager.TournWaveData:hasBountyRedPoint() then
self.btnBounty:addRedPoint(-75, -5, 0.6)
else
self.btnBounty:removeRedPoint()
end
if DataManager.TournWaveData:hasRankRedPoint() then
self.btnRank:addRedPoint(-75, -5, 0.6)
else
self.btnRank:removeRedPoint()
end
if DataManager.TournWaveData:hasGiftRedPoint() then
self.btnGift:addRedPoint(-75, -5, 0.6)
else
self.btnGift:removeRedPoint()
end
end
function TournWaveUI: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 TournWaveUI: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.TournWaveManager:reqRankList(DataManager.TournWaveData: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 TournWaveUI: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 TournWaveUI

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c3c48b9494daada49a21717ce70dd4a8
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -0,0 +1,46 @@
local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
local SideBarTournWaveCell = class("SideBarTournWaveCell", SideBarBaseCellComp)
function SideBarTournWaveCell:getModuleKey()
return ModuleManager.MODULE_KEY.ACTIVITY
end
function SideBarTournWaveCell:getIsOpen()
return DataManager.TournWaveData:isOpen() and DataManager.TournWaveData:isActiveTime()
end
function SideBarTournWaveCell:getSpineName()
return "ui_main_btn_act_fullmoon"
end
function SideBarTournWaveCell:onClick()
ModuleManager.TournWaveManager:showActMainUI()
end
function SideBarTournWaveCell:getIsShowRedPoint()
return DataManager.TournWaveData:hasEntryRedPoint()
end
function SideBarTournWaveCell:onRefresh()
self.timeBg:setVisible(true)
self:_refreshTime()
end
function SideBarTournWaveCell:updateTime()
if self:getIsOpen() then
self:_refreshTime()
else
self:closeBtn()
end
end
function SideBarTournWaveCell:_refreshTime()
local remainTime = DataManager.TournWaveData:getEndRemainTime()
if remainTime >= 0 then
self.timeTx:setText(GFunc.getTimeStr(remainTime))
else
self.timeTx:setText("00:00:00")
end
end
return SideBarTournWaveCell

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 2a27a3856b8ae854a867d2264ee54a70
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}

View File

@ -624,7 +624,7 @@ end
function FourteenDayData:getGiftRemainTime(giftId)
if self:isFreeGift(giftId) then
local giftData = DataManager.ShopData:getActGiftDetailData(PayManager.PURCHARSE_TYPE.ACT_GIFT, giftId)
if giftData and giftData.latest_buy_at then
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

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a333fbe6fb2c2ed43aac6d319fb913fa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8ef93c36d00ed70449ca5eddabc0d378
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,571 @@
local TournWaveData = class("TournWaveData", BaseData)
function TournWaveData:ctor()
self.data.isDirty = false
self.bountyLevel = 1
self.bountyExp = 0
self.bountyCollected = {}
self.rankStep = 1
self.rankStepEndTime = 0
self.rankCollected = {}
end
function TournWaveData:clear()
DataManager:unregisterTryOpenFunc("TournWaveData")
DataManager:unregisterCrossDayFunc("TournWaveData")
end
-- 设置活动数据
function TournWaveData: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("TournWaveData", function()
if not self:isOpen() then
return
end
if not self:isActiveTime() then
return
end
DataManager:unregisterTryOpenFunc("TournWaveData")
ModuleManager.TournWaveManager:reqActData()
end)
end
end
-- 获取活动数据成功
function TournWaveData: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("TournWaveData", function()
if not self:isOpen() then
return
end
if not self:isActiveTime() then
return
end
self.ranks = nil
self:setInReset(true)
self:initTaskListener()
self:setDirty()
end)
self:initTaskListener()
self:setDirty()
end
function TournWaveData:initTaskListener()
if not self:isOpen() then
return
end
if not self:isActiveTime() then
ModuleManager.TaskManager:unRegisterAllModuleTask("TournWaveData")
return
end
ModuleManager.TaskManager:registerTask("TournWaveData", GConst.TaskConst.TASK_TYPE.X_BATTLE_PASS_WAVE, function(count)
self:addWaveCount(count)
end)
end
function TournWaveData:setInReset(isInReset)
self.isInReset = isInReset
end
function TournWaveData:getIsInReset()
return self.isInReset
end
function TournWaveData:setDirty()
self.data.isDirty = not self.data.isDirty
end
function TournWaveData: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 TournWaveData: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 TournWaveData:getStartRemainTime()
if self.startTime == nil or self.startTime <= 0 then
return 0
end
return self.startTime - Time:getServerTime()
end
-- 获取活动结束剩余时间(秒)
function TournWaveData:getEndRemainTime()
if self.endTime == nil or self.endTime <= 0 then
return 0
end
return self.endTime - Time:getServerTime()
end
-- 当前为活动第几天
function TournWaveData:getActDay()
local days = Time:getDistanceDays(self.startTime)
if days < 0 then
days = -days
end
return days + 1
end
-- 是否有入口红点
function TournWaveData:hasEntryRedPoint()
return self:hasBountyRedPoint() or self:hasRankRedPoint() or self:hasGiftRedPoint()
end
-- 战令--------------------------------------------------------------------------------------------------
-- 是否有战令红点
function TournWaveData:hasBountyRedPoint()
if self:getFirstCanGetBountyRewardLevel() ~= nil then
return true
end
return false
end
-- 获取首个可领取奖励的战令等级
function TournWaveData:getFirstCanGetBountyRewardLevel()
local curLevel = self:getBountyLevel()
for level, data in ipairs(self:getBountyIdList()) do
if level > curLevel then
break
end
if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE) then
return true
end
if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1) then
return true
end
if self:canGetBountyReward(level, GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2) then
return true
end
end
return nil
end
-- <level,id>
function TournWaveData: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 TournWaveData:getBountyCfgByLevel(level)
return ConfigManager:getConfig("activity_bounty_level")[self:getBountyIdList()[level]]
end
-- 获取战令档位礼包配置
function TournWaveData:getBountyGradeGiftCfg(gradeType)
if gradeType == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
return DataManager.ShopData:getActGiftConfig()[GConst.TournWaveConst.BOUNTY_GIFT_ID_1]
elseif gradeType == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
return DataManager.ShopData:getActGiftConfig()[GConst.TournWaveConst.BOUNTY_GIFT_ID_2]
end
end
-- 战令档位是否已解锁
function TournWaveData:isBountyGradeUnlock(grade)
if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
return true
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournWaveConst.BOUNTY_GIFT_ID_1) > 0
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
return DataManager.ShopData:getGiftBoughtNum(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.TournWaveConst.BOUNTY_GIFT_ID_2) > 0
end
return false
end
-- 战令最大等级
function TournWaveData:getBountyMaxLevel()
return #self:getBountyIdList()
end
-- 获取当前战令等级
function TournWaveData:getBountyLevel()
if self.bountyLevel <= self:getBountyMaxLevel() then
return self.bountyLevel
else
return self:getBountyMaxLevel()
end
end
-- 获取当前等级战令积分
function TournWaveData:getBountyLevelScore()
return self.bountyExp
end
-- 获取当前总波次
function TournWaveData: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 TournWaveData: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 TournWaveData:getBountyUpgradeScore()
return self:getBountyCfgByLevel(self:getBountyLevel()).exp or 0
end
-- 是否满足购买战令等级的条件
function TournWaveData: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 TournWaveData:getBuyBountyLevelCost()
return GFunc.getConstReward("activity_bounty_cost")
end
-- 获取战令档位奖励
function TournWaveData:getBountyGradeReward(level, grade)
local cfg = self:getBountyCfgByLevel(level)
local result
if cfg then
if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
result = cfg.reward
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
result = cfg.reward_pro
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
result = cfg.reward_pro_max
end
end
return result
end
-- 战令奖励可领取
function TournWaveData:canGetBountyReward(level, grade)
return self:isReachBountyReward(level, grade) and not self:isReceivedBountyReward(level, grade)
end
-- 战令奖励是否满足领取条件
function TournWaveData:isReachBountyReward(level, grade)
local curLevel = self:getBountyLevel()
if curLevel >= level then
return self:isBountyGradeUnlock(grade)
else
return false
end
end
-- 战令奖励是否已领取
function TournWaveData:isReceivedBountyReward(level, grade)
local id = self:getBountyIdList()[level]
if self.bountyCollected[id] == nil then
return false
end
if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
return self.bountyCollected[id].normal
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
return self.bountyCollected[id].superior
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
return self.bountyCollected[id].superior_max
end
end
-- 战令奖励领取成功
function TournWaveData:onReceivedBountyReward(successMap)
Logger.logHighlight("战令奖励领取成功")
Logger.printTable(successMap)
for id, grade in pairs(successMap) do
if self.bountyCollected[id] == nil then
self.bountyCollected[id] = {}
end
if grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.FREE then
self.bountyCollected[id].normal = true
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY1 then
self.bountyCollected[id].superior = true
elseif grade == GConst.TournWaveConst.BOUNTY_GRADE_TYPE.PAY2 then
self.bountyCollected[id].superior_max = true
end
end
self:setDirty()
end
-- 解锁战令等级成功
function TournWaveData:onBoughtBountyLevel()
self.bountyLevel = self.bountyLevel + 1
self:setDirty()
end
-- 战令波次改变
function TournWaveData:addWaveCount(count)
self.bountyExp = self.bountyExp + count
local upExp = self:getBountyUpgradeScore()
if upExp > 0 and self.bountyExp >= upExp then
self.bountyExp = self.bountyExp - upExp
self.bountyLevel = self.bountyLevel + 1
end
self:setDirty()
end
-- 排行榜--------------------------------------------------------------------------------------------------
-- 是否有排行榜红点
function TournWaveData: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 TournWaveData: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 TournWaveData:getRankCfgByIndex(index)
return ConfigManager:getConfig("activity_rank")[self:getRankIdList()[index]]
end
-- 是否是最后一次分组
function TournWaveData:isFinalDay()
return self:getEndRemainTime() <= 86400
end
-- 获取当前排行榜阶段
function TournWaveData:getCurRankStep()
return self.rankStep
end
-- 获取排名相应的奖励
function TournWaveData: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 TournWaveData:getCurRankStepRemainTime()
return self.rankStepEndTime - Time:getServerTime()
end
-- 获取排行榜数据
function TournWaveData:getRankListData(step)
if self.ranks == nil then
return nil
end
return self.ranks[step] and self.ranks[step].ranks or {}
end
-- 获取自己的排名
function TournWaveData:getSelfRank(step)
if self.ranks == nil or self.ranks[step] == nil then
return 0
end
return self.ranks[step].ownRank
end
-- 获取自己的积分
function TournWaveData:getSelfScore(step)
if self.ranks == nil or self.ranks[step] == nil then
return 0
end
return self.ranks[step].ownSorce
end
-- 是否满足段位奖励条件
function TournWaveData: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 TournWaveData: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 TournWaveData: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 TournWaveData:onReceivedRankReward()
self.rankCollected[self:getCurRankStep() - 1] = true
self:setDirty()
end
-- 礼包---------------------------------------------------------------------------------------------------
-- 是否有礼包红点
function TournWaveData:hasGiftRedPoint()
local ids = GConst.TournWaveConst.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 TournWaveData:getGiftCfg(giftId)
return DataManager.ShopData:getActGiftConfig()[giftId]
end
-- 是否是免费礼包
function TournWaveData:isFreeGift(id)
return DataManager.ShopData:getActGiftConfig()[id].recharge_id == nil
end
-- 获取礼包id列表
function TournWaveData:getGiftIdsSort()
local result = {}
local ids = GConst.TournWaveConst.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 TournWaveData: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)
end
end
return TournWaveData

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 788cab35c3ef4184386df9d940a38560
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}