Table of Contents

Class StateModifier

Namespace
RandomizerCore.Logic.StateLogic
Assembly
RandomizerCore.dll

Variable which acts on a state and yields a sequence of result states. Can also produce input-independent state.

public abstract class StateModifier : LogicVariable, ILogicVariable
Inheritance
StateModifier
Implements
Derived
Inherited Members

Methods

ModifyAll(object?, ProgressionManager, List<LazyStateBuilder>)

Performs ModifyState on each element of the list, then ProvideState, and puts the results in the list. Removes the original elements of the list.

public void ModifyAll(object? sender, ProgressionManager pm, List<LazyStateBuilder> states)

Parameters

sender object
pm ProgressionManager
states List<LazyStateBuilder>

ModifyState(object?, ProgressionManager, LazyStateBuilder)

Modifies the state, producing a sequence of results.

public abstract IEnumerable<LazyStateBuilder> ModifyState(object? sender, ProgressionManager pm, LazyStateBuilder state)

Parameters

sender object
pm ProgressionManager
state LazyStateBuilder

Returns

IEnumerable<LazyStateBuilder>

ProvideState(object?, ProgressionManager)

Returns a sequence of states produced by the modifier, independent of input state.
If the modifier succeeds independently of input state, but does not have input-independent output, it should return empty.
If the modifier does not succeed independently of input state, it should return null. The default implementation is to always return null.

public virtual IEnumerable<LazyStateBuilder>? ProvideState(object? sender, ProgressionManager pm)

Parameters

sender object
pm ProgressionManager

Returns

IEnumerable<LazyStateBuilder>