summaryrefslogtreecommitdiff
path: root/dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-02 17:32:24 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-02 17:32:24 -0300
commit775394cf6b4a3c6a7e7345affeb45bb34f6e4517 (patch)
treea193472620f796b3701fa979cba84d4361eef0c0 /dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java
parent09f161528619f9396aa07c784c15bc1d33f5c047 (diff)
Finish die rewrite
This adds all of the remaining missing die modifiers, as well as a few base die types that were missing.
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java')
-rw-r--r--dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java b/dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java
new file mode 100644
index 0000000..8733908
--- /dev/null
+++ b/dice/src/main/java/bjc/dicelang/dicev2/PoolDiceMod.java
@@ -0,0 +1,42 @@
+package bjc.dicelang.dicev2;
+
+import bjc.utils.funcutils.ListUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PoolDiceMod extends Die {
+ public Die[] dice;
+
+ public PoolDiceMod(Die... dice) {
+ super();
+
+ this.dice = dice;
+ }
+
+ public long[] roll() {
+ List<Long> lst = new ArrayList<>(dice.length);
+
+ for(Die die : dice) {
+ for(long val : die.roll()) {
+ lst.add(val);
+ }
+ }
+
+ return ListUtils.toPrimitive(lst);
+ }
+
+ /* :NoSingleRolls */
+ public long rollSingle() {
+ throw new UnsupportedOperationException("Pooled dice can't be rolled singly");
+ }
+
+ /* :UnoptimizableDice */
+ public boolean canOptimize() {
+ return false;
+ }
+
+ public long optimize() {
+ throw new UnsupportedOperationException("Pooled dice can't be optimized");
+ }
+}