From c74cb8eaf454d9243b75e3770001d8d128356b28 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Sun, 23 Jul 2017 22:58:58 -0300 Subject: Format --- dice-lang/src/bjc/dicelang/dice/CompoundDie.java | 4 +- .../src/bjc/dicelang/dice/CompoundingDie.java | 4 +- dice-lang/src/bjc/dicelang/dice/DiceBox.java | 53 ++++++++++++++-------- dice-lang/src/bjc/dicelang/dice/DieExpression.java | 4 +- dice-lang/src/bjc/dicelang/dice/ExplodingDice.java | 14 ++++-- dice-lang/src/bjc/dicelang/dice/MathDie.java | 10 +++- dice-lang/src/bjc/dicelang/dice/SimpleDie.java | 4 +- dice-lang/src/bjc/dicelang/dice/SimpleDieList.java | 4 +- 8 files changed, 62 insertions(+), 35 deletions(-) (limited to 'dice-lang/src/bjc/dicelang/dice') diff --git a/dice-lang/src/bjc/dicelang/dice/CompoundDie.java b/dice-lang/src/bjc/dicelang/dice/CompoundDie.java index 7cd8fcf..a81322c 100644 --- a/dice-lang/src/bjc/dicelang/dice/CompoundDie.java +++ b/dice-lang/src/bjc/dicelang/dice/CompoundDie.java @@ -9,8 +9,8 @@ public class CompoundDie implements Die { /* * The dice that form this die */ - private final Die left; - private final Die right; + private final Die left; + private final Die right; /** * Create a new compound die. diff --git a/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java b/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java index 73d910a..1bd478f 100644 --- a/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java +++ b/dice-lang/src/bjc/dicelang/dice/CompoundingDie.java @@ -13,8 +13,8 @@ import java.util.function.Predicate; public class CompoundingDie implements Die { private final Die source; - private final Predicate compoundOn; - private final String compoundPattern; + private final Predicate compoundOn; + private final String compoundPattern; /** * Create a new compounding die with no pattern. diff --git a/dice-lang/src/bjc/dicelang/dice/DiceBox.java b/dice-lang/src/bjc/dicelang/dice/DiceBox.java index c956977..afb2ea3 100644 --- a/dice-lang/src/bjc/dicelang/dice/DiceBox.java +++ b/dice-lang/src/bjc/dicelang/dice/DiceBox.java @@ -41,6 +41,7 @@ public class DiceBox { final String[] dieParts = expString.split("d"); final long right = Long.parseLong(dieParts[1]); + if (dieParts[0].equals("")) { /* * Handle short-form expressions. @@ -131,16 +132,18 @@ public class DiceBox { * * This is just a number. */ - private static final String scalarDie = "[\\+\\-]?\\d+sd"; - private static final Pattern scalarDiePattern = Pattern.compile("\\A" + scalarDie + "\\Z"); + private static final String scalarDie = "[\\+\\-]?\\d+sd"; + private static final Pattern scalarDiePattern = Pattern.compile("\\A" + + scalarDie + "\\Z"); /* * Defines a simple die. * * This is a group of one or more dice of the same size. */ - private static final String simpleDie = "(?:\\d+)?d\\d+"; - private static final Pattern simpleDiePattern = Pattern.compile("\\A" + simpleDie + "\\Z"); + private static final String simpleDie = "(?:\\d+)?d\\d+"; + private static final Pattern simpleDiePattern = Pattern.compile("\\A" + + simpleDie + "\\Z"); /* * Defines a fudge die. @@ -148,24 +151,28 @@ public class DiceBox { * This is like a simple die, but all the die give -1, 0, or 1 as * results. */ - private static final String fudgeDie = "(?:\\d+)?dF"; - private static final Pattern fudgeDiePattern = Pattern.compile("\\A" + fudgeDie + "\\Z"); + private static final String fudgeDie = "(?:\\d+)?dF"; + private static final Pattern fudgeDiePattern = Pattern.compile("\\A" + fudgeDie + + "\\Z"); /* * Defines a compound die. * * This is like using two d10's to simulate a d100 */ - private static final String compoundDie = simpleDie + "c(?:(?:" + simpleDie + ")|(?:\\d+))"; - private static final Pattern compoundDiePattern = Pattern.compile("\\A" + compoundDie + "\\Z"); + private static final String compoundDie = simpleDie + "c(?:(?:" + + simpleDie + ")|(?:\\d+))"; + private static final Pattern compoundDiePattern = Pattern.compile("\\A" + + compoundDie + "\\Z"); /* * Defines a compound group. * * This is used for forming die list type expressions. */ - private static final String compoundGroup = "(?:(?:" + scalarDie + ")|(?:" + simpleDie + ")|(?:" + compoundDie - + ")|(?:" + fudgeDie + "))"; + private static final String compoundGroup = "(?:(?:" + scalarDie + ")|(?:" + simpleDie + + ")|(?:" + compoundDie + + ")|(?:" + fudgeDie + "))"; /* * Defines a compounding die. @@ -173,8 +180,10 @@ public class DiceBox { * This is like an exploding die, but is a single die, not a group of * them. */ - private static final String compoundingDie = compoundGroup + "!!" + comparePoint; - private static final Pattern compoundingDiePattern = Pattern.compile("\\A" + compoundingDie + "\\Z"); + private static final String compoundingDie = compoundGroup + "!!" + + comparePoint; + private static final Pattern compoundingDiePattern = Pattern.compile("\\A" + + compoundingDie + "\\Z"); /* * Defines an exploding die. @@ -182,8 +191,10 @@ public class DiceBox { * This is a die that you reroll the component of if it meets a certain * condition. */ - private static final String explodingDie = compoundGroup + "!" + comparePoint; - private static final Pattern explodingDiePattern = Pattern.compile("\\A" + explodingDie + "\\Z"); + private static final String explodingDie = compoundGroup + "!" + + comparePoint; + private static final Pattern explodingDiePattern = Pattern.compile("\\A" + + explodingDie + "\\Z"); /* * Defines a penetrating die. @@ -191,16 +202,19 @@ public class DiceBox { * This is like an exploding die, but the exploded result gets a -1 * penalty. */ - private static final String penetratingDie = compoundGroup + "!" + comparePoint; - private static final Pattern penetratingDiePattern = Pattern.compile("\\A" + penetratingDie + "\\Z"); + private static final String penetratingDie = compoundGroup + "!" + + comparePoint; + private static final Pattern penetratingDiePattern = Pattern.compile("\\A" + + penetratingDie + "\\Z"); /* * Defines a die list. * * This is an array of dice of the specified size. */ - private static final String diceList = compoundGroup + "dl" + compoundGroup; - private static final Pattern diceListPattern = Pattern.compile("\\A" + diceList + "\\Z"); + private static final String diceList = compoundGroup + "dl" + compoundGroup; + private static final Pattern diceListPattern = Pattern.compile("\\A" + diceList + + "\\Z"); /** * Check if a given string is a valid die expression. @@ -239,10 +253,13 @@ public class DiceBox { switch (patt.charAt(0)) { case '<': return (roll) -> roll < num; + case '=': return (roll) -> roll == num; + case '>': return (roll) -> roll > num; + default: return (roll) -> false; } diff --git a/dice-lang/src/bjc/dicelang/dice/DieExpression.java b/dice-lang/src/bjc/dicelang/dice/DieExpression.java index b114da6..edf7684 100644 --- a/dice-lang/src/bjc/dicelang/dice/DieExpression.java +++ b/dice-lang/src/bjc/dicelang/dice/DieExpression.java @@ -16,11 +16,11 @@ public class DieExpression { /** * The scalar value in this expression, if there is one. */ - public Die scalar; + public Die scalar; /** * The list value in this expression, if there is one. */ - public DieList list; + public DieList list; /** * Create a scalar die expression. diff --git a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java index 15d6572..7036f32 100644 --- a/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java +++ b/dice-lang/src/bjc/dicelang/dice/ExplodingDice.java @@ -21,9 +21,9 @@ public class ExplodingDice implements DieList { /* * The conditions for exploding. */ - private final Predicate explodeOn; - private final String explodePattern; - private final boolean explodePenetrates; + private final Predicate explodeOn; + private final String explodePattern; + private final boolean explodePenetrates; /** * Create a new exploding die. @@ -48,7 +48,8 @@ public class ExplodingDice implements DieList { * Whether or not for explosions to penetrate (-1 to * exploded die). */ - public ExplodingDice(final Die src, final Predicate explode, final boolean penetrate) { + public ExplodingDice(final Die src, final Predicate explode, + final boolean penetrate) { this(src, explode, null, penetrate); } @@ -65,7 +66,8 @@ public class ExplodingDice implements DieList { * @param patt * The string the condition came from, for printing. */ - public ExplodingDice(final Die src, final Predicate explode, final String patt, final boolean penetrate) { + public ExplodingDice(final Die src, final Predicate explode, final String patt, + final boolean penetrate) { source = src; explodeOn = explode; explodePattern = patt; @@ -95,6 +97,7 @@ public class ExplodingDice implements DieList { if (explodePenetrates) { oldRes -= 1; } + resList.add(oldRes); } @@ -102,6 +105,7 @@ public class ExplodingDice implements DieList { newRes[0] = res; int i = 1; + for (final long rll : resList) { newRes[i] = rll; i += 1; diff --git a/dice-lang/src/bjc/dicelang/dice/MathDie.java b/dice-lang/src/bjc/dicelang/dice/MathDie.java index 5feb193..1984581 100644 --- a/dice-lang/src/bjc/dicelang/dice/MathDie.java +++ b/dice-lang/src/bjc/dicelang/dice/MathDie.java @@ -32,10 +32,13 @@ public class MathDie implements Die { switch (this) { case ADD: return "+"; + case SUBTRACT: return "-"; + case MULTIPLY: return "*"; + default: return this.name(); } @@ -44,8 +47,8 @@ public class MathDie implements Die { private final MathDie.MathOp type; - private final Die left; - private final Die right; + private final Die left; + private final Die right; /** * Create a new math die. @@ -75,10 +78,13 @@ public class MathDie implements Die { switch (type) { case ADD: return lft + rght; + case SUBTRACT: return lft - rght; + case MULTIPLY: return lft * rght; + default: return 0; } diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java index 5610535..60c5d53 100644 --- a/dice-lang/src/bjc/dicelang/dice/SimpleDie.java +++ b/dice-lang/src/bjc/dicelang/dice/SimpleDie.java @@ -7,8 +7,8 @@ package bjc.dicelang.dice; * */ public class SimpleDie implements Die { - private final Die numDice; - private final Die diceSize; + private final Die numDice; + private final Die diceSize; /** * Create a new dice group. diff --git a/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java index f382361..84896ea 100644 --- a/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java +++ b/dice-lang/src/bjc/dicelang/dice/SimpleDieList.java @@ -7,8 +7,8 @@ package bjc.dicelang.dice; * */ public class SimpleDieList implements DieList { - private final Die numDice; - private final Die size; + private final Die numDice; + private final Die size; /** * Create a new list of dice. -- cgit v1.2.3