From f028ea6dc555fc5192a96b00b8e96e90dbf6de55 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Mon, 9 Oct 2017 16:02:10 -0300 Subject: TODO tagging --- dice-lang/src/bjc/dicelang/dice/ExplodingDice.java | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) (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 6458f04..e891a1c 100644 --- a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java +++ b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java @@ -13,16 +13,13 @@ import java.util.function.Predicate; * @author Ben Culkin */ public class ExplodingDice implements DieList { - /* - * The source die to use. - */ + /* The source die to use. */ private final Die source; - /* - * The conditions for exploding. - */ + /* The conditions for exploding. */ private final Predicate explodeOn; private final String explodePattern; + /* Whether or not to apply a -1 penalty to explosions. */ private final boolean explodePenetrates; /** @@ -90,6 +87,7 @@ public class ExplodingDice implements DieList { long oldRes = res; final List resList = new LinkedList<>(); + resList.add(res); while (explodeOn.test(oldRes)) { oldRes = source.rollSingle(); @@ -101,25 +99,26 @@ public class ExplodingDice implements DieList { resList.add(oldRes); } - final long[] newRes = new long[resList.size() + 1]; - newRes[0] = res; + final long resArr[] = new long[resList.size()]; - int i = 1; - - for (final long rll : resList) { - newRes[i] = rll; - i += 1; + int i = 0; + for(long rll : resList) { + resArr[i] = rll; + i += 1; } - return newRes; + return resArr; } @Override public String toString() { + String penString = explodePenetrates ? "p" : ""; + String sourceString = source.toString(); + if (explodePattern == null) { - return source + (explodePenetrates ? "p" : "") + "!"; + return String.format("%s%s!", sourceString, penString); } - return source + (explodePenetrates ? "p" : "") + "!" + explodePattern; + return String.format("%s%s!%s", sourceString, penString, explodePattern); } } -- cgit v1.2.3