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); }
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); }