/// <summary> /// Constructor. Creates a new instance of Save and creates a blank string for the save data. /// <param name="graphics">The graphics manager must be passed in to establish the solar systems</param> /// </summary> public Save(GraphicsDeviceManager graphics) { this.graphics = graphics; p = new Player(graphics); s1 = new SolarSystem(p, 1, graphics, this); s2 = new SolarSystem(p, 2, graphics, this); s3 = new SolarSystem(p, 3, graphics, this); s1.ResetSolarSystem(1); s2.ResetSolarSystem(2); s3.ResetSolarSystem(3); saveData = ""; }
/// <summary> /// Updates items depending on state /// </summary> /// <param name="gameTime"></param> /// <param name="game"></param> public void Update(GameTime gameTime, Main game) { switch (CurrentState) { case GameState.Intro: intro.Update(gameTime); if (intro.Exit) { CurrentState = GameState.MainMenu; } break; case GameState.MainMenu: mainMenu.Update(gameTime, game); currentSong = 1; if (mainMenu.ButtonClicked("New Game")) { noSaveFound = false; player.ResetPlayer(); // resets all stats and attributes solarSystem1.ResetSolarSystem(1); solarSystem2.ResetSolarSystem(2); solarSystem3.ResetSolarSystem(3); combat.Reset(this); CurrentState = GameState.Level1; } else if (mainMenu.ButtonClicked("Load Game")) // calls Save functionality to load back a saved game state { if (thisGame.loadGame()) { player = thisGame.Player; SolarSystem[] restore = thisGame.SolarSystems; // retrieves the array of all 3 solar systems solarSystem1 = restore[0]; solarSystem2 = restore[1]; solarSystem3 = restore[2]; thisGame.updateSaveParams(player, solarSystem1, solarSystem2, solarSystem3); CurrentState = GameState.Level1; } else { noSaveFound = true; } } else if (mainMenu.ButtonClicked("Help")) { noSaveFound = false; mainMenu.Help = true; if (mainMenu.Help) { controls.BackClicked = false; CurrentState = GameState.Help; } } else if (mainMenu.ButtonClicked("Exit")) { noSaveFound = false; game.Exit(); } break; case GameState.Help: controls.Update(); if (controls.BackClicked) { CurrentState = GameState.MainMenu; } break; case GameState.Level1: solarSystem1.Update(gameTime, game.Content); currentSolarSystem = solarSystem1; currentSong = 1; // sets this to be the current solar system SolarSystemTestModeUpdate(1, smallerFont); if (solarSystem1.CombatMode) { combat = new Combat(solarSystem1.SelectedPlanet, player, graphics); combat.LoadContent(game.Content); solarSystem1.CombatMode = false; combat.Reset(this); if (solarSystem1.SelectedPlanet.Conquered) { combat.Victory = true; } CurrentState = GameState.Combat; } break; case GameState.Level2: solarSystem2.Update(gameTime, game.Content); currentSong = 1; currentSolarSystem = solarSystem2; SolarSystemTestModeUpdate(2, smallerFont); if (solarSystem2.CombatMode) { combat = new Combat(solarSystem2.SelectedPlanet, player, graphics); combat.LoadContent(game.Content); solarSystem2.CombatMode = false; combat.Reset(this); if (solarSystem2.SelectedPlanet.Conquered) { combat.Victory = true; } CurrentState = GameState.Combat; } break; case GameState.Level3: solarSystem3.Update(gameTime, game.Content); currentSong = 1; currentSolarSystem = solarSystem3; SolarSystemTestModeUpdate(3, smallerFont); if (solarSystem3.CombatMode) { combat = new Combat(solarSystem3.SelectedPlanet, player, graphics); combat.LoadContent(game.Content); solarSystem3.CombatMode = false; combat.Reset(this); if (solarSystem3.SelectedPlanet.Conquered) { combat.Victory = true; } CurrentState = GameState.Combat; } break; case GameState.Combat: currentSong = 2; combat.Update(this, gameTime, game.Content); if (quitCombat && combat.Planet.Level == 1) { CurrentState = GameState.Level1; } if (quitCombat && combat.Planet.Level == 2) { CurrentState = GameState.Level2; } if (quitCombat && combat.Planet.Level == 3) { CurrentState = GameState.Level3; } break; case GameState.Shop: shop.Update(gameTime, game.Content); if (shop.backButtonClicked()) { CurrentState = GameState.Level1; } else if (shop.EscapePressed()) { CurrentState = GameState.Shop; } SolarSystemTestModeUpdate(4, smallerFont); break; } }