From b454725afc7b8d10c46cceaa346eb09980a3508f Mon Sep 17 00:00:00 2001 From: zqj <582132116@qq.com> Date: Thu, 2 Sep 2021 11:41:27 +0800 Subject: [PATCH] feat: 英雄精进触发礼包, 修复月卡购买的一些bug --- src/GlobalVar.lua | 1 + src/actions/HeroAction.lua | 2 +- src/models/RoleTask.lua | 1 + src/models/Store.lua | 23 ++++++++++++----------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 15667a2..d635562 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -389,6 +389,7 @@ TriggerEventType = { RuneUp = 12, -- 循环强化符文 CostDiamond = 13, -- 循环消耗钻石 BuyLimitPack = 14, --购买指定id礼包 触发 + HeroTalent = 15, --英雄精进 触发礼包 } DrawCardType = { diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index ee00e8d..f31cfcb 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -212,7 +212,7 @@ function _M.talentRpc(agent, data) talent = talent:setv(1, curLevel + 1) end curStage = talent:getv(0, 1) - role:checkTaskEnter("HeroTalent", {heroType = hero:getProperty("type"), alv = curStage}) + role:checkTaskEnter("HeroTalent", {heroType = hero:getProperty("type"), alv = curStage, count = 1}) hero:updateProperty({field = "talent", value = talent}) diff --git a/src/models/RoleTask.lua b/src/models/RoleTask.lua index 147f3ef..ab5bba3 100644 --- a/src/models/RoleTask.lua +++ b/src/models/RoleTask.lua @@ -282,6 +282,7 @@ local StoreListener = { [TaskType.RuneUp] = {{TriggerEventType.RuneUp, 1}}, [TaskType.CostDiamond] = {{TriggerEventType.CostDiamond, f("count")}}, [TaskType.BuyLimitPack] = {{TriggerEventType.BuyLimitPack, f("id")}}, + [TaskType.HeroTalent] = {{TriggerEventType.HeroTalent, f("count")}}, } } diff --git a/src/models/Store.lua b/src/models/Store.lua index a49a978..ccf45e8 100644 --- a/src/models/Store.lua +++ b/src/models/Store.lua @@ -96,8 +96,15 @@ function Store:refreshWeekData(notify) self:flushWeekShop() end + +local function getSMonthCardPeriods(self, id) + local smonthCards = self:getProperty("smonthCards") or {} + local smonthCard = smonthCards[id] or {} + return smonthCard["periods"] or 0 +end + local function getCardItemDailyReward(self, id) - local cur_ex = self:getSMonthCardPeriods(self, id) + local cur_ex = getSMonthCardPeriods(self, id) if cur_ex == 0 then return nil, nil end cur_ex = cur_ex - 1 @@ -293,8 +300,8 @@ end function Store:getSMonthCardDailyReward(id) if not id then return nil end - local before_ex = self:getSMonthCardPeriods(self, id) - local reward, change, cur_ex= getCardItemDailyReward(id) + local before_ex = getSMonthCardPeriods(self, id) + local reward, change, cur_ex= getCardItemDailyReward(self, id) --今日特刊奖励已经领取 self:updateProperty({field = "smonthCardReceive", value = 1}) @@ -330,14 +337,8 @@ function Store:firstBuySMonthCard(id) return nil end -function Store:getSMonthCardPeriods(id) - local smonthCards = self:getProperty("smonthCards") or {} - local smonthCard = smonthCards[id] or {} - return smonthCard["periods"] or 0 -end - function Store:isSMonthCardExpired(id) - return self:getSMonthCardPeriods(id) == 0 + return getSMonthCardPeriods(self, id) == 0 end function Store:buySMonthCardLimit(buylimit) @@ -627,7 +628,7 @@ function Store:OnTriggerLimitTimePack(eventType, param) if not config then return end -- 每日循环弹窗 - local typeMap = {[TriggerEventType.DrawHero] = 1, [TriggerEventType.FoodSell] = 1, [TriggerEventType.RuneUp] = 1, [TriggerEventType.CostDiamond] = 1} + local typeMap = {[TriggerEventType.DrawHero] = 1, [TriggerEventType.FoodSell] = 1, [TriggerEventType.RuneUp] = 1, [TriggerEventType.CostDiamond] = 1, [TriggerEventType.HeroTalent] = 1} if typeMap[eventType] then local dayInfo = self:getProperty("dayLimitInfo") local info = dayInfo[eventType] or {} -- libgit2 0.21.2