| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- local LoadingState = class("LoadingState", require("StateBase"))
- function LoadingState:Enter(sceneType, param1)
- ManagerContainer.GoPoolMgr:Dispose()
- ManagerContainer.UIStoryMgr:Dispose()
- ManagerContainer.StoryMgr:ExpectedStopCurStoryChapter()
- ManagerContainer.LuaUIMgr:CloseInputMask()
- self.sceneType = sceneType
- self.param = param1
- self.bStarted = false
- if self.sceneType == SceneType.TowerBattleScene then
- if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UIDojoMatch) then
- ManagerContainer.LuaUIMgr:CloseAllPagesExceptId(Enum.UIPageName.UIDojoMatch)
- elseif ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILoading) then
- ManagerContainer.LuaUIMgr:CloseAllPagesExceptId(Enum.UIPageName.UILoading)
- end
- else
- if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILanuch) then
- ManagerContainer.LuaUIMgr:CloseAllPagesExceptId(Enum.UIPageName.UILanuch)
- elseif ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILoading) then
- ManagerContainer.LuaUIMgr:CloseAllPagesExceptId(Enum.UIPageName.UILoading)
- end
- end
- self:SyncDataToActorData()
- end
- function LoadingState:Update()
- if self.bStarted == false and ManagerContainer.LuaGameMgr.loadingPageOk then
- self:BeginLoading()
- end
- end
- function LoadingState:Exit()
- end
- function LoadingState:GetTask()
- return nil
- end
- function LoadingState:BeginLoading()
- self.bStarted = true
- if self.sceneType == SceneType.LoginScene then
- elseif self.sceneType == SceneType.CreateRoleScene then
- ManagerContainer.LuaGameMgr:PreloadCreateRoleScene()
- elseif self.sceneType == SceneType.NormalBattleScene then
- local dataInitedOver = ManagerContainer.DataMgr.UserData:IsInitedOver()
- if dataInitedOver then
- self:StartNormalBattle()
- end
- elseif self.sceneType == SceneType.GuildLobbyScene then
- ManagerContainer.LuaGameMgr:PreloadGuildLobby();
- elseif self.sceneType == SceneType.TowerBattleScene then
- local mode = self.param["mode"]
- local battleEndConds = self.param["battleEndConds"]
- local ourActors = self.param["ourActors"]
- local enemyActors = self.param["enemyActors"]
- local sceneName = self.param["sceneName"]
- local maxFightingTime = self.param["maxFightingTime"]
- local OurMarks = nil
- local EnemyMarks = nil
- local IsPresspoint = false
- local nPresspoint = 0
- if not maxFightingTime then
- maxFightingTime = 0
- end
- if nil ~= self.param['OurBattleMarks'] then
- OurMarks = self.param['OurBattleMarks']
- end
- if nil ~= self.param['EnemyBattleMarks'] then
- EnemyMarks = self.param['EnemyBattleMarks']
- end
- if nil ~= self.param['IsPresspoint'] then
- IsPresspoint = self.param['IsPresspoint']
- end
- if nil ~= self.param['nPresspoint'] then
- nPresspoint = self.param['nPresspoint']
- end
- ManagerContainer.LuaGameMgr:PreloadVersusBattle(mode, ourActors, enemyActors, sceneName, maxFightingTime, battleEndConds,OurMarks,EnemyMarks,IsPresspoint,nPresspoint);
- LuaBattleBridge.SetLuaBattleMgr(BattleMode.Versus, ManagerContainer.LuaDojoMgr)
- elseif self.sceneType == SceneType.BossBattleScene then
- self.actors = self.param["actors"]
- self.bossId = self.param["bossId"]
- self.sceneId = self.param["sceneId"]
- self.bossMode = self.param["bossMode"]
- self.battleEndConds = self.param["battleEndConds"]
- if self.bossMode == BattleSubMode.WorldBoss then
- ManagerContainer.LuaGameMgr:PreloadBossBattle(self.actors,self.bossId,self.sceneId,self.battleEndConds)
- elseif self.bossMode == BattleSubMode.NewbieBoss then
- local fellows = ManagerContainer.LuaGameMgr:StartNewbieBossBattle(self.sceneId,ManagerContainer.DataMgr.UserData:GetSex())
- ManagerContainer.LuaGameMgr.newbieActors = fellows
- end
-
- LuaBattleBridge.SetLuaBattleMgr(BattleMode.Boss, ManagerContainer.LuaBossBattleMgr)
- elseif self.sceneType == SceneType.TimeBattleScene then
- local mode = self.param["mode"]
- local maxFightingTime = self.param["maxFightingTime"]
- local sceneName = self.param["sceneName"]
- local bgmMusic = self.param["bgmMusic"]
- local ourActors = self.param["ourActors"]
- local enemyActors = self.param["enemyActors"]
- local battleEndConds = self.param["battleEndConds"]
- local serverActorData = self.param["serverActorData"]
- local battleRecordStr = self.param["battleRecordStr"]
- local battleFactors = self.param["battleFactors"]
- local replayername = self.param["replayername"]
- local RestoreSp = 0
- local OurMarks = nil
- local EnemyMarks = nil
- --LogError("=========================="..battleRecordStr)
- if nil ~= self.param['RestoreSp'] then
- RestoreSp = self.param['RestoreSp']
- end
- if nil ~= self.param['OurBattleMarks'] then
- OurMarks = self.param['OurBattleMarks']
- end
- if nil ~= self.param['EnemyBattleMarks'] then
- EnemyMarks = self.param['EnemyBattleMarks']
- end
- if ourActors ~= nil and enemyActors ~= nil then
- if battleFactors == nil then
- battleFactors = System.Array.CreateInstance(Enum.TypeInfo.ValType, 0)
- end
- ManagerContainer.LuaGameMgr:PreloadTimeBattle(ManagerContainer.LuaTimeBattleMgr, mode, maxFightingTime,sceneName,bgmMusic,ourActors,enemyActors,serverActorData,battleEndConds,battleFactors,RestoreSp,OurMarks,EnemyMarks)
- elseif battleRecordStr ~= nil then
- ManagerContainer.LuaGameMgr:ReplayTimeBattle(ManagerContainer.LuaTimeBattleMgr, mode, maxFightingTime,sceneName,bgmMusic,battleRecordStr)
-
- LuaBattleBridge.SetReplayHeroActorName(replayername)
- end
- end
- end
- function LoadingState:StartNormalBattle()
- ManagerContainer.DataMgr.UserData:RefreshAddPointAttr()
- ManagerContainer.DataMgr.PartnerData:InitPartnerPointAttr()
- ManagerContainer.DataMgr.UserData:InitHeroAttrFromBattle()
- ManagerContainer.DataMgr.PartnerData:InitPartnerAttrFromBattle()
- local teamData = ManagerContainer.DataMgr.UserData:GetTeamData(true);
- ManagerContainer.LuaGameMgr:PreloadFellowsModel()
- ManagerContainer.LuaGameMgr:PreloadBattle(teamData);
- LuaBattleBridge.SetLuaBattleMgr(BattleMode.Normal, ManagerContainer.LuaBattleMgr)
- end
- --- 只同步到当前玩家已创建的ActorData
- function LoadingState:SyncDataToActorData()
- local actorData = ManagerContainer.LuaActorDataMgr:GetActorData(true, 0)
- if actorData then
- self:SyncHeroDataToActorData(ManagerContainer.DataMgr.UserData:GetMainRoleData(), actorData)
- end
- local list = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
- if list ~= nil then
- for _,v in pairs(list) do
- if v.owned then
- actorData = ManagerContainer.LuaActorDataMgr:GetActorData(false, v.configId)
- if actorData then
- self:SyncHeroDataToActorData(v, actorData)
- end
- end
- end
- end
- end
- function LoadingState:SyncHeroDataToActorData(heroData, actorData)
- if not heroData then return end
- if not actorData then return end
- -- 同步技能
- local skillData = heroData.skillData
- if skillData then
- local skillPrams = skillData:GetUsedSkillParams()
- skillPrams = CommonUtil.ReplaceBattleSkillBySkillEquip(heroData, skillPrams)
- actorData:RefreshSkills(skillPrams)
- end
- end
- return LoadingState
|