Exemplo n.º 1
0
        public RollResult(IRollTarget target, SingleRollResult initialRollResult, SingleRollResult rerollResult, int modifierValue, int final)
        {
            Guard.Against.Null(target, nameof(target));
            Guard.Against.Null(initialRollResult, nameof(initialRollResult));

            InitialRollResult = initialRollResult;
            Target            = target;
            RerollResult      = rerollResult;
            ModifierValue     = modifierValue;
            Final             = final;
            IsSuccessful      = target.GetSuccessfulSides(initialRollResult.Die.TotalSides).Contains(final);
        }
Exemplo n.º 2
0
 public IEnumerable <int> GetRerollSides(Die die, IRollTarget target)
 {
     return(die.GetSides().Except(target.GetSuccessfulSides(die.TotalSides)));
 }
Exemplo n.º 3
0
 public bool RequiresReroll(SingleRollResult initial, IRollTarget target)
 {
     return(!target.GetSuccessfulSides(initial.Die.TotalSides).Contains(initial.SideRolled));
 }
Exemplo n.º 4
0
        public decimal CalculateProbability(Die die, IRollTarget target, IRollModifier modifier)
        {
            var failures = die.TotalSides - target.GetSuccessfulSides(die.TotalSides).Count();

            return(die.CalculateProbability(failures) * die.CalculateProbability(target.GetModifiedSuccessfulSides(die.TotalSides, modifier).Count()));
        }