LuaGameMgr.lua 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. local LuaGameMgr = class("LuaGameMgr", function()
  2. return GameMgr.Instance
  3. end)
  4. function LuaGameMgr:ctor()
  5. self:SetOnSceneLoadedLuaFunc(self.OnSceneLoadedInLua)
  6. self:SetLuaPlayStoryFunc(self.PlayStory)
  7. self:SdkInitFunc(self.SdkInitResult)
  8. self:SdkLoginFunc(self.SdkLoginResult)
  9. self:SdkLogoutFunc(self.SdkLogoutResult)
  10. self:SdkPayFunc(self.SdkPayResult)
  11. self:SdkQuestionFunc(self.UrlQuestionRewardResult)
  12. self:SdkCanEnterServerJudgeFunc(self.SdkCanEnterServerJudgeResult)
  13. self:SetSdkLoginFuncOtherArgLuaCB()
  14. self.newbieActors = nil
  15. self.IsCreateRole = false
  16. self.loadingPageOk = false
  17. self.IsActivationCodeMode = false
  18. self.showNiewbieLoading = false
  19. self.registerEvents = false
  20. self.isPreloadedFellow = false
  21. self.sdkInited = Enum.ParamState.None
  22. self.sdkLogined = Enum.ParamState.None
  23. self.token = ''
  24. self.openId = ''
  25. self.SDKTimeSP = ''
  26. self.platform = ''
  27. self.channelName = ''
  28. self.phonelatform = 0
  29. self.serverData = {}
  30. self.canEnterServerState = Enum.ParamState.None
  31. end
  32. function LuaGameMgr:SendBattleRecordReq(recordType,params)
  33. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_PLAYER_BATTLE_RECORD_REQ, {record_type = recordType, param_list = params})
  34. end
  35. function LuaGameMgr:OnSceneLoadedInLua(sceneType,mode)
  36. if sceneType == SceneType.CreateRoleScene then
  37. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.CreateRoleState.stateId)
  38. elseif sceneType == SceneType.NormalBattleScene then
  39. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BattleState.stateId)
  40. elseif sceneType == SceneType.GuildLobbyScene then
  41. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.GuildLobbyState.stateId)
  42. elseif sceneType == SceneType.TowerBattleScene then
  43. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.DojoState.stateId, mode)
  44. elseif sceneType == SceneType.BossBattleScene then
  45. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.BossBattleState.stateId,mode)
  46. elseif sceneType == SceneType.TimeBattleScene then
  47. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.TimeBattleState.stateId,mode)
  48. end
  49. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Loading_Close)
  50. end
  51. function LuaGameMgr:Destroy()
  52. if tolua.getpeer(self) ~= nil then
  53. tolua.setpeer(self, nil)
  54. end
  55. end
  56. function LuaGameMgr:SdkInitResult(success,platformName)
  57. self.platform = platformName
  58. LogError("========================"..platformName)
  59. local getSStatePf = self:GetPlatform(platformName)
  60. _GameMain:CheckServerState(getSStatePf)
  61. self.sdkInited = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
  62. end
  63. function LuaGameMgr:SdkLoginResult(success,openId,token,isSwitchAccount)
  64. local lastSdkLogined = self.sdkLogined
  65. self.sdkLogined = (success and Enum.ParamState.Success or Enum.ParamState.Fail)
  66. self.token = token or ''
  67. self.openId = openId or ''
  68. if success then
  69. if isSwitchAccount then
  70. if lastSdkLogined == Enum.ParamState.Success then
  71. if ManagerContainer.DataMgr.UserData:IsInitedOver() then
  72. ManagerContainer.DataMgr.UserData:SDKExitGame()
  73. end
  74. self:ClearServerData()
  75. self:ReLogin()
  76. end
  77. end
  78. end
  79. end
  80. function LuaGameMgr:SdkLogoutResult()
  81. if ManagerContainer.DataMgr.UserData:IsInitedOver() then
  82. ManagerContainer.DataMgr.UserData:SDKExitGame()
  83. end
  84. local lastSdkLogined = self.sdkLogined
  85. self.sdkLogined = Enum.ParamState.Fail
  86. self.token = ''
  87. self.openId = ''
  88. if lastSdkLogined == Enum.ParamState.Success then
  89. self:ClearServerData()
  90. self:ReLogin()
  91. end
  92. end
  93. function LuaGameMgr:SdkPayResult(success)
  94. ManagerContainer.PayMgr:SdkPayResult(success)
  95. end
  96. function LuaGameMgr:InitServerData(id, name, ip, ports, state)
  97. self.serverData.id = id
  98. self.serverData.name = name
  99. self.serverData.ip = ip
  100. self.serverData.ports = ports
  101. self.serverData.state = state
  102. self.serverData.portidx = nil
  103. end
  104. function LuaGameMgr:SetServerID(id)
  105. --LogError('============id===='..id);
  106. UnityEngine.PlayerPrefs.SetInt("ServerID",id)
  107. end
  108. function LuaGameMgr:GetServerID()
  109. return UnityEngine.PlayerPrefs.GetInt("ServerID") or -1
  110. end
  111. -- 困難模式DifficultMode
  112. function LuaGameMgr:SetDifficultMode(mode)
  113. --LogError('============id===='..id);
  114. UnityEngine.PlayerPrefs.SetInt("DifficultMode",mode)
  115. end
  116. -- <= 0 普通 ;> 0 困難
  117. function LuaGameMgr:GetDifficultMode()
  118. return UnityEngine.PlayerPrefs.GetInt("DifficultMode") or -1
  119. end
  120. function LuaGameMgr:ClearServerData()
  121. self.serverData = {}
  122. end
  123. function LuaGameMgr:ComposeCommonServerInfo(url)
  124. local openId = self.openId
  125. if openId and openId ~= '' then
  126. url = url .. '&openid=' .. tostring(openId)
  127. end
  128. local platform = self.platform
  129. if platform and platform ~= '' then
  130. url = url .. '&platform=' .. tostring(platform)
  131. end
  132. local subplatform = self.channelName
  133. if subplatform and subplatform ~= '' then
  134. url = url .. '&sub_platform=' .. tostring(subplatform)
  135. end
  136. local resVer = self.ResVersion
  137. if resVer and resVer ~= '' then
  138. url = url .. '&resver=' .. tostring(resVer)
  139. end
  140. url = url .. '&timesamp=' .. tostring(os.time())
  141. return url
  142. end
  143. --进入创建角色场景
  144. function LuaGameMgr:EnterCreateRole(activedCode)
  145. self.IsCreateRole = true
  146. self.IsActivationCodeMode = activedCode
  147. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_ENTER_CREATE_ROLE)
  148. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.CreateRoleScene)
  149. end
  150. --进入战斗
  151. function LuaGameMgr:EnterBattle(first)
  152. if ManagerContainer.FSMMgr:IsBattleState() then
  153. --ManagerContainer.LuaUIMgr:HideAllPagesExceptId(Enum.UIPageName.UIBattle)
  154. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIBattle)
  155. return;
  156. end
  157. if first == false then
  158. local nloadingId = 3
  159. if self.showNiewbieLoading then
  160. nloadingId = 2
  161. self.showNiewbieLoading = false
  162. end
  163. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
  164. end
  165. --ManagerContainer.LuaActorAttributeMgr:SyncServerActorDataToLocal()
  166. --清空断线后 返回巡游 残留的远征BUFF
  167. ManagerContainer.LuaActorDataMgr:ResetData()
  168. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.NormalBattleScene,first)
  169. end
  170. --进入公会大厅
  171. function LuaGameMgr:EnterGuildLobby()
  172. if ManagerContainer.FSMMgr:IsGuildLobbyState() then
  173. return
  174. end
  175. self:OpenLoading(Enum.UIPageName.UILoading)
  176. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.GuildLobbyScene)
  177. end
  178. --进入道场
  179. function LuaGameMgr:EnterDojo(sceneName, ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
  180. if ManagerContainer.FSMMgr:IsDojoState() then
  181. return;
  182. end
  183. local param = {}
  184. param["mode"] = BattleSubMode.Arena
  185. param["sceneName"] = sceneName
  186. param["ourActors"] = ourActors
  187. param["enemyActors"] = enemyActors
  188. param["battleEndConds"] = battleEndConds
  189. param["OurBattleMarks"] = OurMarks
  190. param["IsPresspoint"] = IsPresspoint
  191. param["nPresspoint"] = nPresspoint
  192. -- self:OpenLoading(Enum.UIPageName.UILoading)
  193. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  194. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  195. end
  196. function LuaGameMgr:EnterHundredDojo(sceneName, ourActors, enemyActors, maxFightingTime,OurMarks,IsPresspoint,nPresspoint, battleEndConds)
  197. if ManagerContainer.FSMMgr:IsDojoState() then
  198. return;
  199. end
  200. local param = {}
  201. param["mode"] = BattleSubMode.HundredDojo
  202. param["sceneName"] = sceneName
  203. param["ourActors"] = ourActors
  204. param["enemyActors"] = enemyActors
  205. param["maxFightingTime"] = maxFightingTime
  206. param["OurBattleMarks"] = OurMarks
  207. param["IsPresspoint"] = IsPresspoint
  208. param["nPresspoint"] = nPresspoint
  209. param["battleEndConds"] = battleEndConds
  210. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  211. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  212. end
  213. --工会战
  214. function LuaGameMgr:EnterGvGBattle(sceneName, ourActors, enemyActors, maxFightingTime, battleEndConds,OurMarksDatas,EnemyMarksDatas,IsPresspoint,nPresspoint)
  215. if ManagerContainer.FSMMgr:IsDojoState() then
  216. return;
  217. end
  218. local param = {}
  219. param["mode"] = BattleSubMode.GvG
  220. param["sceneName"] = sceneName
  221. param["ourActors"] = ourActors
  222. param["enemyActors"] = enemyActors
  223. param["maxFightingTime"] = maxFightingTime
  224. param["battleEndConds"] = battleEndConds
  225. param["OurBattleMarks"] = OurMarksDatas
  226. param["EnemyBattleMarks"] = EnemyMarksDatas
  227. param["IsPresspoint"] = IsPresspoint
  228. param["nPresspoint"] = nPresspoint
  229. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  230. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  231. end
  232. function LuaGameMgr:EnterVoyageBattle(sceneName, ourActors, enemyActors, maxFightingTime, ourMarks,IsPresspoint,nPresspoint, battleEndConds)
  233. if ManagerContainer.FSMMgr:IsDojoState() then
  234. return;
  235. end
  236. local param = {}
  237. param["mode"] = BattleSubMode.Voyage
  238. param["sceneName"] = sceneName
  239. param["ourActors"] = ourActors
  240. param["enemyActors"] = enemyActors
  241. param["maxFightingTime"] = maxFightingTime
  242. param["battleEndConds"] = battleEndConds
  243. param["OurBattleMarks"] = ourMarks
  244. param["IsPresspoint"] = IsPresspoint
  245. param["nPresspoint"] = nPresspoint
  246. self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  247. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  248. end
  249. -- 进入资源副本战斗
  250. function LuaGameMgr:EnterResourceBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds)
  251. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  252. return
  253. end
  254. self:OpenLoading(Enum.UIPageName.UILoading)
  255. local param = {}
  256. param["mode"] = BattleSubMode.Resource
  257. param["sceneName"] = sceneName
  258. param["bgmMusic"] = bgmMusic
  259. param["maxFightingTime"] = maxFightingTime
  260. param["ourActors"] = ourActors
  261. param["enemyActors"] = enemyActors
  262. param["battleEndConds"] = battleEndConds
  263. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  264. end
  265. -- 进入公会狩猎boss战斗
  266. function LuaGameMgr:EnterGuildHuntBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
  267. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  268. return
  269. end
  270. self:OpenLoading(Enum.UIPageName.UILoading)
  271. local param = {}
  272. param["mode"] = BattleSubMode.Guild
  273. param["sceneName"] = sceneName
  274. param["bgmMusic"] = bgmMusic
  275. param["maxFightingTime"] = maxFightingTime
  276. param["ourActors"] = ourActors
  277. param["enemyActors"] = enemyActors
  278. param["battleEndConds"] = battleEndConds
  279. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  280. end
  281. -- 进入公会魔王boss战斗
  282. function LuaGameMgr:EnterGuildHuntExBattle(sceneName, bgmMusic, maxFightingTime, ourActors, enemyActors, battleEndConds)
  283. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  284. return
  285. end
  286. self:OpenLoading(Enum.UIPageName.UILoading)
  287. local param = {}
  288. param["mode"] = BattleSubMode.GuildEx
  289. param["sceneName"] = sceneName
  290. param["bgmMusic"] = bgmMusic
  291. param["maxFightingTime"] = maxFightingTime
  292. param["ourActors"] = ourActors
  293. param["enemyActors"] = enemyActors
  294. param["battleEndConds"] = battleEndConds
  295. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  296. end
  297. -- 进入爬塔战斗
  298. function LuaGameMgr:EnterClimbingTowerBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,battleEndConds,recordStr,battleFactors,replayername)
  299. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  300. return
  301. end
  302. self:OpenLoading(Enum.UIPageName.UILoading)
  303. local param = {}
  304. param["mode"] = BattleSubMode.ClimbingTower
  305. param["sceneName"] = sceneName
  306. param["bgmMusic"] = bgmMusic
  307. param["maxFightingTime"] = maxFightingTime
  308. param["ourActors"] = ourActors
  309. param["enemyActors"] = enemyActors
  310. param["battleEndConds"] = battleEndConds
  311. param["battleRecordStr"] = recordStr
  312. param["battleFactors"] = battleFactors
  313. if param["battleRecordStr"] ~= nil then
  314. param["replayername"] = replayername
  315. end
  316. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  317. end
  318. --PVP 爬塔
  319. function LuaGameMgr:EnterClimbingTowerBattlePvP(sceneName, bgmMusic,maxFightingTime,ourActors, enemyActors,OurMarks, IsPresspoint,nPresspoint,battleEndConds)
  320. if ManagerContainer.FSMMgr:IsDojoState() then
  321. return;
  322. end
  323. self:OpenLoading(Enum.UIPageName.UILoading)
  324. local param = {}
  325. param["mode"] = BattleSubMode.PvPClimbinglower
  326. param["sceneName"] = sceneName
  327. param["bgmMusic"] = bgmMusic
  328. param["ourActors"] = ourActors
  329. param["enemyActors"] = enemyActors
  330. param["maxFightingTime"] = maxFightingTime
  331. param["OurBattleMarks"] = OurMarks
  332. param["IsPresspoint"] = IsPresspoint
  333. param["nPresspoint"] = nPresspoint
  334. param["battleEndConds"] = battleEndConds
  335. --self:OpenLoading(Enum.UIPageName.UIDojoMatch, param)
  336. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TowerBattleScene, param)
  337. end
  338. -- 进入远征之门战斗
  339. function LuaGameMgr:EnterExpeditionBattle(sceneName,bgmMusic,maxFightingTime,ourActors,enemyActors,nloadingId,serverActorData,battleEndConds,RestoreSp)
  340. if ManagerContainer.FSMMgr:IsTimeBattleState() then
  341. return
  342. end
  343. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = nloadingId})
  344. local param = {}
  345. param["mode"] = BattleSubMode.Expedition
  346. param["sceneName"] = sceneName
  347. param["bgmMusic"] = bgmMusic
  348. param["maxFightingTime"] = maxFightingTime
  349. param["ourActors"] = ourActors
  350. param["enemyActors"] = enemyActors
  351. param["battleEndConds"] = battleEndConds
  352. param["serverActorData"] = serverActorData
  353. param['RestoreSp'] = RestoreSp
  354. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.TimeBattleScene, param)
  355. end
  356. --- 进入世界boss
  357. ---@param actorDatas Array<ActorData> 进入挑战的其它玩家信息
  358. ---@param summonId boss等配置Id
  359. ---@param summonScene 战斗场景配置Id
  360. function LuaGameMgr:EnterWorldBoss(actorDatas, summonId, summonScene,battleEndConds)
  361. if ManagerContainer.FSMMgr:IsBossBattleState() then
  362. return
  363. end
  364. self:OpenLoading(Enum.UIPageName.UILoading)
  365. local param ={}
  366. param["actors"] = actorDatas
  367. param["bossId"] = summonId
  368. param["sceneId"] = summonScene
  369. param["bossMode"] = BattleSubMode.WorldBoss
  370. param["battleEndConds"] = battleEndConds
  371. ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
  372. end
  373. function LuaGameMgr:EnterNewbie()
  374. if ManagerContainer.FSMMgr:IsBossBattleState() then
  375. return
  376. end
  377. if ManagerContainer.LuaUIMgr:HasOpenPage(Enum.UIPageName.UILanuch) == false then
  378. self:OpenLoading(Enum.UIPageName.UILoading,{loadingId = 1})
  379. end
  380. -- local param ={}
  381. -- param["sceneId"] = 2
  382. -- param["bossMode"] = BattleSubMode.NewbieBoss
  383. -- ManagerContainer.FSMMgr:ChangeState(Enum.StateEnum.LoadingState.stateId, SceneType.BossBattleScene, param)
  384. -- self:ShowNewbieLoading()
  385. self:EnterBattle(true)
  386. end
  387. --- 播放剧情动画
  388. function LuaGameMgr:PlayStory(storyType, storyId)
  389. if storyType == Enum.StoryType.Dlg then
  390. if storyId <= 0 then
  391. storyId = self:GetCurStoryId()
  392. end
  393. if storyId then
  394. ManagerContainer.UIStoryMgr:StartStoryByStoryId(storyId)
  395. return
  396. end
  397. elseif storyType == Enum.StoryType.EnterNewMap then
  398. if storyId <= 0 then
  399. storyId = self:GetCurStoryId()
  400. end
  401. if storyId then
  402. if ManagerContainer.StoryMgr:StartStoryChapterById(storyId) then
  403. return
  404. end
  405. end
  406. end
  407. self:StopStory(storyType)
  408. end
  409. function LuaGameMgr:GetCurStoryId()
  410. local luaBattleMgr = ManagerContainer.LuaBattleMgr
  411. if not luaBattleMgr then return nil end
  412. local id = luaBattleMgr:GetCurLevelUniqueId()
  413. if not id then return nil end
  414. local cfgMgr = ManagerContainer.CfgMgr
  415. if not cfgMgr then return nil end
  416. local levelCfgData = cfgMgr:GetLevelDataById(id)
  417. if not levelCfgData then return nil end
  418. return levelCfgData.DlgContentId
  419. end
  420. function LuaGameMgr:StopStory(storyType)
  421. LuaBattleBridge.CurStoryOver(storyType)
  422. end
  423. function LuaGameMgr:SetCreateRoleStatus(status)
  424. self.IsCreateRole = status
  425. end
  426. function LuaGameMgr:OpenLoading(pageId,param)
  427. self.loadingPageOk = false
  428. ManagerContainer.LuaEventMgr:RegisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
  429. ManagerContainer.LuaUIMgr:Open(pageId,param)
  430. end
  431. function LuaGameMgr:OnLoadingPageOk()
  432. self.loadingPageOk = true
  433. ManagerContainer.LuaEventMgr:UnregisterEvent(UIEventNames.EID_Loaded_Page_OK, self, self.OnLoadingPageOk)
  434. end
  435. function LuaGameMgr:LoadCommonUIAssets()
  436. ManagerContainer.ResMgr:LoadAssetGameObjects(Constants.EffectPath, ELoadType.OTHER, function()
  437. end, unpack(Constant.Quality_FX))
  438. ManagerContainer.ResMgr:InitCommonMats()
  439. end
  440. function LuaGameMgr:ShowNewbieLoading()
  441. self.showNiewbieLoading = true
  442. end
  443. function LuaGameMgr:LuaSaveGameSpeed(speed)
  444. self:SaveGameSpeed(speed)
  445. local uid = ManagerContainer.DataMgr.UserData:GetUserId()
  446. UnityEngine.PlayerPrefs.SetString(tostring(uid).."_GameSpeed",tostring(speed))
  447. end
  448. function LuaGameMgr:LoadGameSpeed()
  449. local uid = ManagerContainer.DataMgr.UserData:GetUserId()
  450. local speedStr = UnityEngine.PlayerPrefs.GetString(tostring(uid).."_GameSpeed")
  451. if speedStr ~= nil and speedStr ~= "" then
  452. self:SaveGameSpeed(tonumber(speedStr))
  453. else
  454. self:SaveGameSpeed(1)
  455. end
  456. end
  457. function LuaGameMgr:PreloadFellowsModel()
  458. if self.isPreloadedFellow == true then
  459. return
  460. end
  461. local partnerDatas = ManagerContainer.DataMgr.PartnerData:GetPartnerDatas()
  462. local fellows = System.Array.CreateInstance(Enum.TypeInfo.ActorData,#partnerDatas)
  463. local idx = 0
  464. for _,v in pairs(partnerDatas) do
  465. if v ~= nil and not v.isBattle then
  466. local fellowActor = ActorData.CreateFellowActor(v.configId)
  467. fellows[idx] = fellowActor
  468. idx = idx + 1
  469. end
  470. end
  471. self:PreloadAllFellows(fellows)
  472. self.isPreloadedFellow = true
  473. end
  474. function LuaGameMgr:UrlQuestionRewardResult(success)
  475. if success then
  476. ManagerContainer.DataMgr.UserData:SendQuestionReward()
  477. end
  478. end
  479. function LuaGameMgr:SdkCanEnterServerJudgeResult(value)
  480. self.canEnterServerState = (value == '1' and Enum.ParamState.Success or Enum.ParamState.Fail)
  481. end
  482. function LuaGameMgr:SetSdkLoginFuncOtherArgLuaCB()
  483. if self.SdkLoginFuncOtherArg ~= nil then
  484. self:SdkLoginFuncOtherArg(self.SetLoginFuncOtherArg)
  485. end
  486. end
  487. function LuaGameMgr:SetLoginFuncOtherArg(arg)
  488. self.SDKTimeSP = arg
  489. end
  490. function LuaGameMgr:GetPlatform(platform)
  491. local IosP = {"IOS","ios","Ios","IOs","iOS"}
  492. --local isIos = false
  493. for _, value in pairs(IosP) do
  494. local s,e = string.find(platform,value)
  495. if s then
  496. return "IOS"
  497. end
  498. end
  499. return "Android"
  500. end
  501. return LuaGameMgr