diff options
| author | EVE <EVE@EVE-PC> | 2017-03-13 16:41:45 -0400 |
|---|---|---|
| committer | EVE <EVE@EVE-PC> | 2017-03-13 16:41:45 -0400 |
| commit | 01136c6796e21f023713e026674576d8e623462d (patch) | |
| tree | e77886fe0e0adaf3c0430fba9ce248ef83f74fe4 /dice-lang/src/bjc/dicelang/dice/DiceBox.java | |
| parent | 870d769cfc152171d27b2331a7c590d0b307ad48 (diff) | |
Formatting
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/DiceBox.java')
| -rw-r--r-- | dice-lang/src/bjc/dicelang/dice/DiceBox.java | 86 |
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 '=': |
