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
objectpm
ProgressionManagerstates
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
objectpm
ProgressionManagerstate
LazyStateBuilder
Returns
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
objectpm
ProgressionManager