示例#1
0
 private void LevelUp()
 {
     if (level > 0 && initialStatistics != null && UpgradeStatistics != null)
     {
         CurrentStatistics = TowerStatistics.Add(initialStatistics, UpgradeStatistics.Multiply(UpgradeStatistics, level));
     }
 }
        public static UpgradeStatistics Subtract(UpgradeStatistics a, UpgradeStatistics b)
        {
            UpgradeStatistics result = new UpgradeStatistics();

            result.HealthIncrease            = a.HealthIncrease - b.HealthIncrease;
            result.DamageIncrease            = a.DamageIncrease - b.DamageIncrease;
            result.SpeedIncrease             = a.SpeedIncrease - b.SpeedIncrease;
            result.AccuracyIncrease          = a.AccuracyIncrease - b.AccuracyIncrease;
            result.CriticalChanceIncrease    = a.CriticalChanceIncrease - b.CriticalChanceIncrease;
            result.CriticalHitScalarIncrease = a.CriticalHitScalarIncrease - b.CriticalHitScalarIncrease;
            result.RadiusIncrease            = a.RadiusIncrease - b.RadiusIncrease;

            return(result);
        }
        public static UpgradeStatistics Multiply(UpgradeStatistics a, float b)
        {
            UpgradeStatistics result = new UpgradeStatistics();

            result.HealthIncrease            = (int)(a.HealthIncrease * b);
            result.DamageIncrease            = (int)(a.DamageIncrease * b);
            result.SpeedIncrease             = a.SpeedIncrease * b;
            result.AccuracyIncrease          = a.AccuracyIncrease * b;
            result.CriticalChanceIncrease    = a.CriticalChanceIncrease * b;
            result.CriticalHitScalarIncrease = a.CriticalHitScalarIncrease * b;
            result.RadiusIncrease            = (int)(a.RadiusIncrease * b);

            return(result);
        }
示例#4
0
        public static TowerStatistics Add(TowerStatistics a, UpgradeStatistics b)
        {
            TowerStatistics result = new TowerStatistics();

            result.Health            = a.Health + b.HealthIncrease;
            result.Damage            = a.Damage + b.DamageIncrease;
            result.Speed             = a.Speed + b.SpeedIncrease;
            result.Accuracy          = a.Accuracy + b.AccuracyIncrease;
            result.CriticalChance    = a.CriticalChance + b.CriticalChanceIncrease;
            result.CriticalHitScalar = a.CriticalHitScalar + b.CriticalHitScalarIncrease;
            result.Radius            = a.Radius + b.RadiusIncrease;

            return(result);
        }