summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-07-23 22:58:58 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-07-23 22:58:58 -0300
commitc74cb8eaf454d9243b75e3770001d8d128356b28 (patch)
tree899197afc0b7c382aa37c778053357e0e9b56c26 /dice-lang/src/bjc/dicelang/dice
parent57f9a3bfdad20bead5b35ee540e8790e80a6b9a4 (diff)
Format
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/CompoundDie.java4
-rw-r--r--dice-lang/src/bjc/dicelang/dice/CompoundingDie.java4
-rw-r--r--dice-lang/src/bjc/dicelang/dice/DiceBox.java53
-rw-r--r--dice-lang/src/bjc/dicelang/dice/DieExpression.java4
-rw-r--r--dice-lang/src/bjc/dicelang/dice/ExplodingDice.java14
-rw-r--r--dice-lang/src/bjc/dicelang/dice/MathDie.java10
-rw-r--r--dice-lang/src/bjc/dicelang/dice/SimpleDie.java4
-rw-r--r--dice-lang/src/bjc/dicelang/dice/SimpleDieList.java4
8 files changed, 62 insertions, 35 deletions
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<Long> compoundOn;
- private final String compoundPattern;
+ private final Predicate<Long> 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<Long> explodeOn;
- private final String explodePattern;
- private final boolean explodePenetrates;
+ private final Predicate<Long> 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<Long> explode, final boolean penetrate) {
+ public ExplodingDice(final Die src, final Predicate<Long> 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<Long> explode, final String patt, final boolean penetrate) {
+ public ExplodingDice(final Die src, final Predicate<Long> 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.