diff options
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java')
| -rw-r--r-- | dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java b/dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java index 885e02d..895a53c 100644 --- a/dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java +++ b/dice/src/main/java/bjc/dicelang/dicev2/ExplodingDieMod.java @@ -6,17 +6,42 @@ import java.util.ArrayList; import java.util.List; import java.util.function.LongPredicate; +/** + * An exploding die pool. + * @author Ben Culkin + * + */ public class ExplodingDieMod extends Die { + /** + * The pool of dice. + */ public final Die[] dice; + /** + * The predicate which says when to explode. + */ public final LongPredicate explode; + /** + * Should the explosion penetrate. + */ public final boolean penetrate; + /** + * Create an exploding die pool. + * @param explode The predicate for determining an explosion. + * @param dice The die pool. + */ public ExplodingDieMod(LongPredicate explode, Die... dice) { this(explode, false, dice); } + /** + * Create an exploding die pool. + * @param explode The predicate for determining an explosion. + * @param penetrate Whether the explosion should penetrate. + * @param dice The die pool. + */ public ExplodingDieMod(LongPredicate explode, boolean penetrate, Die... dice) { super(); @@ -27,6 +52,7 @@ public class ExplodingDieMod extends Die { this.penetrate = penetrate; } + @Override public long[] roll() { List<Long> lst = new ArrayList<>(dice.length); @@ -57,15 +83,18 @@ public class ExplodingDieMod extends Die { * It makes no sense to roll a 'single' exploding dice, since it * exploding adds another die. Use compounding dice for that case. */ + @Override public long rollSingle() { throw new UnsupportedOperationException("Exploding dice can't be rolled singly"); } /* :UnoptimizableDice */ + @Override public boolean canOptimize() { return false; } + @Override public long optimize() { throw new UnsupportedOperationException("Exploding dice can't be optimized"); } |
