592 lines
22 KiB
Lua
592 lines
22 KiB
Lua
local LuaGameMgr = class("LuaGameMgr", function()
|
||
return GameMgr.Instance
|
||
end)
|
||
|
||
function LuaGameMgr:ctor()
|
||
self:SetOnSceneLoadedLuaFunc(self.OnSceneLoadedInLua)
|
||
self:SetLuaPlayStoryFunc(self.PlayStory)
|
||
self:SdkInitFunc(self.SdkInitResult)
|
||
self:SdkLoginFunc(self.SdkLoginResult)
|
||
self:SdkLogoutFunc(self.SdkLogoutResult)
|
||
self:SdkPayFunc(self.SdkPayResult)
|
||
self:SdkQuestionFunc(self.UrlQuestionRewardResult)
|
||
|
||
self:UIBattle_streamer_act_Func(self.UIBattle_streamer_act)
|
||
|
||
self.newbieActors = nil
|
||
self.IsCreateRole = false
|
||
self.loadingPageOk = false
|
||
self.IsActivationCodeMode = false
|
||
self.showNiewbieLoading = false
|
||
self.registerEvents = false
|
||
self.isPreloadedFellow = false
|
||
|
||
self.sdkInited = Enum.ParamState.None
|
||
self.sdkLogined = Enum.ParamState.None
|
||
self.token = ''
|
||
self.openId = ''
|
||
self.platform = ''
|
||
self.channelName = ''
|
||
self.serverData = {}
|
||
self.killSmallMonsterCount = 0
|
||
end
|
||
|
||
function LuaGameMgr:SendBattleRecordReq(recordType,params)
|
||
ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_PLAYER_BATTLE_RECORD_REQ, {record_type = recordType, param_list = params})
|
||
end
|
||
|
||
|
||
function LuaGameMgr:OnSceneLoadedInLua(sceneType,mode)
|
||
if sceneType == SceneType.CreateRoleScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.CreateRoleState.stateId)
|
||
elseif sceneType == SceneType.NormalBattleScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BattleState.stateId)
|
||
elseif sceneType == SceneType.GuildLobbyScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.GuildLobbyState.stateId)
|
||
elseif sceneType == SceneType.TowerBattleScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.DojoState.stateId, mode)
|
||
elseif sceneType == SceneType.BossBattleScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BossBattleState.stateId,mode)
|
||
elseif sceneType == SceneType.TimeBattleScene then
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.TimeBattleState.stateId,mode)
|
||
end
|
||
|
||
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Close)
|
||
end
|
||
|
||
function LuaGameMgr:Destroy()
|
||
if tolua.getpeer(self) ~= nil then
|
||
tolua.setpeer(self, nil)
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:SdkInitResult(success,platformName)
|
||
self.platform = platformName
|
||
self.sdkInited = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
|
||
end
|
||
|
||
function LuaGameMgr:SdkLoginResult(success,openId,token,isSwitchAccount)
|
||
local lastSdkLogined = self.sdkLogined
|
||
self.sdkLogined = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
|
||
self.token = token or ''
|
||
self.openId = openId or ''
|
||
if success then
|
||
if isSwitchAccount then
|
||
if lastSdkLogined == Enum.ParamState.Success then
|
||
if ManagerContainer.DataMgr.UserData:IsInitedOver() then
|
||
ManagerContainer.DataMgr.UserData:SDKExitGame()
|
||
end
|
||
self:ClearServerData()
|
||
self:ReLogin()
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:SdkLogoutResult()
|
||
if ManagerContainer.DataMgr.UserData:IsInitedOver() then
|
||
ManagerContainer.DataMgr.UserData:SDKExitGame()
|
||
end
|
||
local lastSdkLogined = self.sdkLogined
|
||
self.sdkLogined = Enum.ParamState.Fail
|
||
self.token = ''
|
||
self.openId = ''
|
||
if lastSdkLogined == Enum.ParamState.Success then
|
||
self:ClearServerData()
|
||
self:ReLogin()
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:SdkPayResult(success)
|
||
ManagerContainer.PayMgr:SdkPayResult(success)
|
||
end
|
||
|
||
function LuaGameMgr:InitServerData(id, name, ip, ports, state)
|
||
self.serverData.id = id
|
||
self.serverData.name = name
|
||
self.serverData.ip = ip
|
||
self.serverData.ports = ports
|
||
self.serverData.state = state
|
||
self.serverData.portidx = nil
|
||
end
|
||
|
||
function LuaGameMgr:ClearServerData()
|
||
self.serverData = {}
|
||
end
|
||
|
||
function LuaGameMgr:ComposeCommonServerInfo(url)
|
||
local openId = self.openId
|
||
if openId and openId ~= '' then
|
||
url = url .. '&openid=' .. tostring(openId)
|
||
end
|
||
local platform = self.platform
|
||
if platform and platform ~= '' then
|
||
url = url .. '&platform=' .. tostring(platform)
|
||
end
|
||
local subplatform = self.channelName
|
||
if subplatform and subplatform ~= '' then
|
||
url = url .. '&sub_platform=' .. tostring(subplatform)
|
||
end
|
||
local resVer = self.ResVersion
|
||
if resVer and resVer ~= '' then
|
||
url = url .. '&resver=' .. tostring(resVer)
|
||
end
|
||
url = url .. '×amp=' .. tostring(os.time())
|
||
return url
|
||
end
|
||
|
||
|
||
--进入创建角色场景
|
||
function LuaGameMgr:EnterCreateRole(activedCode)
|
||
self.IsCreateRole = true
|
||
self.IsActivationCodeMode = activedCode
|
||
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_ENTER_CREATE_ROLE)
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.CreateRoleScene)
|
||
end
|
||
|
||
--进入战斗
|
||
function LuaGameMgr:EnterBattle(first)
|
||
if ManagerContainer.FSMMgr:IsBattleState() then
|
||
--ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBattle)
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattle)
|
||
return;
|
||
end
|
||
|
||
if first == false then
|
||
local nloadingId = 3
|
||
if self.showNiewbieLoading then
|
||
nloadingId = 2
|
||
self.showNiewbieLoading = false
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
|
||
end
|
||
--ManagerContainer.LuaActorAttributeMgr:SyncServerActorDataToLocal()
|
||
--清空断线后 返回巡游 残留的远征BUFF
|
||
ManagerContainer.LuaActorDataMgr:ResetData()
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.NormalBattleScene,first)
|
||
end
|
||
|
||
--进入公会大厅
|
||
function LuaGameMgr:EnterGuildLobby()
|
||
if ManagerContainer.FSMMgr:IsGuildLobbyState() then
|
||
return
|
||
end
|
||
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.GuildLobbyScene)
|
||
end
|
||
|
||
--进入道场
|
||
function LuaGameMgr:EnterDojo(sceneName, ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsDojoState() then
|
||
return;
|
||
end
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.Arena
|
||
param["sceneName"] = sceneName
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
param["OurBattleMarks"] = OurMarks
|
||
param["IsPresspoint"] = IsPresspoint
|
||
param["nPresspoint"] = nPresspoint
|
||
-- self:OpenLoading(Enum.UIPageName.UILoading)
|
||
self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
|
||
end
|
||
|
||
function LuaGameMgr:EnterHundredDojo(sceneName, ourActors, enemyActors, maxFightingTime,OurMarks,IsPresspoint,nPresspoint, battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsDojoState() then
|
||
return;
|
||
end
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.HundredDojo
|
||
param["sceneName"] = sceneName
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["OurBattleMarks"] = OurMarks
|
||
param["IsPresspoint"] = IsPresspoint
|
||
param["nPresspoint"] = nPresspoint
|
||
param["battleEndConds"] = battleEndConds
|
||
self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
|
||
end
|
||
|
||
--工会战
|
||
function LuaGameMgr:EnterGvGBattle(sceneName, ourActors, enemyActors, maxFightingTime, battleEndConds,OurMarksDatas,EnemyMarksDatas,IsPresspoint,nPresspoint)
|
||
if ManagerContainer.FSMMgr:IsDojoState() then
|
||
return;
|
||
end
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.GvG
|
||
param["sceneName"] = sceneName
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["battleEndConds"] = battleEndConds
|
||
param["OurBattleMarks"] = OurMarksDatas
|
||
param["EnemyBattleMarks"] = EnemyMarksDatas
|
||
param["IsPresspoint"] = IsPresspoint
|
||
param["nPresspoint"] = nPresspoint
|
||
self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
|
||
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
|
||
end
|
||
|
||
function LuaGameMgr:EnterVoyageBattle(sceneName, ourActors, enemyActors, maxFightingTime, ourMarks,IsPresspoint,nPresspoint, battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsDojoState() then
|
||
return;
|
||
end
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.Voyage
|
||
param["sceneName"] = sceneName
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["battleEndConds"] = battleEndConds
|
||
param["OurBattleMarks"] = ourMarks
|
||
param["IsPresspoint"] = IsPresspoint
|
||
param["nPresspoint"] = nPresspoint
|
||
self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
|
||
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
|
||
end
|
||
|
||
-- 进入资源副本战斗
|
||
function LuaGameMgr:EnterResourceBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsTimeBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.Resource
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
|
||
end
|
||
|
||
-- 进入公会狩猎boss战斗
|
||
function LuaGameMgr:EnterGuildHuntBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsTimeBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.Guild
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
|
||
end
|
||
|
||
-- 进入公会魔王boss战斗
|
||
function LuaGameMgr:EnterGuildHuntExBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsTimeBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.GuildEx
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
|
||
end
|
||
|
||
-- 进入爬塔战斗
|
||
function LuaGameMgr:EnterClimbingTowerBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds,recordStr,battleFactors,replayername)
|
||
if ManagerContainer.FSMMgr:IsTimeBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.ClimbingTower
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
param["battleRecordStr"] = recordStr
|
||
param["battleFactors"] = battleFactors
|
||
if param["battleRecordStr"] ~= nil then
|
||
param["replayername"] = replayername
|
||
end
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
|
||
end
|
||
|
||
--PVP 爬塔
|
||
function LuaGameMgr:EnterClimbingTowerBattlePvP(sceneName, bgmMusic,maxFightingTime,ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsDojoState() then
|
||
return;
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.PvPClimbinglower
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["OurBattleMarks"] = OurMarks
|
||
param["IsPresspoint"] = IsPresspoint
|
||
param["nPresspoint"] = nPresspoint
|
||
param["battleEndConds"] = battleEndConds
|
||
--self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
|
||
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
|
||
end
|
||
|
||
-- 进入远征之门战斗
|
||
function LuaGameMgr:EnterExpeditionBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,nloadingId,serverActorData,battleEndConds,RestoreSp)
|
||
if ManagerContainer.FSMMgr:IsTimeBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
|
||
local param = {}
|
||
param["mode"] = BattleSubMode.Expedition
|
||
param["sceneName"] = sceneName
|
||
param["bgmMusic"] = bgmMusic
|
||
param["maxFightingTime"] = maxFightingTime
|
||
param["ourActors"] = ourActors
|
||
param["enemyActors"] = enemyActors
|
||
param["battleEndConds"] = battleEndConds
|
||
param["serverActorData"] = serverActorData
|
||
param['RestoreSp'] = RestoreSp
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
|
||
end
|
||
|
||
--- 进入世界boss
|
||
---@param actorDatas Array<ActorData> 进入挑战的其它玩家信息
|
||
---@param summonId boss等配置Id
|
||
---@param summonScene 战斗场景配置Id
|
||
function LuaGameMgr:EnterWorldBoss(actorDatas, summonId, summonScene,battleEndConds)
|
||
if ManagerContainer.FSMMgr:IsBossBattleState() then
|
||
return
|
||
end
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
local param ={}
|
||
param["actors"] = actorDatas
|
||
param["bossId"] = summonId
|
||
param["sceneId"] = summonScene
|
||
param["bossMode"] = BattleSubMode.WorldBoss
|
||
param["battleEndConds"] = battleEndConds
|
||
|
||
ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
|
||
end
|
||
|
||
function LuaGameMgr:EnterNewbie()
|
||
if ManagerContainer.FSMMgr:IsBossBattleState() then
|
||
return
|
||
end
|
||
|
||
if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILanuch) == false then
|
||
self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = 1})
|
||
end
|
||
|
||
-- local param ={}
|
||
-- param["sceneId"] = 2
|
||
-- param["bossMode"] = BattleSubMode.NewbieBoss
|
||
|
||
-- ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
|
||
|
||
-- self:ShowNewbieLoading()
|
||
self:EnterBattle(true)
|
||
end
|
||
|
||
-- TODO:在这里检查是否要播放剧情
|
||
function LuaGameMgr:CheckPlayCurrLevelStory(checkRecord)
|
||
local levelUniqueId = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
|
||
local storyCfg = ManagerContainer.CfgMgr:GetStoryCfgV2ByLevelId(levelUniqueId)
|
||
if storyCfg and storyCfg.Type == 0 then
|
||
if checkRecord then
|
||
local record = ManagerContainer.DataMgr.StoryData:IsStoryPlay(storyCfg.StoryId)
|
||
if record then
|
||
return
|
||
end
|
||
end
|
||
FrameTimer.New(function()
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayStory, storyCfg)
|
||
end, 5):Start()
|
||
end
|
||
--local levelCfgData = ManagerContainer.CfgMgr:GetLevelDataById(levelUniqueId)
|
||
-- if levelCfgData['DlgContentId'] and levelCfgData['DlgContentId'] > 0 then
|
||
-- local storyId = levelCfgData['DlgContentId']
|
||
-- local condition = levelUniqueId
|
||
-- LogError("LuaGameMgr:CheckPlayCurrLevelStory levelUniqueId="..levelUniqueId.." storyId="..storyId)
|
||
-- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.UISTORY_CONDITION_TRIGGER, Enum.UIStoryCondType.LevelStory, condition, storyId)
|
||
-- end
|
||
end
|
||
|
||
--- 播放剧情动画
|
||
local storyTimer = nil
|
||
function LuaGameMgr:PlayStory(storyType, storyId)
|
||
--[[
|
||
LogError("[LuaGameMgr] 1. PlayStory storyType="..storyType..", storyId="..storyId)
|
||
if storyType == Enum.StoryType.Dlg then
|
||
if storyId <= 0 then
|
||
storyId = self:GetCurStoryId()
|
||
end
|
||
if storyId then
|
||
ManagerContainer.UIStoryMgr:StartStoryByStoryId(tonumber(storyId)*10)
|
||
return
|
||
end
|
||
elseif storyType == Enum.StoryType.EnterNewMap then
|
||
if storyId <= 0 then
|
||
storyId = self:GetCurStoryId()
|
||
end
|
||
|
||
-- TODO: 把播放剧情的方式,好好梳理清楚!!!!!
|
||
-- TIP: here storyId is Chapter, config in LevelCfg.lua
|
||
-- 在StoryChapterCfg.lua中的DlgId中配置了真正的StoryId
|
||
-- local StoryChapterCfg = {
|
||
-- [1]={
|
||
-- ['Id']=1,
|
||
-- ['Name']='序章',
|
||
-- ['Content']='国王之怒',
|
||
-- ['Icon']='UIChapter/chapter_logo',
|
||
-- ['DlgId']=135,
|
||
-- ['CanSkip']=true,
|
||
-- ['ForceGuide']=1,
|
||
-- },
|
||
if storyId then
|
||
if storyTimer then
|
||
ManagerContainer.LuaTimerMgr:RemoveTimer(storyTimer)
|
||
end
|
||
storyTimer = ManagerContainer.LuaTimerMgr:AddTimer(500, 1, nil, function()
|
||
LogError("[LuaGameMgr] 2. PlayStory storyType="..storyType..", storyId="..storyId)
|
||
if ManagerContainer.StoryMgr:StartStoryChapterById(storyId) then
|
||
LogError("[LuaGameMgr] StartStoryChapterById success")
|
||
return
|
||
end
|
||
end, nil)
|
||
end
|
||
end
|
||
self:StopStory(storyType)
|
||
]]
|
||
self:StopStory(storyType)
|
||
end
|
||
|
||
function LuaGameMgr:GetCurStoryId()
|
||
local luaBattleMgr = ManagerContainer.LuaBattleMgr
|
||
if not luaBattleMgr then return nil end
|
||
local id = luaBattleMgr:GetCurLevelUniqueId()
|
||
if not id then return nil end
|
||
local cfgMgr = ManagerContainer.CfgMgr
|
||
if not cfgMgr then return nil end
|
||
local levelCfgData = cfgMgr:GetLevelDataById(id)
|
||
if not levelCfgData then return nil end
|
||
return levelCfgData.DlgContentId
|
||
end
|
||
|
||
function LuaGameMgr:StopStory(storyType)
|
||
LuaBattleBridge.CurStoryOver(storyType)
|
||
end
|
||
|
||
function LuaGameMgr:SetCreateRoleStatus(status)
|
||
self.IsCreateRole = status
|
||
end
|
||
|
||
function LuaGameMgr:OpenLoading(pageId,param)
|
||
self.loadingPageOk = false
|
||
ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
|
||
ManagerContainer.LuaUIMgr:Open(pageId,param)
|
||
end
|
||
|
||
function LuaGameMgr:OnLoadingPageOk()
|
||
self.loadingPageOk = true
|
||
ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
|
||
end
|
||
|
||
function LuaGameMgr:LoadCommonUIAssets()
|
||
ManagerContainer.ResMgr:LoadAssetGameObjects(Constants.EffectPath, ELoadType.OTHER, function()
|
||
end, unpack(Constant.Quality_FX))
|
||
|
||
ManagerContainer.ResMgr:InitCommonMats()
|
||
end
|
||
|
||
function LuaGameMgr:ShowNewbieLoading()
|
||
self.showNiewbieLoading = true
|
||
end
|
||
|
||
function LuaGameMgr:LuaSaveGameSpeed(speed)
|
||
self:SaveGameSpeed(speed)
|
||
local uid = ManagerContainer.DataMgr.UserData:GetUserId()
|
||
UnityEngine.PlayerPrefs.SetString(tostring(uid).."_GameSpeed",tostring(speed))
|
||
end
|
||
|
||
function LuaGameMgr:LoadGameSpeed()
|
||
local uid = ManagerContainer.DataMgr.UserData:GetUserId()
|
||
local speedStr = UnityEngine.PlayerPrefs.GetString(tostring(uid).."_GameSpeed")
|
||
if speedStr ~= nil and speedStr ~= "" then
|
||
self:SaveGameSpeed(tonumber(speedStr))
|
||
else
|
||
self:SaveGameSpeed(1)
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:PreloadFellowsModel()
|
||
if self.isPreloadedFellow == true then
|
||
return
|
||
end
|
||
|
||
local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
|
||
local fellows = System.Array.CreateInstance(Enum.TypeInfo.ActorData,#partnerDatas)
|
||
local idx = 0
|
||
for _,v in pairs(partnerDatas) do
|
||
if v ~= nil and not v.isBattle then
|
||
local fellowActor = ActorData.CreateFellowActor(v.configId)
|
||
fellows[idx] = fellowActor
|
||
idx = idx + 1
|
||
end
|
||
end
|
||
|
||
self:PreloadAllFellows(fellows)
|
||
self.isPreloadedFellow = true
|
||
end
|
||
|
||
function LuaGameMgr:UrlQuestionRewardResult(success)
|
||
if success then
|
||
ManagerContainer.DataMgr.UserData:SendQuestionReward()
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:UIBattle_streamer_act()
|
||
LogWarning("tzy_uibattle_streamer_act")
|
||
-- 获取 UIBattle 页面的视图控制器
|
||
local battlePage = ManagerContainer.LuaUIMgr:GetPage(Enum.UIPageName.UIBattle)
|
||
if battlePage and battlePage.MLuaTable then
|
||
local battleView = battlePage.MLuaTable
|
||
-- 调用 UIBattleView 中的流媒体动作方法
|
||
battleView:Set_Streamer_Act()
|
||
else
|
||
LogWarning("UIBattle page is not open or not found")
|
||
end
|
||
end
|
||
|
||
function LuaGameMgr:EnterLiveRoom(liveRoomId)
|
||
|
||
ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UILiveRoom)
|
||
self:OpenLoading(Enum.UIPageName.UILoading)
|
||
|
||
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Progress, 1)
|
||
ManagerContainer.LuaTimerMgr:AddTimer(2000, 1, nil, function()
|
||
ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Close)
|
||
end, nil)
|
||
|
||
|
||
end
|
||
|
||
|
||
return LuaGameMgr |