12345678910111213141516171819202122232425 |
- {
- "code": "import { EventManager, EventType } from \"./EventManager\";\r\nimport { LevelManager } from \"./LevelManager\";\r\nimport { InputManager } from \"./InputManager\";\r\nimport { SceneManager } from \"./SceneManager\";\r\nimport { AudioControl, BgmType } from \"./AudioControl\";\r\nimport { GameState, AccountUser } from \"./DataMaker\";\r\nimport { WindowManager, WindowType } from \"../Window/WindowManager\";\r\nimport { PlayerAccount } from \"../Network/PlayerAccount\";\r\nimport { NetworkManager, PROTOCOLS } from \"../Network/NetworkManager\";\r\nimport { buildtype } from \"./Building\";\r\nimport { Barrier } from \"./Barrier\";\r\nimport { StandBuild } from \"./StandBuild\";\r\nimport { MonsterDataManager } from \"./MonsterDataManager\";\r\nimport { TtSdk } from \"../Util/TtSdk\";\r\nexport class GameManager {\r\n constructor() {\r\n this.curgamestate = GameState.None;\r\n this.play_id = 0;\r\n this.gamecount = 0;\r\n this.goldnum = 0;\r\n this.begin = false;\r\n GameManager.instance = this;\r\n console.log(\"游戏初始化...\");\r\n this.GameInit();\r\n }\r\n static get Instance() {\r\n return GameManager.instance;\r\n }\r\n static GetBuild(data) {\r\n var mbuild = new GameManager.builddic[data.type];\r\n mbuild.Init(data);\r\n mbuild.clear = false;\r\n return mbuild;\r\n }\r\n GameInit() {\r\n GameManager.builddic[buildtype.barrier] = Barrier;\r\n GameManager.builddic[buildtype.stand] = StandBuild;\r\n GameManager.builddic[buildtype.road] = Barrier;\r\n new MonsterDataManager();\r\n new LevelManager();\r\n new InputManager();\r\n this.RegEvent();\r\n this.ChangeGameState(GameState.Ready);\r\n }\r\n RegEvent() {\r\n EventManager.GameOn(GameState.Ready, this, this.GameReady);\r\n EventManager.GameOn(GameState.Idle, this, this.GameIdle);\r\n EventManager.GameOn(GameState.Start, this, this.OnGameStart);\r\n EventManager.GameOn(GameState.Playing, this, this.GamePlaying);\r\n EventManager.GameOn(GameState.Die, this, this.GameDie);\r\n EventManager.GameOn(GameState.Lose, this, this.GameLose);\r\n EventManager.GameOn(GameState.Win, this, this.GameWin);\r\n EventManager.GameOn(GameState.Over, this, this.GameOver);\r\n EventManager.On(EventType.GameIdle, this, this.OnGameIdle);\r\n }\r\n ChangeGameState(_state, args = null) {\r\n if (_state == this.curgamestate)\r\n return;\r\n this.curgamestate = _state;\r\n console.log(\"GameState:\", GameState[_state]);\r\n EventManager.GameTrigger(_state, args);\r\n }\r\n OnGameIdle() {\r\n this.ChangeGameState(GameState.Idle);\r\n }\r\n GameIdle() {\r\n }\r\n GameReady() {\r\n LevelManager.Instance.ReadyLevel();\r\n WindowManager.Instance.ShowWindow(WindowType.HomeWindow);\r\n this.ChangeGameState(GameState.Idle);\r\n this.begin = false;\r\n }\r\n BeginGame() {\r\n if (this.curgamestate == GameState.Idle && !this.begin) {\r\n this.begin = true;\r\n var agrs = [{ \"t\": PlayerAccount.CurrentAccount.ServerTime.toString() }];\r\n NetworkManager.Instance.HttpPostRequest(PROTOCOLS.game, agrs, new Laya.Handler(null, (_data) => {\r\n GameManager.Instance.play_id = _data.play_id;\r\n this.OnGameBegin();\r\n }), new Laya.Handler(this, (_data) => {\r\n this.begin = false;\r\n console.log(\"err\" + _data);\r\n }));\r\n }\r\n }\r\n OnGameBegin() {\r\n TtSdk.Instance.RecordStart();\r\n if (LevelManager.Instance.curlevel.leveldata.missiondata.trial) {\r\n WindowManager.Instance.ShowWindow(WindowType.TryOutWindow);\r\n }\r\n else {\r\n this.RecordLevelStart();\r\n this.ChangeGameState(GameState.Start);\r\n }\r\n }\r\n OnGameStart() {\r\n this.curlevel = LevelManager.Instance.curlevel;\r\n this.gamecount++;\r\n this.goldnum = 0;\r\n console.log(\"打开游戏中界面...\");\r\n this.ChangeGameState(GameState.Playing);\r\n }\r\n GamePlaying() {\r\n AudioControl.PlayBgm(BgmType.bgm);\r\n WindowManager.Instance.ShowWindow(WindowType.InGameWindow);\r\n }\r\n GameDie() {\r\n WindowManager.Instance.ClearPopViews();\r\n this.ChangeGameState(GameState.Lose);\r\n }\r\n GameLose() {\r\n console.log(\"打开结算界面(游戏失败)\");\r\n WindowManager.Instance.ShowWindow(WindowType.ResurrectionWindow);\r\n this.RecropLevelEnd(false);\r\n }\r\n GameWin() {\r\n console.log(\"打开结算界面(游戏胜利)\");\r\n WindowManager.Instance.ShowWindow(WindowType.SettlementWindow, true);\r\n this.RecropLevelEnd(true);\r\n LevelManager.teststage++;\r\n }\r\n GameOver(_win) {\r\n AudioControl.ClearAudio();\r\n this.RessetGame();\r\n }\r\n RessetGame() {\r\n if (this.curlevel)\r\n this.curlevel.Clear();\r\n var sce = SceneManager.mainscene;\r\n this.ChangeGameState(GameState.Ready);\r\n }\r\n RecordLevelStart() {\r\n if (!Laya.Browser.onWeiXin)\r\n return;\r\n this.curlevel = LevelManager.Instance.curlevel;\r\n var stageid = this.curlevel.levelid.toString();\r\n var stagename = this.curlevel.levelname;\r\n var useid = PlayerAccount.CurAccountData.UseId;\r\n }\r\n RecropLevelEnd(_win) {\r\n if (!Laya.Browser.onWeiXin)\r\n return;\r\n var stageid = this.curlevel.levelid.toString();\r\n var useid = PlayerAccount.CurAccountData.UseId;\r\n var stagename = LevelManager.Instance.curlevel.levelname;\r\n if (_win) {\r\n }\r\n else {\r\n var equipid = PlayerAccount.CurAccountData.GetUser(AccountUser.equip_themes)[1];\r\n }\r\n }\r\n}\r\nGameManager.builddic = [];\r\n",
- "references": [
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/EventManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/LevelManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/InputManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/SceneManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/LevelMaker.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/AssetManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/AudioControl.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/DataMaker.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/WindowManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Network/PlayerAccount.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Network/NetworkManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Building.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Barrier.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/StandBuild.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/MonsterDataManager.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/LocalConfig.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/InGameWindow.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Window/HomeWindow.ts",
- "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/TtSdk.ts"
- ]
- }
|