diff options
Diffstat (limited to 'dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java')
| -rw-r--r-- | dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java b/dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java index d6d5dd0..c0131f1 100644 --- a/dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java +++ b/dice/src/main/java/bjc/dicelang/dicev2/MapDieMod.java @@ -2,11 +2,29 @@ package bjc.dicelang.dicev2; import java.util.function.LongUnaryOperator; +/** + * Die pool which executes a mapping on the result. + * + * @author Ben Culkin + * + */ public class MapDieMod extends Die { + /** + * The die pool. + */ public final Die die; + /** + * The operator on the result. + */ public final LongUnaryOperator map; + /** + * Create a new mapping die pool. + * + * @param map The operation to do on the result. + * @param die The die pool. + */ public MapDieMod(LongUnaryOperator map, Die die) { super(); @@ -14,6 +32,7 @@ public class MapDieMod extends Die { this.map = map; } + @Override public long[] roll() { long[] res = die.roll(); @@ -24,15 +43,18 @@ public class MapDieMod extends Die { return res; } + @Override public long rollSingle() { return map.applyAsLong(die.rollSingle()); } /* :UnoptimizableDice */ + @Override public boolean canOptimize() { return false; } + @Override public long optimize() { throw new UnsupportedOperationException("Mapped dice can't be optimized"); } |
