Пример #1
0
 public BombStats ValidateStats(BombStats stats)
 {
     if (CheckValidStats(stats) == false)
     {
         return(GetDefaultStats());
     }
     return(stats);
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }