summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/dice/Die.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/dice/Die.java')
-rw-r--r--dice-lang/src/bjc/dicelang/dice/Die.java30
1 files changed, 29 insertions, 1 deletions
diff --git a/dice-lang/src/bjc/dicelang/dice/Die.java b/dice-lang/src/bjc/dicelang/dice/Die.java
index 9f839ed..22ba522 100644
--- a/dice-lang/src/bjc/dicelang/dice/Die.java
+++ b/dice-lang/src/bjc/dicelang/dice/Die.java
@@ -1,9 +1,37 @@
package bjc.dicelang.dice;
+/**
+ * Represents one or more dice that produce a scalar result.
+ *
+ * @author Ben Culkin
+ */
public interface Die {
+ /**
+ * Can this die be optimized to a single number?
+ *
+ * @return Whether this die can be optimized or not.
+ */
boolean canOptimize();
+ /**
+ * Optimize this die to a single number.
+ *
+ * Calling optimize on dice that return false for canOptimize produces
+ * undefined behavior
+ *
+ * @return The optimized form of this die
+ */
long optimize();
+ /**
+ * Roll this die.
+ *
+ * @return A possible roll of this die
+ */
long roll();
+ /**
+ * Roll only a single portion of this die.
+ *
+ * @return A possible roll of a single portion of this die.
+ */
long rollSingle();
-} \ No newline at end of file
+}