summaryrefslogtreecommitdiff
path: root/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java
diff options
context:
space:
mode:
Diffstat (limited to 'dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java')
-rw-r--r--dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java b/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java
new file mode 100644
index 0000000..e5aef18
--- /dev/null
+++ b/dice-lang/src/bjc/dicelang/v2/dice/SimpleDieList.java
@@ -0,0 +1,48 @@
+package bjc.dicelang.v2.dice;
+
+public class SimpleDieList implements DieList {
+ private Die numDice;
+ private Die size;
+
+ public SimpleDieList(Die nDice, Die sze) {
+ numDice = nDice;
+ size = sze;
+ }
+
+ public boolean canOptimize() {
+ if(size.canOptimize() && size.optimize() <= 1) {
+ return numDice.canOptimize();
+ } else {
+ return false;
+ }
+ }
+
+ public long[] optimize() {
+ int sze = (int)numDice.optimize();
+ long res = size.optimize();
+
+ long[] ret = new long[sze];
+
+ for(int i = 0; i < sze; i++) {
+ ret[i] = res;
+ }
+
+ return ret;
+ }
+
+ public long[] roll() {
+ int num = (int)numDice.roll();
+
+ long[] ret = new long[num];
+
+ for(int i = 0; i < num; i++) {
+ ret[i] = size.roll();
+ }
+
+ return ret;
+ }
+
+ public String toString() {
+ return numDice.toString() + "dl" + size.toString();
+ }
+} \ No newline at end of file