local SummonManager = class("SummonManager", BaseModule) BIReport.EVENT_NAME_ACT_SUMMON_LOGIN = "client_act_summon_login" BIReport.EVENT_NAME_ACT_SUMMON_UPGRADE = "client_act_summon_upgrade" BIReport.EVENT_NAME_ACT_SUMMON_GEM = "client_act_summon_gem" BIReport.EVENT_NAME_ACT_SUMMON_RECHARGE = "client_act_summon_recharge" -- function SummonManager:showPopUI(params) -- UIManager:showUI("app/ui/summon/summon_act_pop", params) -- end -- function SummonManager:showSummonFundUI(showPage) -- UIManager:showUI("app/ui/summon/summon_act_ui",{ showPage = showPage }) -- end function SummonManager:showSummonMainUI(summonId) UIManager:showUI("app/ui/summon/summon_main_ui", {summonId = summonId}) end function SummonManager:showSummonWishUI(summonId) UIManager:showUI("app/ui/summon/summon_wish_ui", {summonId = summonId}) end function SummonManager:showSummonRewardUI(params) UIManager:showUI("app/ui/summon/summon_reward_ui", params) end function SummonManager:showSummonOddsUI(summonId) UIManager:showUI("app/ui/summon/summon_odds_ui", {summonId = summonId}) end -- function SummonManager:showSummonResultUI(params) -- UIManager:showUI("app/ui/summon/summon_result_ui", params) -- end --@region 协议 function SummonManager:onForceSummonReq(count, isFree, summonType) local args = {} args.times = count args.free = isFree args.id = summonType self:sendMessage(ProtoMsgType.FromMsgEnum.SummonReq, args, {}, self.onForceSummonRsp, BIReport.ITEM_GET_TYPE.FORCE_SUMMON) end 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) 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 EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON, result, newForce) -- BIReport:postForceSummon(result.reqData.free, result.reqData.times, result.rewards, result.costs) -- local params = { -- times = result.reqData.times, -- rewards = result.rewards, -- } -- 累计召唤英雄x次 -- ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.SUMMON_NUM, params) -- if result.first then -- DataManager.GameSettingData:showRateUIByForceSummon() -- end end --@endregion function SummonManager:onSummonWishSetReq(summonType, heroId) self:sendMessage(ProtoMsgType.FromMsgEnum.SummonWishSetReq, {id = summonType, hero = heroId}, {}, self.onSummonWishSetRsp, BIReport.ITEM_GET_TYPE.FORCE_SUMMON_WISH_HREO_ID) end function SummonManager:onSummonWishSetRsp(result) if result.err_code ~= GConst.ERROR_STR.SUCCESS then return end DataManager.SummonData:updateSummonWishHeroId(result.reqData.id, result.reqData.hero) EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON_WISH_HERO_ID) end function SummonManager:onSummonWishClaimReq(summonType) self:sendMessage(ProtoMsgType.FromMsgEnum.SummonWishClaimReq, {id = summonType}, {}, self.onSummonWishClaimRsp, BIReport.ITEM_GET_TYPE.FORCE_SUMMON_WISH_HREO_ID) end function SummonManager:onSummonWishClaimRsp(result) if result.err_code ~= GConst.ERROR_STR.SUCCESS then return end DataManager.SummonData:summonWishClaim() -- 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 -- end -- EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON_WISH_CLAIM, result,newForce) end --region卡池活动 function SummonManager:onBuyBoundyGift(id) PayManager:purchasePackage(id, PayManager.PURCHARSE_TYPE.ACT_GIFT, true) end --1=签到, 2=英雄战令1, 3=英雄战令2 --act_bounty表ID, 0表示一键领取 --grade 领取的档位 0.免费档 1.付费档 function SummonManager:activityHeroBountyClaimedReq(type, lv, grade) self:sendMessage(ProtoMsgType.FromMsgEnum.ActivityHeroBountyClaimedReq, { type = type, lv = lv, grade = grade }, self.activityHeroBountyClaimedRsp, GConst.SummonConst.ACT_COMP_GER_REWARD_BI[type]) end function SummonManager:activityHeroBountyClaimedRsp(result) if result.err_code ~= GConst.ERROR_STR.SUCCESS then return end GFunc.showRewardBox(result.rewards) local activityId = DataManager.SummonActData:getActId() if result.reqData.type == 1 then local curDay = DataManager.SummonActData.SummonActLoginData:getCurLv() local maxIndex, minIndex = DataManager.SummonActData.SummonActLoginData:getMinAndMaxUnclaimedRewardId() DataManager.SummonActData.SummonActLoginData:initActivityInfo(result.info) BIReport:postActSummonLogin(activityId,minIndex, maxIndex, curDay, result.rewards) elseif result.reqData.type == 2 then local heroId = DataManager.SummonActData.SummonActUpgradeData:getHeroId(1) local heroLv = DataManager.ForceData:getForceLevel(heroId) local maxIndex, minIndex = DataManager.SummonActData.SummonActUpgradeData:getMinAndMaxUnclaimedRewardId(1) DataManager.SummonActUpgradeData:initActivityInfo(result.info) BIReport:postActSummonUpgrade("HeroPage_1", activityId,minIndex, maxIndex, heroId, heroLv,result.rewards) elseif result.reqData.type == 3 then local heroId = DataManager.SummonActData.SummonActUpgradeData:getHeroId(2) local heroLv = DataManager.ForceData:getForceLevel(heroId) local maxIndex, minIndex = DataManager.SummonActData.SummonActUpgradeData:getMinAndMaxUnclaimedRewardId(2) DataManager.SummonActData.SummonActUpgradeData:initActivityInfo(result.info) BIReport:postActSummonUpgrade("HeroPage_2", activityId,minIndex, maxIndex, heroId, heroLv,result.rewards) end end function BIReport:postActSummonLogin(activityId, minId, maxId, cur, rewards) local args = { opt_type = "Reward", act_id = activityId, max_id = maxId, min_id = minId, cur_day = cur, reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, } self:report(BIReport.EVENT_NAME_ACT_SUMMON_LOGIN, args) end function BIReport:postActSummonUpgrade(heroPage, activityId, minId, maxId, heroId, HeroLv, rewards) local args = { opt_type = "Reward", act_id = activityId, max_id = maxId, min_id = minId, hero_id = heroId, hero_level = HeroLv, hero_page = heroPage, reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, } self:report(BIReport.EVENT_NAME_ACT_SUMMON_UPGRADE, args) end function BIReport:postActSummonGem(activityId, minId, maxId, cur, rewards) local args = { opt_type = "Reward", act_id = activityId, max_id = maxId, min_id = minId, cur_day = cur, reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, } self:report(BIReport.EVENT_NAME_ACT_SUMMON_LOGIN, args) end function BIReport:postActSummonRecharge(activityId, minId, maxId, cur, rewards) local args = { opt_type = "Reward", act_id = activityId, max_id = maxId, min_id = minId, cur_day = cur, reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, } self:report(BIReport.EVENT_NAME_ACT_SUMMON_LOGIN, args) end --endregion -- region 任务 function SummonManager:reqTaskReward(actId, taskId) self:sendMessage(ProtoMsgType.FromMsgEnum.ActivityTaskClaimReq, {activity_id = actId, task_id = taskId}, self.rspTaskReward, BIReport.ITEM_GET_TYPE.ACT_TASK_REWARD) end function SummonManager:rspTaskReward(result) if result.err_code ~= GConst.ERROR_STR.SUCCESS then return end GFunc.showRewardBox(result.rewards) DataManager.ActTaskData:onTaskClaimed(result.reqData.activity_id, result.reqData.task_id) BIReport:postActTask(result.reqData.activity_id, result.reqData.task_id, result.rewards) end function BIReport:postActTask(actId, taskId, rewards) local args = { act_id = actId, task_id = taskId, reward_str = rewards and GFunc.getRewardsStr(rewards) or nil, } self:report(BIReport.EVENT_NAME_ACT_TASK, args) end --@endregion return SummonManager