Skip to content

Instantly share code, notes, and snippets.

@kg
Created November 3, 2019 02:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kg/452bc7c192e8a27fb2a2ed1693ba7b3e to your computer and use it in GitHub Desktop.
Save kg/452bc7c192e8a27fb2a2ed1693ba7b3e to your computer and use it in GitHub Desktop.
[ProtoContract]
public partial class GameState {
public const int MinimumFormatVersion = 29;
public const int CurrentFormatVersion = 30;
[ProtoMember(1, IsRequired = true)]
public readonly int FormatVersion;
[ProtoMember(2, IsRequired = true)]
public readonly MersenneTwister.Snapshot RNG;
[ProtoMember(3, IsRequired = true)]
internal readonly GameRulesManager.State RulesManager;
[ProtoMember(4, IsRequired = true)]
internal readonly List<RuleActivation> RuleActivations = new List<RuleActivation>();
[ProtoMember(5, IsRequired = true)]
internal readonly List<StringIntKvp> CachedDiceRolls = new List<StringIntKvp>();
[ProtoMember(6, IsRequired = true)]
internal readonly List<StringIntKvp> TurnLastActivated = new List<StringIntKvp>();
[ProtoMember(7, IsRequired = true, OverwriteList = true)]
public readonly List<Tile> Tiles = new List<Tile>();
[ProtoMember(8, IsRequired = true, OverwriteList = true)]
public readonly List<EntitySpawnerState> EntitySpawners = new List<EntitySpawnerState>();
[ProtoMember(9, IsRequired = true, OverwriteList = true)]
public readonly List<EntityState> Entities = new List<EntityState>();
[ProtoMember(10, IsRequired = true)]
public readonly PowersManager.State PowersManager;
[ProtoMember(11, IsRequired = true)]
// HACK
public /* readonly */ AIDirectorState AIDirector;
[ProtoMember(12, IsRequired = true)]
public readonly ModeState Modes;
[ProtoMember(13, IsRequired = true, AsReference = true, OverwriteList = true)]
public readonly List<CardType> CardTypes;
[ProtoMember(14, IsRequired = true)]
public readonly InventoryManager.State InventoryManager;
[ProtoMember(15, IsRequired=true, AsReference=true, OverwriteList=true, DynamicType=true)]
public readonly List<IItemType> ItemTypes;
[ProtoMember(16, IsRequired = true)]
public readonly int NextEntitySpawnerId;
[ProtoMember(17, IsRequired = true)]
public readonly int NextEntityId;
[ProtoMember(18, IsRequired = true)]
public /* readonly */ MusicManagerState MusicManager;
[ProtoMember(19, IsRequired = true)]
public BearTreatiesManager.State BearTreatiesManager;
[ProtoMember(20, IsRequired = true)]
public Modifiers Modifiers;
[ProtoMember(21, IsRequired = true)]
public LevitationManager.State LevitationManager;
[ProtoMember(22, IsRequired = true)]
public GoddessManager.State GoddessManager;
private GameState () {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment