namespace SoulstormReplayReader.Core.Domain; public sealed class GameSettings(int gameSettingsCount = 8) { private readonly Dictionary _settings = new(gameSettingsCount); public IReadOnlyDictionary Settings => _settings; public void AddSetting(string name, int value) { _settings.Add(name, value); } public int AiDifficulty => _settings["FDIA"]; // FDIA = AIDF = AI Difficulty public int StartResources => _settings["TSSR"]; // TSSR = RSST = Starting Resources public int LockTeams => _settings["MTKL"]; // MTKL = LKTM = Lock Teams public int CheatsOn => _settings["AEHC"]; // AEHC = CHEA = Cheats Enabled public int StartingLocation => _settings["COLS"]; // COLS = SLOC = Starting Location public int GameSpeed => _settings["DPSG"]; // DPSG = GSPD = Game Speed public int ResourceSharing => _settings["HSSR"]; // HSSR = RSSH = Resource Sharing public int ResourceRate => _settings["TRSR"]; // TRSR = RSRT = Resource Rate public int DisableFlyers => _settings["YLFN"]; // YLFN = NFLY = No flyers public bool IsQuickStart => StartResources == 1; public bool AreCheatsOn => CheatsOn == 1; public bool ArePositionsRandomized => StartingLocation == 0; }