summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice/DiceBox.java
diff options
context:
space:
mode:
authorEVE <EVE@EVE-PC>2017-03-13 16:41:45 -0400
committerEVE <EVE@EVE-PC>2017-03-13 16:41:45 -0400
commit01136c6796e21f023713e026674576d8e623462d (patch)
treee77886fe0e0adaf3c0430fba9ce248ef83f74fe4 /dice-lang/src/bjc/dicelang/dice/DiceBox.java
parent870d769cfc152171d27b2331a7c590d0b307ad48 (diff)
Formatting
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/DiceBox.java')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/DiceBox.java86
1 files changed, 44 insertions, 42 deletions
diff --git a/dice-lang/src/bjc/dicelang/dice/DiceBox.java b/dice-lang/src/bjc/dicelang/dice/DiceBox.java
index 92e58af..85edc77 100644
--- a/dice-lang/src/bjc/dicelang/dice/DiceBox.java
+++ b/dice-lang/src/bjc/dicelang/dice/DiceBox.java
@@ -21,23 +21,24 @@ public class DiceBox {
/*
* Only bother will valid expressions
*/
- if(!isValidExpression(exp)) return null;
+ if (!isValidExpression(exp))
+ return null;
- if(scalarDiePattern.matcher(exp).matches()) {
+ if (scalarDiePattern.matcher(exp).matches()) {
/*
* Parse scalar die
*/
Die scal = new ScalarDie(Long.parseLong(exp.substring(0, exp.indexOf('s'))));
return new DieExpression(scal);
- } else if(simpleDiePattern.matcher(exp).matches()) {
+ } else if (simpleDiePattern.matcher(exp).matches()) {
/*
* Parse simple die groups
*/
String[] dieParts = exp.split("d");
long right = Long.parseLong(dieParts[1]);
- if(dieParts[0].equals("")) {
+ if (dieParts[0].equals("")) {
/*
* Handle short-form expressions.
*/
@@ -47,65 +48,65 @@ public class DiceBox {
Die scal = new SimpleDie(Long.parseLong(dieParts[0]), right);
return new DieExpression(scal);
}
- } else if(fudgeDiePattern.matcher(exp).matches()) {
+ } else if (fudgeDiePattern.matcher(exp).matches()) {
/*
* Parse fudge dice
*/
String nDice = exp.substring(0, exp.indexOf('d'));
return new DieExpression(new FudgeDie(Long.parseLong(nDice)));
- } else if(compoundDiePattern.matcher(exp).matches()) {
+ } else if (compoundDiePattern.matcher(exp).matches()) {
/*
* Parse compound die expressions
*/
String[] dieParts = exp.split("c");
- DieExpression left = parseExpression(dieParts[0]);
+ DieExpression left = parseExpression(dieParts[0]);
DieExpression right = parseExpression(dieParts[1]);
return new DieExpression(new CompoundDie(left.scalar, right.scalar));
- } else if(compoundingDiePattern.matcher(exp).matches()) {
+ } else if (compoundingDiePattern.matcher(exp).matches()) {
/*
* Parse compounding die expressions
*/
String[] dieParts = exp.split("!!");
- DieExpression left = parseExpression(dieParts[0]);
+ DieExpression left = parseExpression(dieParts[0]);
Predicate<Long> right = deriveCond(dieParts[1]);
Die scal = new CompoundingDie(left.scalar, right, dieParts[1]);
return new DieExpression(scal);
- } else if(explodingDiePattern.matcher(exp).matches()) {
+ } else if (explodingDiePattern.matcher(exp).matches()) {
/*
* Parse exploding die expressions
*/
String[] dieParts = exp.split("!");
- DieExpression left = parseExpression(dieParts[0]);
+ DieExpression left = parseExpression(dieParts[0]);
Predicate<Long> right = deriveCond(dieParts[1]);
DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], false);
return new DieExpression(lst);
- } else if(penetratingDiePattern.matcher(exp).matches()) {
+ } else if (penetratingDiePattern.matcher(exp).matches()) {
/*
* Parse penetrating die expressions
*/
String[] dieParts = exp.split("p!");
- DieExpression left = parseExpression(dieParts[0]);
+ DieExpression left = parseExpression(dieParts[0]);
Predicate<Long> right = deriveCond(dieParts[1]);
DieList lst = new ExplodingDice(left.scalar, right, dieParts[1], true);
return new DieExpression(lst);
- } else if(diceListPattern.matcher(exp).matches()) {
+ } else if (diceListPattern.matcher(exp).matches()) {
/*
* Parse simple die lists
*/
String[] dieParts = exp.split("dl");
- DieExpression left = parseExpression(dieParts[0]);
+ DieExpression left = parseExpression(dieParts[0]);
DieExpression right = parseExpression(dieParts[1]);
-
+
DieList lst = new SimpleDieList(left.scalar, right.scalar);
return new DieExpression(lst);
}
@@ -120,23 +121,23 @@ public class DiceBox {
/*
* Defines a comparison predicate
*/
- private static final String comparePoint = "[<>=]\\d+";
+ private static final String comparePoint = "[<>=]\\d+";
/*
* Defines a scalar die.
*
* 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.
@@ -144,24 +145,24 @@ 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.
@@ -169,7 +170,7 @@ 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 String compoundingDie = compoundGroup + "!!" + comparePoint;
private static final Pattern compoundingDiePattern = Pattern.compile("\\A" + compoundingDie + "\\Z");
/*
@@ -178,7 +179,7 @@ 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 String explodingDie = compoundGroup + "!" + comparePoint;
private static final Pattern explodingDiePattern = Pattern.compile("\\A" + explodingDie + "\\Z");
/*
@@ -187,7 +188,7 @@ 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 String penetratingDie = compoundGroup + "!" + comparePoint;
private static final Pattern penetratingDiePattern = Pattern.compile("\\A" + penetratingDie + "\\Z");
/*
@@ -195,30 +196,31 @@ public class DiceBox {
*
* 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.
*
- * @param exp The string to check validity of.
+ * @param exp
+ * The string to check validity of.
*
* @return Whether or not the string is a valid command
*/
public static boolean isValidExpression(String exp) {
- if(scalarDiePattern.matcher(exp).matches()) {
+ if (scalarDiePattern.matcher(exp).matches()) {
return true;
- } else if(simpleDiePattern.matcher(exp).matches()) {
+ } else if (simpleDiePattern.matcher(exp).matches()) {
return true;
- } else if(fudgeDiePattern.matcher(exp).matches()) {
+ } else if (fudgeDiePattern.matcher(exp).matches()) {
return true;
- } else if(compoundDiePattern.matcher(exp).matches()) {
+ } else if (compoundDiePattern.matcher(exp).matches()) {
return true;
- } else if(compoundingDiePattern.matcher(exp).matches()) {
+ } else if (compoundingDiePattern.matcher(exp).matches()) {
return true;
- } else if(explodingDiePattern.matcher(exp).matches()) {
+ } else if (explodingDiePattern.matcher(exp).matches()) {
return true;
- } else if(penetratingDiePattern.matcher(exp).matches()) {
+ } else if (penetratingDiePattern.matcher(exp).matches()) {
return true;
} else if (diceListPattern.matcher(exp).matches()) {
return true;
@@ -231,9 +233,9 @@ public class DiceBox {
* Derive a predicate from a compare point
*/
private static Predicate<Long> deriveCond(String patt) {
- long num = Long.parseLong(patt.substring(1));
+ long num = Long.parseLong(patt.substring(1));
- switch(patt.charAt(0)) {
+ switch (patt.charAt(0)) {
case '<':
return (roll) -> roll < num;
case '=':