233 lines
8.3 KiB
Lua
233 lines
8.3 KiB
Lua
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, free, summonType)
|
|
local args = {}
|
|
args.times = count
|
|
args.free = free
|
|
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
|
|
DataManager.SummonData:updateSummonCount(result.reqData.id, result.reqData.times, result.reqData.free)
|
|
local newForce = {}
|
|
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) == 5 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)
|
|
|
|
-- 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
|