public static float ComputeRawDamageNew(DamageTypes damageType, float magnitude, float armorEffectiveness, float absorbedDamageRatio)
{
float num = 0f;
float bluntDamageFactorByDamageType = CombatStatCalculator.GetBluntDamageFactorByDamageType(damageType);
float num2 = magnitude * bluntDamageFactorByDamageType;
float num3 = 100f / (100f + armorEffectiveness);
num += num2 * num3;
if (damageType != DamageTypes.Blunt)
{
float num4;
if (damageType != DamageTypes.Cut)
{
if (damageType != DamageTypes.Pierce)
{
return 0f;
}
num4 = Math.Max(0f, magnitude * num3 - armorEffectiveness * 0.33f);
}
else
{
num4 = Math.Max(0f, magnitude * num3 - armorEffectiveness * 0.5f);
}
num += num4 * (1f - bluntDamageFactorByDamageType);
}
return num * absorbedDamageRatio;