| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- local LuaDojoMgr = class("LuaDojoMgr")
- function LuaDojoMgr:ctor()
- self.battleSubMode = BattleSubMode.None
- self:RegisterNetEvents();
- end
- function LuaDojoMgr:Destroy()
- if tolua.getpeer(self) ~= nil then
- tolua.setpeer(self, nil)
- end
- end
- function LuaDojoMgr:RegisterNetEvents()
- ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_SHUT_PVPCIMBINGBATTLE, self, self.PvpClimbingShutBattle)
- end
- function LuaDojoMgr:UnRegisterNetEvents()
- ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_SHUT_PVPCIMBINGBATTLE, self, self.PvpClimbingShutBattle)
- end
- function LuaDojoMgr:Enter(mode)
- if mode == nil then
- LogError("请设置VersusBattle的战斗类型")
- return
- end
- self.battleSubMode = mode
- ManagerContainer.LuaGameMgr:SetGameSpeed(ManagerContainer.LuaGameMgr.GameSpeed)
- if self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.DOJO_CHALLENGE_RESULT_CHANGED, self, self.OnChallengeResultChanged)
- end
- end
- function LuaDojoMgr:Exit()
- if self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.DOJO_CHALLENGE_RESULT_CHANGED, self, self.OnChallengeResultChanged)
- end
- end
- function LuaDojoMgr:OnChallengeResultChanged()
- if self.battleSubMode == BattleSubMode.Voyage then
- local win = ManagerContainer.DataMgr.VoyageDataMgr:GetLastBattleWin()
- local scores = ManagerContainer.DataMgr.VoyageDataMgr:GetLastBattleScores()
- local rewards = ManagerContainer.DataMgr.VoyageDataMgr:GetLastBattleRewards()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleResult, {win, scores, rewards, 'VoyageResultTips', self.ShowDojoExit, self})
- end
- end
- function LuaDojoMgr:OnStartingFight()
- local data = {}
- data[1] = BattleMode.Versus
- data[2] = self.battleSubMode
- if self.battleSubMode == BattleSubMode.Arena then
- data[3] = ManagerContainer.DataMgr.ArenaData:GetMatchFighterName()
- data[4] = ManagerContainer.DataMgr.ArenaData:GetOurMembers()
- data[5] = ManagerContainer.DataMgr.ArenaData:GetEnemyMembers()
- elseif self.battleSubMode == BattleSubMode.PvPClimbinglower then
- data[3] = ManagerContainer.DataMgr.PeakTowerDataMgr:GetMatchFighterName()
- data[4] = ManagerContainer.DataMgr.PeakTowerDataMgr:GetOurMembers()
- data[5] = ManagerContainer.DataMgr.PeakTowerDataMgr:GetEnemyMembers()
- data[6] = true
- data[7] = ManagerContainer.DataMgr.PeakTowerDataMgr:GetLimitedTime()
- elseif self.battleSubMode == BattleSubMode.HundredDojo then
- data[3] = ManagerContainer.DataMgr.HundredDojoDataMgr:GetMatchFighterName()
- data[4] = ManagerContainer.DataMgr.HundredDojoDataMgr:GetOurMembers()
- data[5] = ManagerContainer.DataMgr.HundredDojoDataMgr:GetEnemyMembers()
- data[6] = true
- data[7] = ManagerContainer.DataMgr.HundredDojoDataMgr:GetLimitedTime()
- elseif self.battleSubMode == BattleSubMode.Voyage then
- data[3] = ManagerContainer.DataMgr.VoyageDataMgr:GetMatchFighterName()
- data[4] = ManagerContainer.DataMgr.VoyageDataMgr:GetOurMembers()
- data[5] = ManagerContainer.DataMgr.VoyageDataMgr:GetEnemyMembers()
- data[6] = true
- data[7] = ManagerContainer.DataMgr.VoyageDataMgr:GetLimitedTime()
- elseif self.battleSubMode == BattleSubMode.GvG then
- local guildWarDataMgr = ManagerContainer.DataMgr.GuildWarDataMgr
- if guildWarDataMgr then
- data[3] = guildWarDataMgr:GetMatchFighterName()
- data[4] = guildWarDataMgr:GetOurMembers()
- data[5] = guildWarDataMgr:GetEnemyMembers()
- data[6] = true
- data[7] = guildWarDataMgr:GetLimitedTime()
- else
- data[6] = true
- data[7] = 0
- end
- ManagerContainer.DataMgr.GuildWarDataMgr:StartStayBatting()
- end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojoBattle, data)
- end
- function LuaDojoMgr:OnBattleWin()
- ManagerContainer.LuaGameMgr:SetGameSpeed(1)
- if self.battleSubMode == BattleSubMode.Arena then
- ManagerContainer.DataMgr.ArenaData:BattleEnd(1)
- elseif self.battleSubMode == BattleSubMode.HundredDojo then
- ManagerContainer.DataMgr.HundredDojoDataMgr:BattleEnd(1)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleSimpleResult, {1, self.ShowDojoExit, self})
- elseif self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.DataMgr.VoyageDataMgr:BattleEnd(1)
- elseif self.battleSubMode == BattleSubMode.GvG then
- ManagerContainer.DataMgr.GuildWarDataMgr:BattleEnd(1)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleSimpleResult, {1, self.ShowDojoExit, self})
- elseif self.battleSubMode == BattleSubMode.PvPClimbinglower then
- ManagerContainer.DataMgr.PeakTowerDataMgr:BattleEnd(1)
- end
- end
- function LuaDojoMgr:OnBattleFailed()
- ManagerContainer.LuaGameMgr:SetGameSpeed(1)
- if self.battleSubMode == BattleSubMode.Arena then
- ManagerContainer.DataMgr.ArenaData:BattleEnd(0)
- elseif self.battleSubMode == BattleSubMode.HundredDojo then
- ManagerContainer.DataMgr.HundredDojoDataMgr:BattleEnd(0)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleSimpleResult, {0, self.ShowDojoExit, self})
- elseif self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.DataMgr.VoyageDataMgr:BattleEnd(0)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleResult, {0, nil, nil, 'VoyageResultTips', self.ShowDojoExit, self})
- elseif self.battleSubMode == BattleSubMode.GvG then
- ManagerContainer.DataMgr.GuildWarDataMgr:BattleEnd(0)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattleSimpleResult, {0, self.ShowDojoExit, self})
- elseif self.battleSubMode == BattleSubMode.PvPClimbinglower then
- --ManagerContainer.DataMgr.PeakTowerDataMgr:BattleEnd(0)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIClimbingTowerBattleFailed,Enum.UIPageName.UIClimbingTower)
- end
- end
- function LuaDojoMgr:OnBattleEnd()
- ManagerContainer.LuaGameMgr:SetGameSpeed(1)
- end
- --关闭结算界面
- function LuaDojoMgr:CloseBattlePage()
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIDojoBattle)
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleStatistics)
- if self.battleSubMode == BattleSubMode.Arena then
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIDojoBattleFail)
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIDojoBattleWin)
- elseif self.battleSubMode == BattleSubMode.HundredDojo then
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleSimpleResult)
- elseif self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleResult)
- elseif self.battleSubMode == BattleSubMode.GvG then
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleSimpleResult)
- end
- end
- function LuaDojoMgr:ShowDojoExit()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojoExit)
- end
- function LuaDojoMgr:BackDojoMain()
- self:CloseBattlePage();
- if self.battleSubMode == BattleSubMode.Arena then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIDojo2D, nil, Enum.UIPageName.UIMainCity1)
- elseif self.battleSubMode == BattleSubMode.HundredDojo then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIHundredDojo, nil, Enum.UIPageName.UIMainCity1)
- elseif self.battleSubMode == BattleSubMode.Voyage then
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIVoyage, nil, Enum.UIPageName.UIMainCity1)
- elseif self.battleSubMode == BattleSubMode.GvG then
- local data = require('ExecuteSequenceData'):new()
- data:AppendUIListener(Enum.UIPageName.UIMain, UIEventNames.UI_FILLCONTENT_COMPELETED, 5)
- data:AppendFuncAfterListener(false, ManagerContainer.LuaUIMgr, ManagerContainer.LuaUIMgr.Open, Enum.UIPageName.UIMain)
- data:AppendUIListener(Enum.UIPageName.UIMainCity1, UIEventNames.UI_FILLCONTENT_COMPELETED, 5)
- data:AppendUIViewFuncAfterListener(false, Enum.UIPageName.UIMain, 'ChangePageMsg', Enum.MainViewPageType.Town)
- data:AppendFunc(false, nil, function (sequenceData)
- if ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState() then
- sequenceData:AppendUIListener(Enum.UIPageName.UIGuildWarMatchMap, UIEventNames.UI_PAGE_IN_END_NTF, 5)
- sequenceData:AppendFuncAfterListener(false, ManagerContainer.LuaUIMgr, ManagerContainer.LuaUIMgr.Open, Enum.UIPageName.UIGuildWarMatchMap)
- sequenceData:AppendFunc(false, nil, function (sequenceData1)
- if ManagerContainer.DataMgr.GuildWarDataMgr:GetOpenState() then
- local attackBattleIdx = ManagerContainer.DataMgr.GuildWarDataMgr:GetLastAttackBattleIdx()
- if attackBattleIdx then
- sequenceData1:AppendUIListener(Enum.UIPageName.UIGuildWar, UIEventNames.UI_PAGE_IN_END_NTF, 5)
- sequenceData1:AppendFuncAfterListener(false, ManagerContainer.LuaUIMgr, ManagerContainer.LuaUIMgr.Open, Enum.UIPageName.UIGuildWar,attackBattleIdx)
- end
- end
- end, sequenceData)
- end
- end, data)
- ManagerContainer.ExecuteSequenceMgr:Execute(data)
- end
- self:ShutBattle()
- end
- function LuaDojoMgr:ShutBattle()
- ManagerContainer.LuaGameMgr:ShutDownBattle()
- ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.IdleState.stateId)
- end
- function LuaDojoMgr:PvpClimbingShutBattle(openPageId,param)
- self:CloseBattlePage()
- if self.battleSubMode == BattleSubMode.PvPClimbinglower then
- self:ShutBattle()
- if openPageId ~= nil and openPageId > 0 then
- ManagerContainer.LuaUIMgr:Open(openPageId,param, Enum.UIPageName.UIMainCity1)
- end
- LuaBattleBridge.CloseBgm()
- end
- end
- -- 显示战场结束转场
- function LuaDojoMgr:ShowBattleEndInterlude()
- end
- --pvp压制特效
- function LuaDojoMgr:OnShowPvpPressPoint()
- if self.chatHideTimer then
- ManagerContainer.LuaTimerMgr:RemoveTimer(chatHideTimer)
- self.chatHideTimer = nil
- end
- ManagerContainer.LuaTimerMgr:AddTimer(2000, 1,self,self.OnHidePvpPressPointTimer,nil);
- end
- function LuaDojoMgr:OnHidePvpPressPointTimer()
- self.chatHideTimer = ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_SHOW_PVP_PRESSPOINT,true);
- end
- function LuaDojoMgr:OnShowBossBuff(teamSide,actorId,isBoss,buffIcon,num)
- if isBoss then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Boss_Buff,buffIcon,num)
- else
- if teamSide == 0 then --我方
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Player_Buff,actorId, buffIcon,num)
- end
- end
- end
- function LuaDojoMgr:OnRemoveBossBuff(teamSide,actorId,isBoss,buffIcon)
- if isBoss then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Boss_Remove_Buff,buffIcon)
- else
- if teamSide == 0 then --我方
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Remove_Player_Buff, actorId, buffIcon)
- end
- end
- end
- function LuaDojoMgr:OnLoadBegin()
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Begin);
- end
- function LuaDojoMgr:OnLoadProgress(progress)
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Progress,progress);
- end
- function LuaDojoMgr:OnLoadComplete()
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Complete);
- end
- function LuaDojoMgr:OnFighterLifeChanged(isBoss,actorId,life,maxLife,teamSide)
- if isBoss then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Boss_Life,life,maxLife)
- else
- if teamSide == 0 then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Fighter_Life,actorId,life,maxLife)
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Enemy_Fighter_Life,actorId,life,maxLife)
- end
- end
- end
- function LuaDojoMgr:OnFighterEnergyChanged(actorId,sp,maxSp,teamSide)
- if teamSide == 0 then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Fighter_Sp,actorId,sp,maxSp)
- else
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_Enemy_Fighter_Sp,actorId,sp,maxSp)
- end
- end
- function LuaDojoMgr:OnFighterCastSkill(skillParam)
- end
- function LuaDojoMgr:RefreshStatistics()
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_BattleStatistics)
- end
- function LuaDojoMgr:OnFightingStart()
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_FIGHTING_START)
- end
- return LuaDojoMgr;
|