Tags: HighDiceRoller/icepool
Tags
* Added `wild`, `wild_low`, and `wild_high` options to `largest_count… …()` evaluation. These allow specifying outcomes as wild, combining with any outcomes, outcomes that they are lower than, and outcomes that they are higher than respectively. * `standard_pool` renamed to `d_pool`, leaving a deprecation warning.
Major modifications to `map(repeat)` Markov process flow. * Now requires Python >= 3.12 (from 3.10). * `Reroll` split into separate `Reroll` and `Restart` symbols with different meanings in `map(repeat)` and `Again`. * In `map(repeat)`, `Reroll` rerolls only the current stage, while `Restart` restarts the entire process. * With `again_count`, `Reroll` rerolls any dice over the limit until they don't roll `Again`, while `Restart` restarts the entire process. * With `again_depth`, `Reroll` rerolls the last depth if going over the limit, while `Restart` cannot be used with `again_depth`. * `Break` outcome wrapper that can be returned from a function sent to `map(repeat)` in order to immediately terminate the Markov process. * `map(repeat)` now defaults to `repeat=None`; `repeat` is now explicitly incompatible with `Again`. * Remove separate `time_limit` parameter to `map()`; `repeat` now always returns early if fully absorbed. * `again_end` can now be used with `again_count`. * `.weightless()` method for multiset generators that sets the quantity for all possible multisets to 1. * New `product_of_counts()` multiset evaluation. * More specific overloads for `map`, `tupleize`, `vectorize`. * Rename `commonize_denominator()` to `harmonize_denominator()` and add optional weight parameter. * Fix immediate absorption case for `map(repeat='inf')`.
* Change `max_pair_lowest()` and `max_pair_highest()` to `max_pair_ke… …ep()` and `max_pair_drop()`. * Add remaining operators to the `max_pair` methods. * Rename `reroll_to_pool(mode)` options from 'highest' to 'high'. * Allow `max_time` argument to be omitted from `time_to_sum` if all outcomes are positive. * Allow lexicographic comparison between `Vector`s of different length. * Prevent unevaluated expressions from being returned from a `@multiset_function`.
* Breaking change: `any()` multiset evaluation renamed and inverted t… …o `empty()`. * Breaking change: `sort_match()` renamed to `sort_pair()`, `maximum_match_highest()` renamed to `max_pair_highest()` and similar for `minimum_match_highest()`. * Add `extra` parameter to `sort_pair`. * Rename several `which` and `target` parameters to `outcomes`. * Make `max_rerolls` and `depth` parameters of `reroll_to_pool()` keyword-only, and add default outcomes to reroll. * Experimental `leximin()` and `leximax()` multiset evaluations. * Experimental `versus_any()` and `versus_all()` multiset operations.
* Add `star` option for `multiset_function`. * Add `kwargs` option for `map` and similar functions. * Skip optimization for multideal. * Fix `Vector` comparisons so that they properly serve the dual purpose of element-wise comparison and truth value comparison. * Fix multideal null pops. * Experimental `Deck.deal_groups()`.
* Adjusted behavior of `MultisetEvaluator` caching between calls to `… …evaluate()` depending on the value of `next_state_key`. * By default, `next_state_key` will only cache if the evaluator is called directly (i.e. not inside a `@multiset_function`). * If a full `next_state_key` is given, it will cache inside `@multiset_function`, provided the other contents agree. * The special value `NoCache` will disable caching. * Support argumentless evaluations. * Some typing fixes.
PreviousNext