Struct DecayModifiersJob
Burst-compiled job for marking decayed opinion modifiers
ARCHITECTURE: Flat storage with relationship keys
- All modifiers stored in single NativeList{ModifierWithKey}
- Job marks decayed modifiers (parallel READ-ONLY operation)
- Main thread compacts array SEQUENTIALLY (deterministic order preserved)
DETERMINISM GUARANTEE:
- Job is READ-ONLY (no race conditions, no order dependency)
- Compaction is SEQUENTIAL on main thread
- Insertion order preserved (append-only)
- Result identical across all game clients
Performance Target: <5ms for 610k modifiers (parallel SIMD processing)
[BurstCompile(CompileSynchronously = true, OptimizeFor = OptimizeFor.Performance)]
public struct DecayModifiersJob
Fields
currentTick
Current game tick for decay calculations
public int currentTick
Field Value
- int
isDecayed
Output: true if modifier at index i is fully decayed Each thread writes to unique index (no race conditions)
[WriteOnly]
public NativeArray<bool> isDecayed
Field Value
- NativeArray<bool>
modifiers
All modifiers with their relationship keys (flat contiguous array) READ-ONLY for determinism
public NativeArray<ModifierWithKey> modifiers
Field Value
Methods
Execute(int)
Execute for each modifier in parallel Pure read operation - deterministic across all clients
public void Execute(int index)
Parameters
indexint