namespace RolemasterDb.App.Features; public static class AttackResolutionCalculator { public static AttackResolutionSummary Resolve(int rawRoll, int offensiveBonus, int defensiveBonus) => new(rawRoll, offensiveBonus, defensiveBonus, rawRoll + offensiveBonus - defensiveBonus); public static bool IsFumble(AttackResolutionSummary resolution, AttackTableReference? table) => table is { FumbleMinRoll: int fumbleMinRoll, FumbleMaxRoll: int fumbleMaxRoll } && resolution.RawRoll >= fumbleMinRoll && resolution.RawRoll <= fumbleMaxRoll; }