From 78d9c539e25f16fd15f06c2b2c48c0ad37a21540 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 28 Mar 2016 08:44:54 -0400 Subject: Imported dice stuff from general utils into dedicated project --- .../src/bjc/utils/dice/ScalarDiceExpression.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java (limited to 'dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java') diff --git a/dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java b/dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java new file mode 100644 index 0000000..4c3f244 --- /dev/null +++ b/dice-lang/src/bjc/utils/dice/ScalarDiceExpression.java @@ -0,0 +1,75 @@ +package bjc.utils.dice; + +/** + * A dice expression that combines a scalar and a dice + * + * @author ben + * + */ +public class ScalarDiceExpression implements IDiceExpression { + /** + * The operation to combine with + */ + private DiceExpressionType det; + + /** + * The expression to be combined + */ + private IDiceExpression exp; + + /** + * The scalar to be combined + */ + private int scalar; + + /** + * Create a dice expression with a scalar + * + * @param dex + * The dice to use + * @param scalr + * The scalar to use + * @param dt + * The operation to combine with + */ + public ScalarDiceExpression(IDiceExpression dex, int scalr, + DiceExpressionType dt) { + exp = dex; + scalar = scalr; + det = dt; + } + + /* + * (non-Javadoc) + * + * @see bjc.utils.dice.IDiceExpression#roll() + */ + @Override + public int roll() { + switch (det) { + case ADD: + return exp.roll() + scalar; + case SUBTRACT: + return exp.roll() - scalar; + case MULTIPLY: + return exp.roll() * scalar; + case DIVIDE: + return Math.round(exp.roll() / scalar); + default: + throw new IllegalStateException( + "Got passed a invalid ScalarExpressionType " + + det); + } + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + return "scalar-exp[type=" + det + ", l=" + scalar + ", r=" + + exp.toString() + "]"; + } +} -- cgit v1.2.3