public static float ComputeRawDamageOld( DamageTypes damageType, float magnitude, float armorEffectiveness, float absorbedDamageRatio) { float num1 = 0.0f; float factorByDamageType = CombatStatCalculator.GetBluntDamageFactorByDamageType(damageType); float num2 = magnitude * factorByDamageType; float num3 = num1 + num2 * (float)(100.0 / (100.0 + (double)armorEffectiveness)); float num4; switch (damageType) { case DamageTypes.Cut: num4 = Math.Max(0.0f, magnitude * (float)(1.0 - 0.600000023841858 * (double)armorEffectiveness / (20.0 + 0.400000005960464 * (double)armorEffectiveness))); break; case DamageTypes.Pierce: num4 = Math.Max(0.0f, magnitude * (float)(45.0 / (45.0 + (double)armorEffectiveness))); break; case DamageTypes.Blunt: label_5: return(num3 * absorbedDamageRatio); default: return(0.0f); } num3 += num4 * (1f - factorByDamageType); goto label_5; }
public static float ComputeRawDamageNew( DamageTypes damageType, float magnitude, float armorEffectiveness, float absorbedDamageRatio) { float num1 = 0.0f; float factorByDamageType = CombatStatCalculator.GetBluntDamageFactorByDamageType(damageType); float num2 = magnitude * factorByDamageType; float num3 = (float)(100.0 / (100.0 + (double)armorEffectiveness)); float num4 = num1 + num2 * num3; float num5; switch (damageType) { case DamageTypes.Cut: num5 = Math.Max(0.0f, (float)((double)magnitude * (double)num3 - (double)armorEffectiveness * 0.5)); break; case DamageTypes.Pierce: num5 = Math.Max(0.0f, (float)((double)magnitude * (double)num3 - (double)armorEffectiveness * 0.330000013113022)); break; case DamageTypes.Blunt: label_5: return(num4 * absorbedDamageRatio); default: return(0.0f); } num4 += num5 * (1f - factorByDamageType); goto label_5; }