312 lines
11 KiB
Lua
312 lines
11 KiB
Lua
local SummonManager = class("SummonManager", BaseModule)
|
|
|
|
-- 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:showSummonUnlockUI(params)
|
|
UIManager:showUI("app/ui/summon/summon_unlock_ui", params)
|
|
end
|
|
|
|
function SummonManager:showSummonShopUI(shopType)
|
|
UIManager:showUI("app/ui/summon/summon_shop_ui", { shopType = shopType })
|
|
end
|
|
|
|
function SummonManager:showSummonShopBoxUI(shopType, cfg)
|
|
UIManager:showUI("app/ui/summon/summon_shop_box_ui", { shopType = shopType, cfg = cfg })
|
|
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
|
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON)
|
|
return
|
|
end
|
|
local newHero = {}
|
|
local guarantee1 = DataManager.SummonData:getSummonWishGuarantee1(result.reqData.id)
|
|
for _, reward in pairs(result.rewards) do
|
|
local cfg = ConfigManager:getConfig("item")[reward.item.id]
|
|
if cfg.type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then
|
|
local isNew = DataManager.HeroData:getHeroIsNew(reward.item.id)
|
|
if isNew then
|
|
table.insert(newHero, reward.item.id)
|
|
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
|
|
end
|
|
DataManager.SummonData:updateSummonCount(result.reqData.id, result.reqData.times, result.reqData.free)
|
|
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.FORCE_SUMMON, result, newHero)
|
|
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.X_SUMMON_HERO, result.reqData.times)
|
|
|
|
-- if result.first then
|
|
-- DataManager.GameSettingData:showRateUIByForceSummon()
|
|
-- end
|
|
end
|
|
|
|
-- 商店
|
|
function SummonManager:reqForceSummonShopExchange(id, count)
|
|
self:sendMessage(ProtoMsgType.FromMsgEnum.SummonShopExchangeReq, {id = id, count = count}, self.rspForceSummonShopExchange, BIReport.ITEM_GET_TYPE.FORCE_SUMMON_SHOP_EXCHANGE)
|
|
end
|
|
|
|
function SummonManager:rspForceSummonShopExchange(result)
|
|
if result.err_code ~= GConst.ERROR_STR.SUCCESS then
|
|
return
|
|
end
|
|
GFunc.showRewardBox(result.rewards)
|
|
DataManager.SummonData:shopSuccess(result.reqData.id, result.reqData.count)
|
|
BIReport:postSummonShopExchange(BIReport.SUMMON_OP_TYPE.SUMMON_SHOP, result.reqData.id, result.reqData.count, result.rewards)
|
|
end
|
|
|
|
function SummonManager:reqSummonShopMarkUnlockTip(shopType)
|
|
-- local ids = DataManager.SummonData:getUnlockShopId(shopType)
|
|
-- self:sendMessage(ProtoMsgType.FromMsgEnum.SummonShopMarkUnlockTipReq, {ids = ids}, self.rspSummonShopMarkUnlockTip, BIReport.ITEM_GET_TYPE.SUMMON_OPEN_EXCHANGED_UI)
|
|
end
|
|
|
|
function SummonManager:rspSummonShopMarkUnlockTip(result)
|
|
-- DataManager.SummonData:onSummonShopSoulOpen(result.reqData.ids)
|
|
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()
|
|
GFunc.showRewardBox(result.rewards)
|
|
-- 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
|
|
|
|
--@region 上报
|
|
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"
|
|
BIReport.EVENT_NAME_ACT_SUMMON = "client_act_summon" -- 念力觉醒
|
|
BIReport.EVENT_NAME_FORCE = "client_hero_opt" -- 士兵
|
|
BIReport.ITEM_GET_TYPE.FORCE_SUMMON_SHOP_EXCHANGE = "force_summon_shop_exchange"
|
|
|
|
BIReport.SUMMON_OP_TYPE = {
|
|
REWARD_ROUND = "RewardRound",
|
|
REWARD_ROUND_TASK = "RewardRoundTask",
|
|
REWARD_RECHARGE_TASK = "RewardRechargeTask",
|
|
SUMMON_SHOP = "SummonShop",
|
|
}
|
|
|
|
BIReport.FORCE_OPT_TYPE = {
|
|
UNLOCK = "Unlock",
|
|
LEVELUP = "LevelUp",
|
|
STARUP = "StarUp",
|
|
FORMATION = "Formation",
|
|
SUMMON = "Summon",
|
|
}
|
|
|
|
-- 士兵召唤
|
|
function BIReport:postForceSummon(isfree, count, rewards, costs, summonId)
|
|
local args = {
|
|
opt_type = BIReport.FORCE_OPT_TYPE.SUMMON,
|
|
free_summon = isfree,
|
|
count = count,
|
|
summon_id = summonId,
|
|
reward_str = rewards and GFunc.getRewardsStr(rewards) or nil,
|
|
cost_str = costs and GFunc.getRewardsStr(costs) or nil,
|
|
}
|
|
self:report(BIReport.EVENT_NAME_FORCE, args)
|
|
end
|
|
|
|
function BIReport:postSummonShopExchange(optType, id, num, rewards)
|
|
local args = {
|
|
optType = optType,
|
|
shop_id = id,
|
|
exchange_num = num,
|
|
reward_str = rewards and GFunc.getRewardsStr(rewards) or nil,
|
|
}
|
|
self:report(BIReport.EVENT_NAME_ACT_SUMMON, args)
|
|
end
|
|
|
|
--@endregion
|
|
return SummonManager
|