Table of Contents

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.

ComparerUtil
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.

DefaultGroupPlacementStrategy.Constraint
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.

Randomizer
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.

Delegates

DefaultGroupPlacementStrategy.DepthPriorityTransformHandler