public static void Prefix(ref float chance) { // ideally we'd want to check if (BattleTech.AttackDirector.AttackSequence.UseWeightedHitNumber == true) // but currently it is always true chance = HitChanceUtils.InverseRollCorrection(chance); }
public void HitChanceInversionIsCorrect() { for (float roll = 0; roll <= 1f; roll += 0.01f) { float corrected = GetCorrectedRoll(roll); float decorrected = HitChanceUtils.InverseRollCorrection(roll); float recorrected = GetCorrectedRoll(decorrected); float redecorrected = HitChanceUtils.InverseRollCorrection(corrected); Assert.Equal(roll, recorrected, 5); Assert.Equal(roll, redecorrected, 5); } }