summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/gen
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
index 4b0c276..649a240 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java
@@ -72,17 +72,18 @@ public class WeightedRandom<E> {
GenHolder<Boolean> bl = new GenHolder<>(true);
probs.forEachIndexed((i, p) -> {
- if (bl.held) {
- if (v.held < p) {
- res.held = results.getByIndex(i);
- bl.held = false;
+ if (bl.unwrap(vl -> vl)) {
+ if (v.unwrap((vl) -> vl < p)) {
+ res.transform((vl) -> results.getByIndex(i));
+
+ bl.transform((vl) -> false);
} else {
- v.held -= p;
+ v.transform((vl) -> vl - p);
}
}
});
- return res.held;
+ return res.unwrap((vl) -> vl);
}
/**