public virtual AttackResult TakeHit(AttackType attackType, int attackerAbility) { if (attackType == AttackType.Ranged) { attackerAbility -= AccuracyDefence; } var hits = DiceRoller.RollAtLeast(DiceShape.D10, Math.Max(Agility - attackerAbility, 2), 3); return((AttackResult)hits); }