Class WaveSimulation

Namespace
SurvivorsMaker.Simulation
Assembly
SurvivorsMaker.Simulation.dll

Runs one wave with a fixed, deterministic system order.

public sealed class WaveSimulation
Inheritance
WaveSimulation
Inherited Members

Constructors

WaveSimulation(SimSystems)

public WaveSimulation(SimSystems systems)

Parameters

systems SimSystems

WaveSimulation(SimSystems, PickupRules)

Supplies a replacement for death rewards, attraction and wave settlement.

public WaveSimulation(SimSystems systems, PickupRules pickups)

Parameters

systems SimSystems
pickups PickupRules

Fields

EffectStates

public readonly List<WaveEffectLease> EffectStates

Field Value

List<WaveEffectLease>

PlaytestInvulnerable

public bool PlaytestInvulnerable

Field Value

bool

Properties

NextEffectCarryId

public long NextEffectCarryId { get; }

Property Value

long

World

public SimWorld World { get; }

Property Value

SimWorld

Methods

ApplyLoadout(WaveEffectLoadout, IReadOnlyList<WeaponDef>)

Rebuilds the catalog ledger from current lease values, preserving all transient tokens and weapon slots.

public void ApplyLoadout(WaveEffectLoadout loadout, IReadOnlyList<WeaponDef> weapons)

Parameters

loadout WaveEffectLoadout
weapons IReadOnlyList<WeaponDef>

ApplyUpgrade(IReadOnlyList<Effect>, IReadOnlyList<WeaponDef>, bool)

Applies field-mode rewards without advancing time. When replaceEffects is true, effects replace the previous loadout in canonical inventory order (including changed set bonuses). A null weapon list keeps the current weapons. Unchanged slots retain their full state.

public void ApplyUpgrade(IReadOnlyList<Effect> effects, IReadOnlyList<WeaponDef> weapons, bool replaceEffects = false)

Parameters

effects IReadOnlyList<Effect>
weapons IReadOnlyList<WeaponDef>
replaceEffects bool

CaptureEffects()

Exports values only; callers can snapshot during field choices without advancing time.

public void CaptureEffects()

EndForPlaytest()

Uses normal survival settlement without taking another tick. Death takes precedence.

public bool EndForPlaytest()

Returns

bool

RefreshTriggers(IReadOnlyList<TriggerDef>, IReadOnlyList<TriggerBinding>)

Updates trigger definitions and optional ownership bindings at an explicit loadout boundary.

public void RefreshTriggers(IReadOnlyList<TriggerDef> triggers, IReadOnlyList<TriggerBinding> bindings = null)

Parameters

triggers IReadOnlyList<TriggerDef>
bindings IReadOnlyList<TriggerBinding>

Start(WaveRequest)

Starts a fresh world from request settings, optional carried triggers and effect leases.

public void Start(WaveRequest request)

Parameters

request WaveRequest

Start(WaveRequest, IReadOnlyList<TriggerCarryState>, IStatSource, EffectEvaluationSettings, IReadOnlyList<TriggerBinding>, WaveEffectLoadout)

Starts a fresh world from request settings, optional carried triggers and effect leases.

public void Start(WaveRequest request, IReadOnlyList<TriggerCarryState> carriedTriggers, IStatSource statSource = null, EffectEvaluationSettings evaluation = null, IReadOnlyList<TriggerBinding> bindings = null, WaveEffectLoadout loadout = null)

Parameters

request WaveRequest
carriedTriggers IReadOnlyList<TriggerCarryState>
statSource IStatSource
evaluation EffectEvaluationSettings
bindings IReadOnlyList<TriggerBinding>
loadout WaveEffectLoadout

Step(Vec2)

Advances exactly one fixed tick when the wave is running; terminal waves do not advance.

public void Step(Vec2 input)

Parameters

input Vec2

Step(IReadOnlyList<Vec2>)

Inputs follow Players order. Missing inputs are zero; surplus inputs are ignored.

public void Step(IReadOnlyList<Vec2> inputs)

Parameters

inputs IReadOnlyList<Vec2>