The Sequence._stepsToActivate field contains an optional list of
IActiveState's which must be 'activated' in order. The sequence can progress from Step N to N + 1 when: ActivationStep.MinActiveTime <= "Time step
N active for" <= ActivationStep.MaxStepTime, and:
Step N just became inactive OR Step N is the last step OR Step N+1 is active
Note that once the sequence has moved on to the next step, the previous step does not need to remain active. Each step has three fields: ActivationStep.ActiveState: The
IActiveState that is used to determine if the conditions of this step are fulfilled ActivationStep.MinActiveTime: How long (in seconds) the
IActiveState of this step must be contiguously active before moving on to the next step. If the ActiveState drops out of being active for even a single frame the countdown is reset. ActivationStep.MaxStepTime: If the elapsed time that the sequence is spent waiting for this step to reach its MinActiveTime exceeds this value then the whole sequence is reset back to the beginning.
Once all steps are complete the
Sequence.Active becomes true. It will remain true as long as RemainActiveWhile is true. If _remainActiveCooldown > 0,
Sequence.Active will remain active even after RemainActiveWhile becomes false until the cooldown timer is met. The timer is reset if RemainActiveWhile becomes true again.