Namespace RandomizerCore.Randomization
Classes
- CombinedItemSelector
Selector which manages multiple GroupItemSelectors, with the goal of proposing lowest priority items from available RandomizationGroups.
- CombinedLocationTracker
Class which manages GroupLocationTrackers for each RandomizationGroup to detect when new locations become reachable.
- CoupledRandomizationGroup
Class which represents a RandomizationGroup of coupled elements. All items and locations of a CoupledRandomizationGroup must implement IRandoCouple.
It is expected that the Items of this group coincide with the Locations of Dual, and vice versa. Both groups must be in the same RandomizationGroup. A group may be self-dual.
The effect of coupling is that during randomization, Items of the group may be discarded and used as Locations of the dual group, and vice versa. For each placement, the symmetric placement will be generated.
- DefaultGroupPlacementStrategy
A simple placement strategy. Provides support for standard and coupled groups, along with a field which allows weighting placements according to logical depth.
- GroupItemSelector
Selector which proposes items from a RandomizationGroup by priority order.
- GroupLocationTracker
Tracker which works with the MainUpdater to observe when locations from its RandomizationGroup become reachable.
- GroupPlacementStrategy
Base class for creating placements for a group.
- IndeterminateLocation
Location which indicates that the items of the group are assumed to be available for the purposes of randomization.
Used with ILocationDependentItem effects under such circumstances.
- PriorityTransformUtil
Utility class for creating Depth Priority Transforms that do simple mathematical operations.
- RandomizationGroup
A group of Items and Locations matched in length, for the randomizer to output in RandoPlacement pairs.
- RandomizationStage
A collection of RandomizationGroups which should be randomized concurrently by the randomizer, and placed according to the stage's strategy.
- Sphere
The computational result of a step of the randomizer.
- SphereBuilder
Class which manages stepping the randomizer: selecting sets of items which unlock new locations until all locations are reachable. Spheres record the result of each step.
- StagePlacementStrategy
Base class for stage-level placement strategy. Manages the placement of each group.
- Validator
Base class which handles determining whether errors exist in the randomizer output for a group.
By default, checks that the placement list has the right counts by name, and that all locations are reachable.
- WeakTransitionValidator
Validator which assumes that its group is composed of RandoTransitions, and only checks that their terms are obtained, rather than that they are reachable.
Enums
- PriorityTransformUtil.ItemPriorityDepthEffect
Parameter which determines how location depth should be adjusted according to item priority depth.
- PriorityTransformUtil.TransformType
Parameter which determines the function applied to the location depth.