211 lines
7.5 KiB
Lua
211 lines
7.5 KiB
Lua
|
|
GuildCarDelayManager = {};
|
|||
|
|
local this = GuildCarDelayManager
|
|||
|
|
this.ChallengeCdTime = 0
|
|||
|
|
this.LootCdTime = 0
|
|||
|
|
this.totalHurt = 0
|
|||
|
|
this.bossIndexId = 1
|
|||
|
|
|
|||
|
|
function this.Initialize()
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function this.InitBaseData(func)
|
|||
|
|
if func then func() end
|
|||
|
|
|
|||
|
|
if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.MINSKBATTLE) then
|
|||
|
|
GuildCarDelayManager.GetBuyChallengeCountData()
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--后端更新梦魇进度
|
|||
|
|
function this.SetProgressData(msg)
|
|||
|
|
this.progress = msg.progress--阶段 -1:未开 1:挑战
|
|||
|
|
this.endTime = msg.endTime--结束时间
|
|||
|
|
-- this.bossIndexId = msg.bossIndexId--boss索引id
|
|||
|
|
this.battleStartTime = msg.battleStartTime--挑战boss开启时间
|
|||
|
|
this.totalHurt = msg.totalHurt--全服累计伤害
|
|||
|
|
--this.grabStartTime = msg.grabStartTime--抢夺开启时间
|
|||
|
|
|
|||
|
|
if this.timer2 then
|
|||
|
|
this.timer2:Stop()
|
|||
|
|
this.timer2 = nil
|
|||
|
|
end
|
|||
|
|
this.ChallengeCdTime = 0
|
|||
|
|
this.LootCdTime = 0
|
|||
|
|
GuildCarDelayManager.GetBuyChallengeCountData()
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayProgressChanged)
|
|||
|
|
CheckRedPointStatus(RedPointType.Guild_CarDeleay)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--开始战斗
|
|||
|
|
this.score = 0
|
|||
|
|
this.hurt = 0
|
|||
|
|
this.heroDid = 0--抢夺是向后端传的id
|
|||
|
|
function this.SetheroDid(_heroDid)
|
|||
|
|
this.heroDid = _heroDid
|
|||
|
|
end
|
|||
|
|
function this.FightBattle(callBack)
|
|||
|
|
local type = 0
|
|||
|
|
local fightType = 0
|
|||
|
|
local monsterId = 0
|
|||
|
|
if this.progress == GuildCarDelayProType.Challenge then
|
|||
|
|
local worldBossConfig = ConfigManager.GetConfigData(ConfigName.WorldBossConfig,GuildCarDelayManager.bossIndexId)
|
|||
|
|
if worldBossConfig and worldBossConfig.MonsterId then
|
|||
|
|
monsterId = worldBossConfig.MonsterId
|
|||
|
|
end
|
|||
|
|
fightType = 0
|
|||
|
|
type = 1
|
|||
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_CHALLENGE, 1)
|
|||
|
|
elseif this.progress == GuildCarDelayProType.Loot then
|
|||
|
|
monsterId = this.heroDid
|
|||
|
|
fightType = 1
|
|||
|
|
type = 2
|
|||
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_LOOT, 1)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
BattleManager.SetAgainstInfoAICommon(BATTLE_TYPE.GUILD_CAR_DELAY, monsterId)
|
|||
|
|
NetManager.FastFightChallengeRequest(type, monsterId, false, function (msg)
|
|||
|
|
UIManager.OpenPanel(UIName.BattleStartPopup, function ()
|
|||
|
|
this.score = msg.score
|
|||
|
|
if msg.hurt > this.hurt then
|
|||
|
|
this.hurt = msg.hurt
|
|||
|
|
end
|
|||
|
|
this.totalHurt = msg.totalHurt
|
|||
|
|
local fightData = BattleManager.GetBattleServerData(msg,fightType)
|
|||
|
|
UIManager.OpenPanel(UIName.BattlePanel, fightData, BATTLE_TYPE.GUILD_CAR_DELAY, callBack)
|
|||
|
|
end)
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
GuildCarDelayManager.GetBuyChallengeCountData()
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--扫荡
|
|||
|
|
function this.FastFightBattle(callBack)
|
|||
|
|
local monsterId = 0
|
|||
|
|
local worldBossConfig = ConfigManager.GetConfigData(ConfigName.WorldBossConfig,GuildCarDelayManager.bossIndexId)
|
|||
|
|
if worldBossConfig and worldBossConfig.MonsterId then
|
|||
|
|
monsterId = worldBossConfig.MonsterId
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
NetManager.FastFightChallengeRequest(1, monsterId, true, function (msg)
|
|||
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, nil, 1, function()
|
|||
|
|
this.score = msg.score
|
|||
|
|
this.hurt = msg.hurt
|
|||
|
|
this.totalHurt = msg.totalHurt
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayProgressChanged)
|
|||
|
|
if callBack then
|
|||
|
|
callBack()
|
|||
|
|
end
|
|||
|
|
end, 3, true, true, nil, true, nil, BATTLE_TYPE.GUILD_CAR_DELAY)
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
GuildCarDelayManager.GetBuyChallengeCountData()
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function this.SetCdTime(progress)
|
|||
|
|
if progress == GuildCarDelayProType.Challenge then
|
|||
|
|
this.ChallengeCdTime = ConfigManager.GetConfigData(ConfigName.WorldBossSetting,1).CDTime[1]
|
|||
|
|
this.RemainTimeDown2(this.ChallengeCdTime)
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayChallengeCdStar)
|
|||
|
|
-- elseif progress == GuildCarDelayProType.Loot then
|
|||
|
|
-- this.LootCdTime = ConfigManager.GetConfigData(ConfigName.WorldBossSetting,1).CDTime[2]
|
|||
|
|
-- this.RemainTimeDown2(this.LootCdTime)
|
|||
|
|
-- Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayLootCdStar)
|
|||
|
|
end
|
|||
|
|
CheckRedPointStatus(RedPointType.Guild_CarDeleay)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
this.timer2 = Timer.New()
|
|||
|
|
--刷新倒计时显示
|
|||
|
|
function this.RemainTimeDown2(timeDown)
|
|||
|
|
if timeDown > 0 then
|
|||
|
|
if this.timer2 then
|
|||
|
|
this.timer2:Stop()
|
|||
|
|
this.timer2 = nil
|
|||
|
|
end
|
|||
|
|
this.timer2 = Timer.New(function()
|
|||
|
|
if GuildCarDelayManager.progress == GuildCarDelayProType.Challenge then
|
|||
|
|
GuildCarDelayManager.ChallengeCdTime = timeDown
|
|||
|
|
-- elseif GuildCarDelayManager.progress == GuildCarDelayProType.Loot then
|
|||
|
|
-- GuildCarDelayManager.LootCdTime = timeDown
|
|||
|
|
end
|
|||
|
|
if timeDown < 0 then
|
|||
|
|
this.timer2:Stop()
|
|||
|
|
this.timer2 = nil
|
|||
|
|
CheckRedPointStatus(RedPointType.Guild_CarDeleay)
|
|||
|
|
end
|
|||
|
|
timeDown = timeDown - 1
|
|||
|
|
end, 1, -1, true)
|
|||
|
|
this.timer2:Start()
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function this.RefreshAllRedPoint()
|
|||
|
|
return this.RefreshRedPoint()
|
|||
|
|
|
|||
|
|
-- return this.RefreshRedPoint(GuildCarDelayProType.Challenge) or this.RefreshRedPoint(GuildCarDelayProType.Loot)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--红点检测
|
|||
|
|
function this.RefreshRedPoint(progress)
|
|||
|
|
if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.MINSKBATTLE) then
|
|||
|
|
if this.progress == GuildCarDelayProType.Challenge then
|
|||
|
|
if this.challengeNumber > 0 then
|
|||
|
|
return true
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
return false
|
|||
|
|
|
|||
|
|
-- if progress ~= GuildCarDelayManager.progress then
|
|||
|
|
-- return false
|
|||
|
|
-- end
|
|||
|
|
-- if GuildCarDelayManager.progress == GuildCarDelayProType.Challenge then
|
|||
|
|
-- if PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_CHALLENGE) > 0 and this.ChallengeCdTime <= 0 then
|
|||
|
|
-- return true
|
|||
|
|
-- else
|
|||
|
|
-- return false
|
|||
|
|
-- end
|
|||
|
|
-- elseif GuildCarDelayManager.progress == GuildCarDelayProType.Loot then
|
|||
|
|
-- if PrivilegeManager.GetPrivilegeRemainValue(PRIVILEGE_TYPE.GUILD_CAR_DELEAY_LOOT) > 0 and this.LootCdTime <= 0 then
|
|||
|
|
-- return true
|
|||
|
|
-- else
|
|||
|
|
-- return false
|
|||
|
|
-- end
|
|||
|
|
-- end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function this.SetCarPlayTimeData(time)
|
|||
|
|
if this.progress == GuildCarDelayProType.Challenge then
|
|||
|
|
this.ChallengeCdTime = (time + ConfigManager.GetConfigData(ConfigName.WorldBossSetting,1).CDTime[1]) - GetTimeStamp()
|
|||
|
|
this.RemainTimeDown2(this.ChallengeCdTime)
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayChallengeCdStar)
|
|||
|
|
-- elseif this.progress == GuildCarDelayProType.Loot then
|
|||
|
|
-- this.LootCdTime = (time + ConfigManager.GetConfigData(ConfigName.WorldBossSetting,1).CDTime[1]) - GetTimeStamp()
|
|||
|
|
-- this.RemainTimeDown2(this.LootCdTime)
|
|||
|
|
-- Game.GlobalEvent:DispatchEvent(GameEvent.Guild.CarDelayLootCdStar)
|
|||
|
|
end
|
|||
|
|
CheckRedPointStatus(RedPointType.NightmareInvasion)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
--获取已购买次数和剩余挑战次数
|
|||
|
|
function this.GetBuyChallengeCountData(fun)
|
|||
|
|
NetManager.GET_CAR_CHALLENGE_MY_INFO_REQUEST( function(msg)
|
|||
|
|
this.BuyCount = msg.battleBuyCount
|
|||
|
|
this.challengeNumber = msg.battleCount
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.WorldBoss.RefreshChallengeInfo)
|
|||
|
|
if fun then
|
|||
|
|
fun()
|
|||
|
|
end
|
|||
|
|
end)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function this.RefreshCout(msg, func)
|
|||
|
|
this.BuyCount = msg.battleBuyCount
|
|||
|
|
this.challengeNumber = msg.battleCount
|
|||
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.WorldBoss.RefreshChallengeInfo)
|
|||
|
|
if func then
|
|||
|
|
func()
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
return this
|