Esempio n. 1
0
        /// <summary>
        /// Generates a save based on the given information
        /// </summary>
        /// <param name="player">The current PlayerController being used</param>
        /// <param name="Position">The position of the player</param>
        /// <param name="map">The current active map</param>
        /// <returns>Returns whether or not it was successful</returns>
        public static bool CreateSave(string SaveName, PlayerController player, Vector2 Position, BaseMap map, GameClass targetClass, Weapon equippedWeapon)
        {
            GAMESTATE prevGameState = RenderHandler.CurrentGameState;

            RenderHandler.CurrentGameState = GAMESTATE.PAUSED;

            GameSave newSave = new GameSave();

            newSave.PlayerPosition            = Position;
            newSave.ActiveMap                 = map.GetType().Namespace + "." + map.GetType().Name;
            newSave.player                    = (PlayerManager)player.Manager;
            newSave.player.Class              = targetClass;
            newSave.player.Inventory          = new InventoryManager();
            newSave.player.EquippedWeapon     = equippedWeapon;
            newSave.player.Inventory.Items[0] = equippedWeapon;

            // ------------------------------------------------------------------------------------------------

            File.WriteAllText(PathDirectory + SaveName, JsonConvert.SerializeObject(newSave, settings));
            RenderHandler.CurrentGameState = prevGameState;

            // ------------------------------------------------------------------------------------------------

            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Generates a new save based on the current game state.
        /// Do not run this method when the game is not active.
        /// </summary>
        /// <returns> Returns whether or not if it was successful</returns>
        public static bool CreateSave(string SaveName)
        {
            GAMESTATE prevGameState = RenderHandler.CurrentGameState;

            RenderHandler.CurrentGameState = GAMESTATE.PAUSED;

            GameSave newSave = new GameSave();

            PlayerController _player = Game.PlayerCharacter;

            BaseMap map = RenderHandler.selectedMap;

            newSave.PlayerPosition = new Vector2(_player.SpriteRectangle.X, _player.SpriteRectangle.Y);
            newSave.player         = (PlayerManager)_player.Manager;
            newSave.ActiveMap      = map.GetType().Namespace + "." + map.GetType().Name;


            // ------------------------------------------------------------------------------------------------

            File.WriteAllText(PathDirectory + SaveName, JsonConvert.SerializeObject(newSave, settings));
            RenderHandler.CurrentGameState = prevGameState;

            // ------------------------------------------------------------------------------------------------

            return(true);
        }