// Update is called once per frame void Update() { List <Room> rooms = sceneMap.GetRooms(); Room currentRoom = sceneMap.CurrentRoom; switch (gameState) { case GameStates.Game: if (Input.GetKeyDown(KeyCode.P)) { gameState = GameStates.Paused; break; } switch (player.CurrentState) { case PlayerStates.Default: player.Move(); if (Input.GetMouseButton(0)) { player.Attacking = true; } player.AnimateAttack(); if (player.Attacking) { enemyManager.SwordCollisions(player, currentRoom); } //currentRoom.Walls(player); player.RotateVehicle(); player.StaminaUpdate(); break; } currentRoom.ActivateSpawners(); foreach (Room r in rooms) { if (r != currentRoom) { r.DeactivateSpawners(); } } enemyManager.UpdateEnemyList(rooms); enemyManager.MoveEnemy(player, rooms); enemyManager.EnemyCollisions(player, currentRoom); Vector3 pos = enemyManager.RemoveEnemies(rooms); powerUpManager.ChancePowerSpawn(pos); powerUpManager.HandleCollision(player); sceneMap.UpdatePlayerRoom(player); if (!pos.Equals(Vector3.positiveInfinity)) { player.Score += 100; } player.Score += (Time.deltaTime * 5); uIManager.UpdatePlayerData(player); break; case GameStates.GameOver: Debug.Log("you lost bro"); break; case GameStates.Paused: pauseMenu.SetActive(true); if (Input.GetKeyDown(KeyCode.P)) { pauseMenu.SetActive(false); gameState = GameStates.Game; } break; } if (gameState != GameStates.Paused) { gameState = player.IsDead() ? GameStates.GameOver : GameStates.Game; } }