Esempio n. 1
0
 /// <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 = "";
 }
Esempio n. 2
0
        /// <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;
            }
        }