Advertisement
WeirdBeardDev

SaveData

Jun 28th, 2020
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.13 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using SpaceMonkeys.Rpg;
  3. using SpaceMonkeys.Core;
  4.  
  5. namespace SpaceMonkeys.Idle.DungeonExplorer
  6. {
  7.     [System.Serializable]
  8.     public class SaveData
  9.     {
  10.         /* This represents all the data needed for saving/loading the game
  11.         ** Need to save:
  12.         ** All exploration zones - which captures all items within
  13.         ** All adventurers - not created yet
  14.         ** All metrics and stats - in progress
  15.         *****
  16.         ** v0.1 - starter save file format
  17.         ** v0.2 - added PlayTime for tracking offline progression
  18.         */
  19.         #region Members
  20.         public float SaveFormat = 0.2f;
  21.         public List<ZoneData> Zones = new List<ZoneData>();  // Exploration Zones
  22.         public PlayTime GameTime = default;
  23.         #endregion Members
  24.  
  25.         #region Ctors
  26.         public SaveData() { } // for loading a game
  27.         public SaveData(List<ExplorationZone> zones) // for saving a game
  28.         {
  29.             foreach (var item in zones)
  30.             {
  31.                 Zones.Add((ZoneData)item);
  32.             }
  33.             // TODO add GameTime processing
  34.             GameTime = MetricsManager.Instance.GameTime;
  35.         }
  36.         #endregion Ctors
  37.     }
  38.  
  39.     [System.Serializable]
  40.     public class ZoneData
  41.     {
  42.         #region Members
  43.         public ExplorationZoneType ZoneType;
  44.         public bool IsZoneActive;
  45.         public List<Quest> Quests = new List<Quest>();
  46.         public ResearchManager ResearchTree = default;
  47.         public Stat MaxLocations;
  48.         #endregion Members
  49.  
  50.         #region Ctors
  51.         public ZoneData(ExplorationZone data)
  52.         {
  53.             ZoneType = data.ZoneType;
  54.             IsZoneActive = data.IsZoneActive;
  55.             foreach (var item in data.Locations)
  56.             {
  57.                 Quests.Add(item.Quest);
  58.             }
  59.             ResearchTree = data.ResearchTree;
  60.             MaxLocations = data.MaxLocations;
  61.         }
  62.         #endregion Ctors
  63.  
  64.         #region Operators
  65.         public static explicit operator ZoneData(ExplorationZone zone) => new ZoneData(zone);
  66.         #endregion Operators
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement