26 lines
1.2 KiB
C#

namespace SoulstormReplayReader.Core.Domain;
public sealed class GameSettings(int gameSettingsCount = 8)
{
private readonly Dictionary<string, int> _settings = new(gameSettingsCount);
public IReadOnlyDictionary<string, int> 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;
}