public BombStats ValidateStats(BombStats stats) { if (CheckValidStats(stats) == false) { return(GetDefaultStats()); } return(stats); }
public static void WriteToStorage(BombStats statsToWrite, Type calculatorType) { IDataStorage storage = Settings.Storage; string key = calculatorType.Name; storage.SetFloat(key + "Radius", statsToWrite.Radius); storage.SetFloat(key + "Range", statsToWrite.Range); storage.SetFloat(key + "Speed", statsToWrite.Speed); storage.SetFloat(key + "Cooldown", statsToWrite.Cooldown); }
public static BombStats Load(Type calculatorType) { IDataStorage storage = Settings.Storage; var calculator = Activator.CreateInstance(calculatorType) as BombStatsCalculator; string key = calculatorType.Name; var stats = new BombStats(); BombStats defaultStats = calculator.GetDefaultStats(); stats.Radius = storage.GetFloat(key + "Radius", defaultStats.Radius); stats.Range = storage.GetFloat(key + "Range", defaultStats.Range); stats.Speed = storage.GetFloat(key + "Speed", defaultStats.Speed); stats.Cooldown = storage.GetFloat(key + "Cooldown", defaultStats.Cooldown); stats = calculator.ValidateStats(stats); WriteToStorage(stats, calculatorType); return(stats); }
public bool CheckValidStats(BombStats stats) { bool reset = false; float statsCount = 0f; statsCount += stats.Radius; reset |= stats.Radius <RadiusSetting.MinimumLimit || stats.Radius> RadiusSetting.MaximumLimit; statsCount += stats.Speed; reset |= stats.Speed <SpeedSetting.MinimumLimit || stats.Speed> SpeedSetting.MaximumLimit; statsCount += stats.Range; reset |= stats.Range <RangeSetting.MinimumLimit || stats.Range> RangeSetting.MaximumLimit; statsCount += stats.Cooldown; reset |= stats.Cooldown <CooldownSetting.MinimumLimit || stats.Cooldown> CooldownSetting.MaximumLimit; reset |= statsCount > MaxTotalStats; return(!reset); }
public bool CheckValidStats(BombStats stats) { bool reset = false; float statsCount = 0f; statsCount += stats.Radius; reset |= stats.Radius <RadiusSetting.MinimumLimit || stats.Radius> RadiusSetting.MaximumLimit; statsCount += stats.Radius; reset |= stats.Radius <RadiusSetting.MinimumLimit || stats.Radius> RadiusSetting.MaximumLimit; statsCount += stats.Radius; reset |= stats.Radius <RadiusSetting.MinimumLimit || stats.Radius> RadiusSetting.MaximumLimit; statsCount += stats.Radius; reset |= stats.Radius <RadiusSetting.MinimumLimit || stats.Radius> RadiusSetting.MaximumLimit; reset |= statsCount > MaxTotalStats; return(!reset); }