成长礼包逻辑
This commit is contained in:
parent
ec6ce43f70
commit
c106607a65
@ -60,7 +60,8 @@ ModuleManager.MODULE_KEY = {
|
|||||||
IDLE_DROP = "idle_drop",
|
IDLE_DROP = "idle_drop",
|
||||||
MALL = "mall", -- 商城
|
MALL = "mall", -- 商城
|
||||||
MALL_DAILY = "mall_daily", -- 每日商城
|
MALL_DAILY = "mall_daily", -- 每日商城
|
||||||
FUND = "act_level_gift" -- 成长基金
|
FUND = "act_level_gift", -- 成长基金
|
||||||
|
ACT_GIFT_SHOW_OPEN = "act_gift_show_open", -- 弹窗礼包通用开启条件
|
||||||
}
|
}
|
||||||
|
|
||||||
local _moduleMgrs = {}
|
local _moduleMgrs = {}
|
||||||
|
|||||||
@ -25,6 +25,9 @@ MainCityConst.LEFT_SIDE_BARS = {
|
|||||||
MainCityConst.RIGHT_SIDE_BARS = {
|
MainCityConst.RIGHT_SIDE_BARS = {
|
||||||
"app/ui/main_city/cell/side_bar_gold_pig_cell",
|
"app/ui/main_city/cell/side_bar_gold_pig_cell",
|
||||||
"app/ui/main_city/cell/side_bar_level_fund_cell",
|
"app/ui/main_city/cell/side_bar_level_fund_cell",
|
||||||
|
"app/ui/main_city/cell/side_bar_beginner_gift_cell",
|
||||||
|
"app/ui/main_city/cell/side_bar_grow_up_gift_1_cell",
|
||||||
|
"app/ui/main_city/cell/side_bar_grow_up_gift_2_cell",
|
||||||
}
|
}
|
||||||
|
|
||||||
return MainCityConst
|
return MainCityConst
|
||||||
@ -23,8 +23,14 @@ end
|
|||||||
|
|
||||||
-- 触发弹窗礼包
|
-- 触发弹窗礼包
|
||||||
function ShopManager:triggerGiftPopUI(actType, actId)
|
function ShopManager:triggerGiftPopUI(actType, actId)
|
||||||
|
if ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ACT_GIFT_SHOW_OPEN, true) then
|
||||||
UIManager:showUI("app/ui/shop/gift_pop_ui", {type = actType, id = actId})
|
UIManager:showUI("app/ui/shop/gift_pop_ui", {type = actType, id = actId})
|
||||||
DataManager.ShopData:removePopUpGift(actType, actId)
|
DataManager.ShopData:removePopUpGift(actType, actId)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopManager:showGiftPopUI(actType, actId)
|
||||||
|
UIManager:showUI("app/ui/shop/gift_pop_ui", {type = actType, id = actId, onlySelf = true})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 触发金币弹窗礼包
|
-- 触发金币弹窗礼包
|
||||||
@ -172,8 +178,10 @@ end
|
|||||||
-- 推送成长礼包
|
-- 推送成长礼包
|
||||||
function ShopManager:onTriggerGrowUpGift(result)
|
function ShopManager:onTriggerGrowUpGift(result)
|
||||||
DataManager.ShopData:onTriggerGrowUpGift(result.add_grow_up_gift)
|
DataManager.ShopData:onTriggerGrowUpGift(result.add_grow_up_gift)
|
||||||
-- 立即触发弹窗
|
-- 有2种情况 1.处于英雄升级/解锁界面 立即触发弹窗 2.购买了成长礼包,此时仅标记,在奖励弹窗结束后再弹
|
||||||
|
if UIManager:getTopUIObj() == UIManager.UI_PATH.HERO_DETAIL_UI then
|
||||||
self:triggerGrowUpGiftPopUI(result.add_grow_up_gift.current_grow_up_id)
|
self:triggerGrowUpGiftPopUI(result.add_grow_up_gift.current_grow_up_id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return ShopManager
|
return ShopManager
|
||||||
42
lua/app/ui/main_city/cell/side_bar_beginner_gift_cell.lua
Normal file
42
lua/app/ui/main_city/cell/side_bar_beginner_gift_cell.lua
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
|
||||||
|
local SideBarBeginnerGiftCell = class("SideBarBeginnerGiftCell", SideBarBaseCellComp)
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:getIsOpen()
|
||||||
|
return DataManager.ShopData:getBeginnerGiftShowSideBar()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:getIconRes()
|
||||||
|
return "main_btn_gift_1" -- TODOJ
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:onClick()
|
||||||
|
ModuleManager.ShopManager:showGiftPopUI(PayManager.PURCHARSE_TYPE.ACT_GIFT, GConst.ShopConst.BEGINNER_GIFT_ID)
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:getIsShowRedPoint()
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:onRefresh()
|
||||||
|
self.timeBg:setVisible(true)
|
||||||
|
self:_refreshTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:updateTime()
|
||||||
|
if self:getIsOpen() then
|
||||||
|
self:_refreshTime()
|
||||||
|
else
|
||||||
|
self:closeBtn()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarBeginnerGiftCell:_refreshTime()
|
||||||
|
local remainTime = DataManager.ShopData:getBeginnerGiftSideBarRemainTime()
|
||||||
|
if remainTime >= 0 then
|
||||||
|
self.timeTx:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return SideBarBeginnerGiftCell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b43a4c18aa3ff764691d1792e98936e2
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
57
lua/app/ui/main_city/cell/side_bar_grow_up_gift_1_cell.lua
Normal file
57
lua/app/ui/main_city/cell/side_bar_grow_up_gift_1_cell.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
|
||||||
|
local SideBarGrowUpGift1Cell = class("SideBarGrowUpGift1Cell", SideBarBaseCellComp)
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:getIsOpen()
|
||||||
|
return #DataManager.ShopData:getValidGrowUpGifts() >= 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:getIconRes()
|
||||||
|
return "main_btn_gift_2" -- TODOJ
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:onClick()
|
||||||
|
local gift = DataManager.ShopData:getValidGrowUpGifts()[1]
|
||||||
|
if gift then
|
||||||
|
ModuleManager.ShopManager:showGiftPopUI(PayManager.PURCHARSE_TYPE.GROW_UP_GIFT, gift.current_grow_up_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:getIsShowRedPoint()
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:onRefresh()
|
||||||
|
self.timeBg:setVisible(true)
|
||||||
|
self:_refreshTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:updateTime()
|
||||||
|
if self:getIsOpen() then
|
||||||
|
self:_refreshTime()
|
||||||
|
else
|
||||||
|
self:closeBtn()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift1Cell:_refreshTime()
|
||||||
|
local gift = DataManager.ShopData:getValidGrowUpGifts()[1]
|
||||||
|
if gift then
|
||||||
|
local cfgInfo = DataManager.ShopData:getActGrowUpGiftConfig()[gift.current_grow_up_id]
|
||||||
|
if cfgInfo then
|
||||||
|
local durationTime = (cfgInfo.limit_time or 0) * 3600
|
||||||
|
local triggerTime = gift.trigger_at // 1000
|
||||||
|
local remainTime = triggerTime + durationTime - Time:getServerTime()
|
||||||
|
if remainTime >= 0 then
|
||||||
|
self.timeTx:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return SideBarGrowUpGift1Cell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 297d71f3bc4702a40a96511df082c7ad
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
57
lua/app/ui/main_city/cell/side_bar_grow_up_gift_2_cell.lua
Normal file
57
lua/app/ui/main_city/cell/side_bar_grow_up_gift_2_cell.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
local SideBarBaseCellComp = require "app/ui/main_city/cell/side_bar_base_cell"
|
||||||
|
local SideBarGrowUpGift2Cell = class("SideBarGrowUpGift2Cell", SideBarBaseCellComp)
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:getIsOpen()
|
||||||
|
return #DataManager.ShopData:getValidGrowUpGifts() >= 2
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:getIconRes()
|
||||||
|
return "main_btn_gift_2" -- TODOJ
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:onClick()
|
||||||
|
local gift = DataManager.ShopData:getValidGrowUpGifts()[2]
|
||||||
|
if gift then
|
||||||
|
ModuleManager.ShopManager:showGiftPopUI(PayManager.PURCHARSE_TYPE.GROW_UP_GIFT, gift.current_grow_up_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:getIsShowRedPoint()
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:onRefresh()
|
||||||
|
self.timeBg:setVisible(true)
|
||||||
|
self:_refreshTime()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:updateTime()
|
||||||
|
if self:getIsOpen() then
|
||||||
|
self:_refreshTime()
|
||||||
|
else
|
||||||
|
self:closeBtn()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function SideBarGrowUpGift2Cell:_refreshTime()
|
||||||
|
local gift = DataManager.ShopData:getValidGrowUpGifts()[2]
|
||||||
|
if gift then
|
||||||
|
local cfgInfo = DataManager.ShopData:getActGrowUpGiftConfig()[gift.current_grow_up_id]
|
||||||
|
if cfgInfo then
|
||||||
|
local durationTime = (cfgInfo.limit_time or 0) * 3600
|
||||||
|
local triggerTime = gift.trigger_at // 1000
|
||||||
|
local remainTime = triggerTime + durationTime - Time:getServerTime()
|
||||||
|
if remainTime >= 0 then
|
||||||
|
self.timeTx:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
self.timeTx:setText("00:00:00")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return SideBarGrowUpGift2Cell
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2dded7533782f8247b5d11e2eedfdd21
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3}
|
||||||
@ -26,6 +26,7 @@ function GiftPopUI:ctor(params)
|
|||||||
|
|
||||||
self.actType = params.type
|
self.actType = params.type
|
||||||
self.actId = params.id
|
self.actId = params.id
|
||||||
|
self.onlySelf = params.onlySelf -- 有此标记时 关闭直接关闭界面
|
||||||
self.buyCount = DataManager.ShopData:getGiftBoughtNum(self.actType, self.actId) -- 触发时该礼包的购买数量
|
self.buyCount = DataManager.ShopData:getGiftBoughtNum(self.actType, self.actId) -- 触发时该礼包的购买数量
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -44,7 +45,11 @@ function GiftPopUI:onLoadRootComplete()
|
|||||||
|
|
||||||
self.uiMap = self.root:genAllChildren()
|
self.uiMap = self.root:genAllChildren()
|
||||||
self.uiMap["gift_pop_ui.close_btn"]:addClickListener(function()
|
self.uiMap["gift_pop_ui.close_btn"]:addClickListener(function()
|
||||||
|
if self.onlySelf then
|
||||||
|
self:closeUI()
|
||||||
|
else
|
||||||
self:checkNextPopGiftOrClose()
|
self:checkNextPopGiftOrClose()
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
self.titleTx = self.uiMap["gift_pop_ui.bg.title"]
|
self.titleTx = self.uiMap["gift_pop_ui.bg.title"]
|
||||||
@ -147,8 +152,38 @@ function GiftPopUI:refresh(needCheck)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function GiftPopUI:updateTime()
|
function GiftPopUI:updateTime()
|
||||||
-- TODOJ
|
local hasTime = false
|
||||||
self.timeNode:setVisible(false)
|
-- 部分礼包有倒计时
|
||||||
|
if self.actType == PayManager.PURCHARSE_TYPE.ACT_GIFT then
|
||||||
|
local cfgInfo = DataManager.ShopData:getActGiftConfig()[self.actId]
|
||||||
|
if cfgInfo then
|
||||||
|
if cfgInfo.type == PayManager.PURCHARSE_ACT_TYPE.FIRST_RECHARGE then -- 首充礼包
|
||||||
|
hasTime = true
|
||||||
|
self.timeText:setText("TODOJ") -- TODOJ
|
||||||
|
elseif cfgInfo and cfgInfo.type == PayManager.PURCHARSE_ACT_TYPE.COIN_GIFT then -- 金币礼包
|
||||||
|
hasTime = true
|
||||||
|
local remainTime = 0
|
||||||
|
local triggerTime = DataManager.ShopData:getCoinGiftTriggerTime()
|
||||||
|
remainTime = triggerTime + (cfgInfo.limit_time or 0) * 3600 - Time:getServerTime()
|
||||||
|
if remainTime <= 0 then
|
||||||
|
remainTime = 0
|
||||||
|
end
|
||||||
|
self.timeText:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif self.actType == PayManager.PURCHARSE_TYPE.GROW_UP_GIFT then -- 成长礼包
|
||||||
|
hasTime = true
|
||||||
|
local remainTime = 0
|
||||||
|
local cfgInfo = DataManager.ShopData:getActGrowUpGiftConfig()[self.actId]
|
||||||
|
local gift = DataManager.ShopData:getGrowUpGiftByActId(self.actId)
|
||||||
|
local triggerTime = (gift and gift.trigger_at or 0) // 1000
|
||||||
|
remainTime = triggerTime + (cfgInfo.limit_time or 0) * 3600 - Time:getServerTime()
|
||||||
|
if remainTime <= 0 then
|
||||||
|
remainTime = 0
|
||||||
|
end
|
||||||
|
self.timeText:setText(GFunc.getTimeStr(remainTime))
|
||||||
|
end
|
||||||
|
self.timeNode:setVisible(hasTime)
|
||||||
end
|
end
|
||||||
|
|
||||||
function GiftPopUI:onClickGift()
|
function GiftPopUI:onClickGift()
|
||||||
|
|||||||
@ -110,9 +110,6 @@ function ShopComp:initDiscountPage()
|
|||||||
self.coinSellCell = self.uiMap["shop_comp.discount.scrollrect.viewport.content.coin_sell_cell"]:addLuaComponent(PAGE_DISCOUNT_COIN_SELL_CELL)
|
self.coinSellCell = self.uiMap["shop_comp.discount.scrollrect.viewport.content.coin_sell_cell"]:addLuaComponent(PAGE_DISCOUNT_COIN_SELL_CELL)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ShopComp:updateMainList()
|
|
||||||
end
|
|
||||||
|
|
||||||
function ShopComp:refresh()
|
function ShopComp:refresh()
|
||||||
if self.page == PAGE_DISCOUNT then
|
if self.page == PAGE_DISCOUNT then
|
||||||
self.mainNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS)
|
self.mainNode:setAnchoredPositionX(GConst.NOT_VISIBLE_POS)
|
||||||
|
|||||||
@ -22,6 +22,7 @@ UIManager.UI_PATH = {
|
|||||||
BATTLE_UI = "app/ui/battle/battle_ui",
|
BATTLE_UI = "app/ui/battle/battle_ui",
|
||||||
ROGUE_SKILL_UI = "app/ui/battle/battle_skill_select_ui",
|
ROGUE_SKILL_UI = "app/ui/battle/battle_skill_select_ui",
|
||||||
REWARD_BOX = "app/ui/tips/reward_box",
|
REWARD_BOX = "app/ui/tips/reward_box",
|
||||||
|
HERO_DETAIL_UI = "app/ui/hero/hero_detail_ui",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 动画类型
|
-- 动画类型
|
||||||
|
|||||||
@ -24,6 +24,7 @@ function PlayerData:init(data)
|
|||||||
self:resetOnCrossDay()
|
self:resetOnCrossDay()
|
||||||
self:markDirty()
|
self:markDirty()
|
||||||
end)
|
end)
|
||||||
|
self.createTime = basicInfo.create_at or 0 -- 创角时间
|
||||||
end
|
end
|
||||||
|
|
||||||
function PlayerData:resetOnCrossDay()
|
function PlayerData:resetOnCrossDay()
|
||||||
@ -135,4 +136,9 @@ function PlayerData:addPayment(rechargeId)
|
|||||||
self.data.payAmount = self.data.payAmount + cfg.price
|
self.data.payAmount = self.data.payAmount + cfg.price
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 获取创角时间
|
||||||
|
function PlayerData:getCreateTime()
|
||||||
|
return self.createTime
|
||||||
|
end
|
||||||
|
|
||||||
return PlayerData
|
return PlayerData
|
||||||
@ -393,7 +393,7 @@ end
|
|||||||
function ShopData:getActChapterStoreCanBuyActIds()
|
function ShopData:getActChapterStoreCanBuyActIds()
|
||||||
local list = {}
|
local list = {}
|
||||||
local curChapterId = DataManager.ChapterData:getMaxChapterId()
|
local curChapterId = DataManager.ChapterData:getMaxChapterId()
|
||||||
for id = curChapterId, 1, -1 do
|
for id = 1, curChapterId do
|
||||||
if not self:getActChapterStoreHasBuy(id) then
|
if not self:getActChapterStoreHasBuy(id) then
|
||||||
table.insert(list, self.actChapterStoreChapterId2IdMap[id])
|
table.insert(list, self.actChapterStoreChapterId2IdMap[id])
|
||||||
end
|
end
|
||||||
@ -421,6 +421,22 @@ function ShopData:getBeginnerGiftHasBuy()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function ShopData:getBeginnerGiftSideBarDurationTime()
|
||||||
|
return 3 * 24 * 3600 -- 暂无配置表 TODOJ
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 未购买且在开服的3天内
|
||||||
|
function ShopData:getBeginnerGiftShowSideBar()
|
||||||
|
return not self:getBeginnerGiftHasBuy() and self:getBeginnerGiftSideBarRemainTime() > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 展示在侧边栏的剩余时间
|
||||||
|
function ShopData:getBeginnerGiftSideBarRemainTime()
|
||||||
|
local createTime = DataManager.PlayerData:getCreateTime() // 1000
|
||||||
|
local durationTime = self:getBeginnerGiftSideBarDurationTime()
|
||||||
|
return createTime + durationTime - Time:getServerTime()
|
||||||
|
end
|
||||||
|
|
||||||
-- 新手礼包结束 ----------------------------------------------------------------------------------------------
|
-- 新手礼包结束 ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- 助力与金币礼包(act_gift) **********************************************************************************************
|
-- 助力与金币礼包(act_gift) **********************************************************************************************
|
||||||
@ -623,36 +639,69 @@ function ShopData:getGrowUpGifts()
|
|||||||
return self.growUpGifts
|
return self.growUpGifts
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- 目前允许显示的最多2个礼包
|
||||||
|
function ShopData:getMaxGrowUpGiftCount()
|
||||||
|
return 2
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShopData:getGrowUpGiftByActId(actId)
|
||||||
|
local list = self:getGrowUpGifts()
|
||||||
|
for _, gift in ipairs(list) do
|
||||||
|
if gift.current_grow_up_id == actId then
|
||||||
|
return gift
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- 获取目前时间有效的成长礼包
|
-- 获取目前时间有效的成长礼包
|
||||||
function ShopData:getValidGrowUpGifts()
|
function ShopData:getValidGrowUpGifts()
|
||||||
local list = {}
|
local list = {}
|
||||||
for index, gift in ipairs(self:getGrowUpGifts()) do
|
for index, gift in ipairs(self:getGrowUpGifts()) do
|
||||||
local cfgInfo = self:getActGrowUpGiftConfig()[gift.current_grow_up_id]
|
local cfgInfo = self:getActGrowUpGiftConfig()[gift.current_grow_up_id]
|
||||||
if cfgInfo then
|
if cfgInfo then
|
||||||
local cd = (cfgInfo.cd or 0) * 3600
|
local isValid = false
|
||||||
local durationTime = (cfgInfo.limit_time or 0) * 3600
|
local durationTime = (cfgInfo.limit_time or 0) * 3600
|
||||||
local triggerTime = gift.trigger_at // 1000
|
local triggerTime = gift.trigger_at // 1000
|
||||||
local maxDurationTime = triggerTime + durationTime
|
local maxDurationTime = triggerTime + durationTime
|
||||||
local maxEndTime = triggerTime + cd
|
local buyLimit = cfgInfo.limit or 0
|
||||||
|
|
||||||
-- 是否在有效范围内
|
-- 是否在有效范围内
|
||||||
local isInDurationTime = Time:getServerTime() < maxDurationTime
|
local isInDurationTime = Time:getServerTime() < maxDurationTime
|
||||||
if isInDurationTime then
|
if isInDurationTime then
|
||||||
-- 从通用act里找到这个礼包的最后购买时间 如果有且在这个范围内 则这个礼包已经被购买了
|
-- 从通用act里找到这个礼包 如果有该礼包且购买次数未达到上限,则有效;如果没有该礼包也有效
|
||||||
local hasBuy = false
|
|
||||||
local actGiftDetailData = self:getActGiftDetailData(PayManager.PURCHARSE_TYPE.GROW_UP_GIFT, gift.current_grow_up_id)
|
local actGiftDetailData = self:getActGiftDetailData(PayManager.PURCHARSE_TYPE.GROW_UP_GIFT, gift.current_grow_up_id)
|
||||||
|
|
||||||
if actGiftDetailData then
|
if actGiftDetailData then
|
||||||
|
local buyCount = actGiftDetailData.buy_count
|
||||||
local latestBuyTime = actGiftDetailData.latest_buy_at // 1000
|
local latestBuyTime = actGiftDetailData.latest_buy_at // 1000
|
||||||
if latestBuyTime > 0 and triggerTime < latestBuyTime and latestBuyTime < maxEndTime then
|
if buyLimit > 0 then
|
||||||
hasBuy = true
|
if buyCount < buyLimit then
|
||||||
|
isValid = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
isValid = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
isValid = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not hasBuy then
|
if isValid then
|
||||||
table.insert(list, gift)
|
table.insert(list, gift)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
-- 按照时间排序
|
||||||
|
table.sort(list, function(a, b)
|
||||||
|
return a.trigger_at < b.trigger_at
|
||||||
|
end)
|
||||||
|
-- 上限2位
|
||||||
|
local limitList = {}
|
||||||
|
for i = 1, self:getMaxGrowUpGiftCount() do
|
||||||
|
if list[i] then
|
||||||
|
table.insert(limitList, list[i])
|
||||||
end
|
end
|
||||||
return list
|
end
|
||||||
|
return limitList
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 触发了成长礼包
|
-- 触发了成长礼包
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user