public void Successfully_CountSuccessesAndFailures() { var node = new SuccessNode(greaterEqual5, equal1) { Expression = _4d6 }; EvaluateNode(node, Data(SuccessConf), 4, "4d6.success(>=5).failure(=1) => 4 + $5 + #1 + $6 => 1 success"); }
public void ThrowInvalidSuccess_WhenFailuresButNoSuccessConditions() { var node = new SuccessNode(null, equal1) { Expression = _4d6 }; EvaluateNode(node, Data(SuccessConf), DiceErrorCode.InvalidSuccess); }
public void Successfully_CountSuccesses() { var node = new SuccessNode(greaterEqual5, null) { Expression = _4d6 }; EvaluateNode(node, Data(SuccessConf), 4, "4d6.success(>=5) => 4 + $5 + 1 + $6 => 2 successes"); }
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"); }