LuaGameMgr.lua 20 KB

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