public void Successfully_ApplyDisadvantage() { var node = new KeepNode(KeepType.Disadvantage, null) { Expression = _1d20 }; EvaluateNode(node, Data(AdvantageConf), 2, "1d20.disadvantage() => 2 + 19* => 2"); }
public void ThrowNegativeDice_WhenKeepingNegativeDice() { var node = new KeepNode(KeepType.KeepHigh, MinusOne) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), DiceErrorCode.NegativeDice); }
public void Successfully_KeepLowest() { var node = new KeepNode(KeepType.KeepLow, One) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), 4, "4d6.keepLowest(1) => 5* + 3* + 6!* + 1! => 1"); }
public void Successfully_ApplyAdvantage() { var node = new KeepNode(KeepType.Advantage, null) { Expression = _1d20 }; EvaluateNode(node, Data(AdvantageConf), 2, "1d20.advantage() => 2* + 19 => 19"); }
public void Successfully_DropLowest() { var node = new KeepNode(KeepType.DropLow, One) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), 4, "4d6.dropLowest(1) => 5 + 3 + 6! + 1!* => 14"); }
public void Successfully_DropHighest() { var node = new KeepNode(KeepType.DropHigh, One) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), 4, "4d6.dropHighest(1) => 5 + 3 + 6!* + 1! => 9"); }
public void Successfully_AllowKeepingZeroDice() { var node = new KeepNode(KeepType.KeepHigh, Zero) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), 4, "4d6.keepHighest(0) => 5* + 3* + 6!* + 1!* => 0"); }
public void Successfully_AllowDroppingMoreDiceThanExist() { var node = new KeepNode(KeepType.DropHigh, Five) { Expression = _4d6 }; EvaluateNode(node, Data(StatConf), 4, "4d6.dropHighest(5) => 5* + 3* + 6!* + 1!* => 0"); }
public void CountSuccesses_WhenKeepingSuccessDice() { var success = new SuccessNode(greaterEqual5, equal1) { Expression = _4d6 }; var node = new KeepNode(KeepType.DropLow, One) { Expression = success }; EvaluateNode(node, Data(StatConf), 4, "4d6.success(>=5).failure(=1).dropLowest(1) => $5 + 3 + $6 + 1* => 2 successes"); }
public void Successfully_IgnoreDroppedDice() { var drop = new KeepNode(KeepType.DropLow, One) { Expression = _4d6 }; var node = new SuccessNode(greaterEqual5, equal1) { Expression = drop }; EvaluateNode(node, Data(SuccessConf), 4, "4d6.dropLowest(1).success(>=5).failure(=1) => 4 + $5 + 1* + $6 => 2 successes"); }