diff --git a/lua/app/common/bi_report.lua b/lua/app/common/bi_report.lua index b0706759..d3923442 100644 --- a/lua/app/common/bi_report.lua +++ b/lua/app/common/bi_report.lua @@ -208,6 +208,7 @@ BIReport.ADS_CLICK_TYPE = { MALL_GOLD = "MallGold", MALL_TREASURE = "MallTreasure", MAIL = "Mail", + SUMMON_AD = "SummonAd", } BIReport.FIGHT_OPT_TYPE = { diff --git a/lua/app/config/summon.lua b/lua/app/config/summon.lua index 37a96e84..155cab9a 100644 --- a/lua/app/config/summon.lua +++ b/lua/app/config/summon.lua @@ -3,13 +3,15 @@ local summon = { ["item_cost"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=13, - ["id_for_nothing"]="Vws=", + ["id"]=5, + ["id_for_nothing"]="Uw==", ["num"]=1, ["num_for_nothing"]="Vw==" }, - ["ad_time"]=12, - ["free_time"]=23, + ["ad_num"]=1, + ["free_num"]=1, + ["ad_time"]=1, + ["free_time"]=1, ["summon"]={ { ["id"]=13001, @@ -125,8 +127,8 @@ local summon = { ["item_cost"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=14, - ["id_for_nothing"]="Vww=", + ["id"]=6, + ["id_for_nothing"]="UA==", ["num"]=1, ["num_for_nothing"]="Vw==" }, @@ -138,8 +140,10 @@ local summon = { ["num"]=200, ["num_for_nothing"]="VAhc" }, - ["ad_time"]=23, - ["free_time"]=47, + ["ad_num"]=1, + ["free_num"]=1, + ["ad_time"]=1, + ["free_time"]=1, ["summon"]={ { ["id"]=13001, @@ -312,8 +316,8 @@ local summon = { ["item_cost"]={ ["type"]=1, ["type_for_nothing"]="Vw==", - ["id"]=15, - ["id_for_nothing"]="Vw0=", + ["id"]=7, + ["id_for_nothing"]="UQ==", ["num"]=1, ["num_for_nothing"]="Vw==" }, diff --git a/lua/app/module/item/item_const.lua b/lua/app/module/item/item_const.lua index b643ca65..91789e97 100644 --- a/lua/app/module/item/item_const.lua +++ b/lua/app/module/item/item_const.lua @@ -3,7 +3,9 @@ local ItemConst = {} ItemConst.ITEM_ID_GOLD = 1 ItemConst.ITEM_ID_GEM = 2 ItemConst.ITEM_ID_VIT = 3 -ItemConst.ITEM_ID_BOUNTY_EXP = 7 +ItemConst.ITEM_ID_SUMMON_1 = 5 +ItemConst.ITEM_ID_SUMMON_2 = 6 +ItemConst.ITEM_ID_SUMMON_3 = 7 ItemConst.ITEM_ID_BOX_LV_1 = 8 ItemConst.ITEM_ID_BOX_LV_2 = 9 ItemConst.ITEM_ID_BOX_LV_3 = 10 diff --git a/lua/app/module/summon/summon_manager.lua b/lua/app/module/summon/summon_manager.lua index 546682e0..fd200a8c 100644 --- a/lua/app/module/summon/summon_manager.lua +++ b/lua/app/module/summon/summon_manager.lua @@ -32,10 +32,10 @@ end -- end --@region 协议 -function SummonManager:onForceSummonReq(count, isFree, summonType) +function SummonManager:onForceSummonReq(count, free, summonType) local args = {} args.times = count - args.free = isFree + args.free = free args.id = summonType self:sendMessage(ProtoMsgType.FromMsgEnum.SummonReq, args, {}, self.onForceSummonRsp, BIReport.ITEM_GET_TYPE.FORCE_SUMMON) end @@ -44,24 +44,23 @@ function SummonManager:onForceSummonRsp(result) if result.status ~= 0 then return end - local time_at = nil - if result.reqData.free then - time_at = Time:getServerTime() - end - DataManager.SummonData:updateSummonCount(result.reqData.id, result.reqData.times, time_at) + DataManager.SummonData:updateSummonCount(result.reqData.id, result.reqData.times, result.reqData.free) local newForce = {} - -- for _, reward in pairs(result.rewards) do - -- local isNew = DataManager.ForceData:getForceIsNew(reward.item.id) - -- if isNew then - -- table.insert(newForce, reward.item.id) - -- DataManager.ForceData:setForceIsNew(reward.item.id, false) - -- end - -- if DataManager.ForceData:getForceQlt(reward.item.id) == 4 then - -- DataManager.SummonData:setSummonTrigger(true) - -- else - -- DataManager.SummonData:setSummonTrigger(false) - -- end - -- end + local guarantee1 = DataManager.SummonData:getSummonWishGuarantee1(result.reqData.id) + for _, reward in pairs(result.rewards) do + -- local isNew = DataManager.ForceData:getForceIsNew(reward.item.id) + -- if isNew then + -- table.insert(newForce, reward.item.id) + -- DataManager.ForceData:setForceIsNew(reward.item.id, false) + -- end + if guarantee1 then + if DataManager.HeroData:getHeroQlt(reward.item.id) == 4 then + DataManager.SummonData:setSummonTrigger(result.reqData.id, true) + else + DataManager.SummonData:setSummonTrigger(result.reqData.id, false) + end + end + end EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON, result, newForce) -- BIReport:postForceSummon(result.reqData.free, result.reqData.times, result.rewards, result.costs) diff --git a/lua/app/ui/summon/summon_main_ui.lua b/lua/app/ui/summon/summon_main_ui.lua index 88c107fb..2e72b256 100755 --- a/lua/app/ui/summon/summon_main_ui.lua +++ b/lua/app/ui/summon/summon_main_ui.lua @@ -18,7 +18,7 @@ function SummonMainUI:getPrefabPath() return "assets/prefabs/ui/summon/summon_main_ui.prefab" end -function SummonMainUI:currencyParams() +function SummonMainUI:getCurrencyParams() local ItemConst = require "app/module/item/item_const" local params = {} params.showType = GConst.CURRENCY_TYPE.HORIZONTAL @@ -26,16 +26,16 @@ function SummonMainUI:currencyParams() params.itemIds = { ItemConst.ITEM_ID_GOLD, ItemConst.ITEM_ID_GEM, - ItemConst.ITEM_ID_QLT_5_FRAGMENT, + ItemConst.ITEM_ID_SUMMON_1, } else params.itemIds = { ItemConst.ITEM_ID_GOLD, ItemConst.ITEM_ID_GEM, - ItemConst.SUMMON_ACT_STONE, + ItemConst.ITEM_ID_SUMMON_2, } end - return params, true + return params end function SummonMainUI:onClose() @@ -45,7 +45,7 @@ function SummonMainUI:onClose() end self._bgVfxMap = nil end - EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_POP) + -- EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_POP) end function SummonMainUI:onLoadRootComplete() @@ -54,6 +54,9 @@ function SummonMainUI:onLoadRootComplete() self:closeUI() end) self.btnSummonFree = uiMap["summon_main_ui.node.btn_summon_free"] + self.btnSummonFreeTx = uiMap["summon_main_ui.node.btn_summon_free.text_free"] + self.btnSummonAd = uiMap["summon_main_ui.node.btn_summon_ad"] + self.btnSummonAdTx = uiMap["summon_main_ui.node.btn_summon_ad.desc_tx"] --两个抽奖按钮 self.btnSummonOne = uiMap["summon_main_ui.node.btn_summon_one"] self.txSummonOneName = uiMap["summon_main_ui.node.btn_summon_one.text"] @@ -68,6 +71,7 @@ function SummonMainUI:onLoadRootComplete() self.txFreeTime = uiMap["summon_main_ui.node.tx_free_time"] self.btnWish = uiMap["summon_main_ui.node.btn_wish"] --心愿 + self.btnWishTx = uiMap["summon_main_ui.node.btn_wish.unlock.tx_guarantee"] --心愿 -- self.toggleJump = uiMap["summon_main_ui.jump_tween"]:getComponent(GConst.TYPEOF_UNITY_CLASS.UI_TOGGLE) -- self.isJumpTween = self.toggleJump.isOn @@ -93,9 +97,14 @@ function SummonMainUI:onLoadRootComplete() self.btnSummonTen:addClickListener(function() self:onSummon(10) end) + self.btnSummonAd:addClickListener(function() + SDKManager:showFullScreenAds(BIReport.ADS_CLICK_TYPE.SUMMON_AD, function() + self:onSummon(1, true) + end) + end) uiMap["summon_main_ui.node.btn_info"]:addClickListener(function() - ModuleManager.SummonManager:showSummonOddsUI() + ModuleManager.SummonManager:showSummonOddsUI(self.page) end) self.txTitle = uiMap["summon_main_ui.node.tx_title"] @@ -103,7 +112,7 @@ function SummonMainUI:onLoadRootComplete() uiMap["summon_main_ui.node.btn_summon_one.text_one"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_ONE)) uiMap["summon_main_ui.node.btn_summon_ten.text_ten"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_TEN)) uiMap["summon_main_ui.node.btn_summon_free.text_free"]:setText(I18N:getGlobalText(I18N.GlobalConst.FREE_THIS_TIME_DESC)) - uiMap["summon_main_ui.node.btn_summon_free.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_DESC_22)) + uiMap["summon_main_ui.node.btn_summon_ad.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_DESC_22)) uiMap["summon_main_ui.node.btn_info.desc_tx"]:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_FORCE_3)) self.descBg = uiMap["summon_main_ui.node.desc_bg"] self.descTx = uiMap["summon_main_ui.node.desc_bg.desc_tx"] @@ -166,7 +175,7 @@ function SummonMainUI:onLoadRootComplete() self.btnWish:addClickListener(function() if self.isUnlock then local wishHeroId = DataManager.SummonData:getSummonWishHeroId(self.page) - local wishGuarantee = DataManager.SummonData:getSummonWishGuarantee(self.page) + local wishGuarantee = DataManager.SummonData:getSummonWishGuarantee2(self.page) local wishCount = DataManager.SummonData:getSummonWishCount(self.page) if wishCount >= wishGuarantee and wishHeroId ~= 0 then --发送领取奖励的协议 @@ -203,6 +212,8 @@ function SummonMainUI:updateTime() if not self.isFree then self.remain_time = Time:getTodaySurplusTime() self.txFreeTime:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_FREE_TIME, Time:formatNumTime(self.remain_time))) + else + self.txFreeTime:setText("") end end @@ -212,6 +223,7 @@ function SummonMainUI:onRefresh() self:refreshWishBtn() -- self:refreshBtnRedPoint() self:refreshPageBtn() + self:updateTime() end function SummonMainUI:refreshPageBtn() @@ -254,61 +266,52 @@ end --刷新抽奖按钮 function SummonMainUI:refreshSummonBtn() - local isFree = DataManager.SummonData:hasSummonFree(self.page) - self.btnSummonFree:setActive(isFree) - self.btnSummonOne:setActive(not isFree) + local freeCount = DataManager.SummonData:getSummonFreeCount(self.page) + local adCount = DataManager.SummonData:getSummonAdCount(self.page) + self.btnSummonAd:setActive(adCount > 0) + self.btnSummonFree:setActive(freeCount > 0) + self.btnSummonOne:setActive(freeCount <= 0) -- self.txFreeTime:setActive(not isFree and not DataManager.SummonData:getIsActivity()) local itemCost = DataManager.SummonData:getSummonItemCost(self.page) local costId = itemCost.id - local costNum = itemCost.num + -- local costNum = itemCost.num local hadNum = DataManager.BagData.ItemData:getItemNumById(costId) - local obj = DataManager.BagData.ItemData:getItemById(costId) - if hadNum >= 1 then - self.txNumOne:setText(1) - self.btnSummonOne:addRedPoint(124, 33, 1) - self.imgSummonOneIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) - else - self.btnSummonOne:removeRedPoint() - -- if DataManager.SummonData:getIsActivity() then - -- --是活动 - -- self.txNumOne:setText("1") - -- self.imgSummonOneIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) - -- else + -- local obj = DataManager.BagData.ItemData:getItemById(costId) + if freeCount <= 0 then + if hadNum >= 1 then + self.txNumOne:setText(1) + self.btnSummonOne:addRedPoint(124, 32, 0.6) + self.imgSummonOneIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) + else + self.btnSummonOne:removeRedPoint() local cost = DataManager.SummonData:getSummonGemCost(self.page) if cost and hadNum == 0 and GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, cost.num, false) then self.txNumOne:setText(cost.num) self.imgSummonOneIcon:setSprite(ModuleManager.ItemManager:getItemIcon(GConst.ItemConst.ITEM_ID_GEM)) - obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM) + -- obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM) else self.txNumOne:setText("1") self.imgSummonOneIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) end - -- end + end end - obj = DataManager.BagData.ItemData:getItemById(costId) if hadNum >= 10 then self.txNumTen:setText(10) self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) - self.btnSummonTen:addRedPoint(124, 33, 1) + self.btnSummonTen:addRedPoint(124, 32, 0.6) else self.btnSummonTen:removeRedPoint() - -- if DataManager.SummonData:getIsActivity() then - -- --是活动 - -- self.txNumTen:setText("10") - -- self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) - -- else - local cost = DataManager.SummonData:getSummonGemCost(self.page) - if cost and hadNum == 0 and GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, cost.num * 10, false) then - self.txNumTen:setText(cost.num * 10) - self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(GConst.ItemConst.ITEM_ID_GEM)) - obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM) - else - self.txNumTen:setText("10") - self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) - end - -- end + local cost = DataManager.SummonData:getSummonGemCost(self.page) + if cost and hadNum == 0 and GFunc.checkCost(GConst.ItemConst.ITEM_ID_GEM, cost.num * 10, false) then + self.txNumTen:setText(cost.num * 10) + self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(GConst.ItemConst.ITEM_ID_GEM)) + -- obj = DataManager.BagData.ItemData:getItemById(GConst.ItemConst.ITEM_ID_GEM) + else + self.txNumTen:setText("10") + self.imgSummonTenIcon:setSprite(ModuleManager.ItemManager:getItemIcon(costId)) + end end end @@ -331,56 +334,10 @@ function SummonMainUI:refreshWishBtn() local summonCount = DataManager.SummonData:getSummonCount(self.page) local unlockCount = DataManager.SummonData:getSummonWishUnlock(self.page) self.isUnlock = summonCount >= unlockCount - -- self.wishUnlock:setActive(self.isUnlock) - -- self.wishLock:setActive(not self.isUnlock) - -- if self.isUnlock then - -- local wishHeroId = DataManager.SummonData:getSummonWishHeroId() - -- if wishHeroId ~= 0 then - -- local modelId = DataManager.ForceData:getForceModelId(wishHeroId) - -- local qlt = DataManager.ForceData:getForceQlt(wishHeroId) - -- self.wishQlt:setActive(true) - -- self.wishQlt:setSprite(GConst.ATLAS_PATH.ICON_ITEM, DataManager.ForceData:getForceQltItem(qlt)) - -- if self.wishModelId ~= modelId then - -- self.wishModelId = modelId - -- end - -- if self.wishModelId ~= nil then - -- self.imgWishIcon:setActive(true) - -- self.imgWishIcon:setSprite(GConst.ATLAS_PATH.ICON_ITEM, DataManager.ForceData:getForceFightIcon(wishHeroId)) - -- else - -- self.imgWishIcon:setActive(false) - -- end - -- isAddRedPoint = false - -- else - -- self.wishQlt:setActive(false) - -- self.imgWishIcon:setActive(false) - -- isAddRedPoint = true - -- end - -- local wishGuarantee = DataManager.SummonData:getSummonWishGuarantee() - -- local wishCount = DataManager.SummonData:getSummonWishCount() - -- if wishCount >= wishGuarantee then - -- self.btnWish:addRedPoint(124, 33, 1) - -- self.txGuarantee:setText(I18N:getGlobalText(I18N.GlobalConst.SUMMON_GET)) - -- isAddRedPoint = true - -- self.wishMask:setActive(false) - -- else - -- if wishHeroId ~= 0 then - -- self.wishMask:setActive(true) - -- else - -- self.wishMask:setActive(false) - -- end - -- self.txGuarantee:setText(wishCount .. "/" .. wishGuarantee) - -- self.wishMaskSlider.fillAmount = 1 - (wishCount / wishGuarantee) - -- end - -- else - -- isAddRedPoint = false - -- self.btnWish:removeRedPoint() - -- self.txUnlock:setText(summonCount .. "/" .. unlockCount .. I18N:getGlobalText(I18N.GlobalConst.MAGIC_BOOK_DESC_4)) - -- end - -- if isAddRedPoint then - -- self.btnWish:addRedPoint(33, 33, 1) - -- else - -- self.btnWish:removeRedPoint() - -- end + -- self.txUnlock:setText(summonCount .. "/" .. unlockCount .. I18N:getGlobalText(I18N.GlobalConst.MAGIC_BOOK_DESC_4)) + local wishCount = DataManager.SummonData:getSummonWishCount(self.page) + local needCount = DataManager.SummonData:getSummonWishGuarantee2(self.page) + self.btnWishTx:setText(wishCount .. "/" .. needCount) end --检查单抽红点 @@ -392,12 +349,16 @@ function SummonMainUI:refreshBtnRedPoint() end end -function SummonMainUI:onSummon(count) - local isFree = DataManager.SummonData:hasSummonFree(self.page) - if isFree and count == 1 then +function SummonMainUI:onSummon(count, isAd) + if isAd then AudioManager:playEffect(AudioManager.EFFECT_ID.UI_SUMMON_START) - ModuleManager.SummonManager:onForceSummonReq(count, true) + ModuleManager.SummonManager:onForceSummonReq(count, 1, self.page) else + local freeCount = DataManager.SummonData:getSummonFreeCount(self.page) + if freeCount > 0 then + ModuleManager.SummonManager:onForceSummonReq(count, 2, self.page) + return + end local costs = DataManager.SummonData:getSummonCosts(self.page, count) local hasGemCost = false for i, cost in ipairs(costs) do @@ -422,7 +383,7 @@ function SummonMainUI:onSummon(count) end end AudioManager:playEffect(AudioManager.EFFECT_ID.UI_SUMMON_START) - ModuleManager.SummonManager:onForceSummonReq(count, false, self.page) + ModuleManager.SummonManager:onForceSummonReq(count, 0, self.page) end GFunc.showMessageBox(params) return @@ -434,7 +395,7 @@ function SummonMainUI:onSummon(count) end end AudioManager:playEffect(AudioManager.EFFECT_ID.UI_SUMMON_START) - ModuleManager.SummonManager:onForceSummonReq(count, false, self.page) + ModuleManager.SummonManager:onForceSummonReq(count, 0, self.page) end end diff --git a/lua/app/ui/summon/summon_odds_ui.lua b/lua/app/ui/summon/summon_odds_ui.lua index 25076380..5a125b61 100755 --- a/lua/app/ui/summon/summon_odds_ui.lua +++ b/lua/app/ui/summon/summon_odds_ui.lua @@ -61,11 +61,11 @@ function SummonOddsUI:onRefresh() -- local txName = uiMap["title.bg.tx_name"] -- bg:setSprite(GConst.ATLAS_PATH.UI_SUMMON, "summon_bg_" .. data[1]) if i == 1 then - descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_3)) + descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_3) .. data[2] / 100 .. "%") elseif i == 2 then - descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_4)) + descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_4) .. data[2] / 100 .. "%") else - descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_5)) + descTx:setText(I18N:getGlobalText(I18N.GlobalConst.HERO_CARD_DESC_QLT_5) .. data[2] / 100 .. "%") end -- descTx:setText(I18N:getGlobalText(I18N.GlobalConst.BATTLE_GET_DESC_3, data[2] / 100)) local layoutObj = CS.UnityEngine.Object.Instantiate(self.layout:getGameObject()) diff --git a/lua/app/ui/summon/summon_reward_ui.lua b/lua/app/ui/summon/summon_reward_ui.lua index 4db28b28..b955f92f 100755 --- a/lua/app/ui/summon/summon_reward_ui.lua +++ b/lua/app/ui/summon/summon_reward_ui.lua @@ -95,7 +95,7 @@ function SummonRewardUI:refreshSummonBtn() local cost = DataManager.SummonData:getSummonGemCost(self.page) if count >= 1 then self.txNumOne:setText(1) - self.btnSummonOne:addRedPoint(124, 33, 1) + self.btnSummonOne:addRedPoint(100, 30, 0.6) else self.btnSummonOne:removeRedPoint() if cost then @@ -116,7 +116,7 @@ function SummonRewardUI:refreshSummonBtn() obj = DataManager.BagData.ItemData:getItemById(costId) if count >= 10 then self.txNumTen:setText(10) - self.btnSummonTen:addRedPoint(124, 33, 1) + self.btnSummonTen:addRedPoint(100, 30, 0.6) else self.btnSummonTen:removeRedPoint() if cost then diff --git a/lua/app/userdata/bag/item_data.lua b/lua/app/userdata/bag/item_data.lua index 878bcc5e..5be024a5 100644 --- a/lua/app/userdata/bag/item_data.lua +++ b/lua/app/userdata/bag/item_data.lua @@ -221,8 +221,8 @@ function ItemData:_addItemNumById(id, num) self:resetItemRecoveryTime(ItemConst.ITEM_ID_VIT) end end - elseif id == ItemConst.ITEM_ID_BOUNTY_EXP then - DataManager.BountyData:addExp(num) + -- elseif id == ItemConst.ITEM_ID_BOUNTY_EXP then + -- DataManager.BountyData:addExp(num) elseif id == ItemConst.ITEM_ID_ARENA_BOUNTY_EXP then DataManager.ArenaBountyData:addExp(num) elseif id == ItemConst.ITEM_ID_EXP then diff --git a/lua/app/userdata/summon/summon_data.lua b/lua/app/userdata/summon/summon_data.lua index cfc43a4a..43409805 100644 --- a/lua/app/userdata/summon/summon_data.lua +++ b/lua/app/userdata/summon/summon_data.lua @@ -38,17 +38,19 @@ function SummonData:initData(data) self.summonDataMap = {} for k,v in pairs(data) do self.summonDataMap[k] = {} - self.summonDataMap[k].freeAt = v.free_at + self.summonDataMap[k].freeCount = v.free_count + self.summonDataMap[k].adCount = v.ad_count self.summonDataMap[k].statCount = v.stat_count self.summonDataMap[k].triggerCount = v.trigger_count self.summonDataMap[k].wishId = v.wish_id self.summonDataMap[k].wishCount = v.wish_count end - -- int64 free_at = 1; // 上次免费抽取时间 - -- int64 stat_count = 2; // 总抽取次数 - -- int64 trigger_count = 3; // 保底累计次数 - -- int32 wish_id = 4; // 心愿英雄 ID - -- int64 wish_count = 5; // 心愿累计次数 + -- int64 free_count = 1; // 今日免费次数 + -- int64 ad_count = 2; // 今日广告免费次数 + -- int64 stat_count = 3; // 总抽取次数 + -- int64 trigger_count = 4; // 保底累计次数 + -- int32 wish_id = 5; // 心愿英雄 ID + -- int64 wish_count = 6; // 心愿累计次数 end function SummonData:getIsOpen(showToast) @@ -61,16 +63,15 @@ end --@region 抽奖数据 --是否有免费抽奖 function SummonData:hasSummonFree(summonType) - local freeCd = self:getSummonFreeCd(summonType) - if freeCd == nil then - return false - end - local freeTime = self:getSummonFreeAT(summonType) - if freeTime == nil then + local freeCount = self:getSummonFreeCount(summonType) + if freeCount > 0 then return true end - local nowTime = Time:getServerTime() - return nowTime > freeTime + freeCd * 3600 + local adCount = self:getSummonAdCount(summonType) + if adCount > 0 then + return true + end + return false end -- 心愿次数 @@ -86,13 +87,27 @@ function SummonData:getSummonWishHeroId(summonType) if self.summonDataMap[summonType] then return self.summonDataMap[summonType].wishId end + return 0 end --- 获取上一次抽奖的时间 -function SummonData:getSummonFreeAT(summonType) +-- 获取免费抽取次数 +function SummonData:getSummonFreeCount(summonType) + local freeCount = self:getSummonFreeNum(summonType) + local useCount = 0 if self.summonDataMap[summonType] then - return self.summonDataMap[summonType].freeAt + useCount = self.summonDataMap[summonType].freeCount or 0 end + return freeCount - useCount +end + +-- 获取免费广告抽取次数 +function SummonData:getSummonAdCount(summonType) + local freeCount = self:getSummonAdNum(summonType) + local useCount = 0 + if self.summonDataMap[summonType] then + useCount = self.summonDataMap[summonType].adCount or 0 + end + return freeCount - useCount end -- 保底累计次数 @@ -130,11 +145,8 @@ function SummonData:summonWishClaim(summonType) end -- 刷新抽奖次数 -function SummonData:updateSummonCount(summonType, times, at) +function SummonData:updateSummonCount(summonType, times, free) if self.summonDataMap[summonType] then - if at ~= nil then - self.summonDataMap[summonType].freeAt = at - end local unlockTimes = self:getSummonWishUnlock(summonType) if unlockTimes and self.summonDataMap[summonType].statCount + times >= unlockTimes then if self.summonDataMap[summonType].statCount < unlockTimes then @@ -145,7 +157,13 @@ function SummonData:updateSummonCount(summonType, times, at) end end self.summonDataMap[summonType].statCount = self.summonDataMap[summonType].statCount + times + if free and free == 1 then + self.summonDataMap[summonType].adCount = self.summonDataMap[summonType].adCount + 1 + elseif free and free == 2 then + self.summonDataMap[summonType].freeCount = self.summonDataMap[summonType].freeCount + 1 + end end + self:setDirty() end function SummonData:setSummonTrigger(summonType, isReset) @@ -163,37 +181,38 @@ end --@region 红点 function SummonData:hasSummonCostRedPoint(count) - if count then - local itemCost = self:getSummonItemCost() - local costId = GFunc.getRewardId(itemCost) - local costNum = GFunc.getRewardNum(itemCost) - if GFunc.checkCost(costId, costNum * count, false) then - return true - end - local actId = self:getSummonOpenActivityId() - if actId then - local itemCost = self:getSummonItemCost(actId) - if itemCost then - local costId = GFunc.getRewardId(itemCost) - local costNum = GFunc.getRewardNum(itemCost) - if GFunc.checkCost(costId, costNum * count, false) then - return true - end - end - end - return false - else - if self:hasSummonCostRedPoint(1) then - return true - end - if self:hasSummonCostRedPoint(10) then - return true - end - if self:hasSummonFree() then - return true - end - end - return false + -- if count then + -- local itemCost = self:getSummonItemCost() + -- local costId = GFunc.getRewardId(itemCost) + -- local costNum = GFunc.getRewardNum(itemCost) + -- if GFunc.checkCost(costId, costNum * count, false) then + -- return true + -- end + -- local actId = self:getSummonOpenActivityId() + -- if actId then + -- local itemCost = self:getSummonItemCost(actId) + -- if itemCost then + -- local costId = GFunc.getRewardId(itemCost) + -- local costNum = GFunc.getRewardNum(itemCost) + -- if GFunc.checkCost(costId, costNum * count, false) then + -- return true + -- end + -- end + -- end + -- return false + -- else + -- if self:hasSummonCostRedPoint(1) then + -- return true + -- end + -- if self:hasSummonCostRedPoint(10) then + -- return true + -- end + -- if self:hasSummonFree() then + -- return true + -- end + -- end + -- return false + return self:hasSummonFree() end --@endregion @@ -270,12 +289,13 @@ function SummonData:getSummonWishConfig(summonType) end -- 心愿保底次数 -function SummonData:getSummonWishGuarantee(summonType) +function SummonData:getSummonWishGuarantee2(summonType) return SummonCfg[summonType].guarantee2 end -function SummonData:getSummonFreeCd(summonType) - return SummonCfg[summonType].ad_time +-- 小保底次数 +function SummonData:getSummonWishGuarantee1(summonType) + return SummonCfg[summonType].guarantee1 end function SummonData:getSummonFreeCd(summonType) @@ -285,6 +305,14 @@ end function SummonData:getSummonWeight(summonType) return SummonCfg[summonType].summon end + +function SummonData:getSummonAdNum(summonType) + return SummonCfg[summonType].ad_num +end + +function SummonData:getSummonFreeNum(summonType) + return SummonCfg[summonType].free_num +end --@endregion return SummonData \ No newline at end of file