From 9139064c95f6c9c4f7ba1d0aea21e2f5233ad188 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 6 Mar 2017 14:15:03 -0500 Subject: Formatting/Documentation --- dice-lang/src/bjc/dicelang/dice/ExplodingDice.java | 43 +++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'dice-lang/src/bjc/dicelang/dice/ExplodingDice.java') diff --git a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java index 6ab9902..59e739e 100644 --- a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java +++ b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java @@ -4,21 +4,58 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Predicate; +/** + * An exploding die. + * + * Represents a die list that keeps getting another added die as long as a + * condition is met. + * + * @author Ben Culkin + */ public class ExplodingDice implements DieList { + /* + * The source die to use. + */ private Die source; + /* + * The conditions for exploding. + */ private Predicate explodeOn; private String explodePattern; private boolean explodePenetrates; + /** + * Create a new exploding die. + * + * @param src The source die for exploding. + * @param explode The condition to explode on. + */ public ExplodingDice(Die src, Predicate explode) { this(src, explode, null, false); } + /** + * Create a new exploding die that may penetrate. + * + * @param src The source die for exploding. + * @param explode The condition to explode on. + * @param penetrate Whether or not for explosions to penetrate (-1 to + * exploded die). + */ public ExplodingDice(Die src, Predicate explode, boolean penetrate) { this(src, explode, null, penetrate); } + /** + * Create a new exploding die that may penetrate. + * + * @param src The source die for exploding. + * @param explode The condition to explode on. + * @param penetrate Whether or not for explosions to penetrate (-1 to + * exploded die). + * @param patt The string the condition came from, for printing. + */ public ExplodingDice(Die src, Predicate explode, String patt, boolean penetrate) { source = src; @@ -27,14 +64,17 @@ public class ExplodingDice implements DieList { explodePenetrates = penetrate; } + @Override public boolean canOptimize() { return false; } + @Override public long[] optimize() { return new long[0]; } + @Override public long[] roll() { long res = source.roll(); long oldRes = res; @@ -60,6 +100,7 @@ public class ExplodingDice implements DieList { return newRes; } + @Override public String toString() { if(explodePattern == null) { return source + (explodePenetrates ? "p" : "") + "!"; @@ -67,4 +108,4 @@ public class ExplodingDice implements DieList { return source + (explodePenetrates ? "p" : "") + "!" + explodePattern; } } -} \ No newline at end of file +} -- cgit v1.2.3