Table of Contents

Struct DiplomacyColdDataNative

Namespace
Core.Diplomacy
Assembly
Core.dll

ENGINE LAYER - Cold data for diplomatic relations using NativeCollections

Architecture:

  • Struct (not class) for Burst compatibility
  • NativeList for modifiers (dynamic growth, zero GC)
  • Stored in NativeList{DiplomacyColdDataNative} in DiplomacySystem

Memory: ~24 bytes + modifiers

public struct DiplomacyColdDataNative

Fields

lastInteractionTick

Last tick when this relationship changed Used for decay calculations and debugging

public int lastInteractionTick

Field Value

int

modifiers

Active opinion modifiers affecting this relationship NativeList for efficient iteration and zero allocations

public NativeList<OpinionModifier> modifiers

Field Value

NativeList<OpinionModifier>

Methods

AddModifier(OpinionModifier)

Add a modifier to this relationship

public void AddModifier(OpinionModifier modifier)

Parameters

modifier OpinionModifier

CalculateModifierTotal(int)

Calculate total opinion from all active modifiers

public FixedPoint64 CalculateModifierTotal(int currentTick)

Parameters

currentTick int

Returns

FixedPoint64

Create(Allocator)

Create new cold data with allocated modifier list

public static DiplomacyColdDataNative Create(Allocator allocator)

Parameters

allocator Allocator

Returns

DiplomacyColdDataNative

Dispose()

Dispose of NativeList to prevent memory leaks

public void Dispose()

HasActiveModifiers(int)

Check if this cold data has any active modifiers Used to determine if cold data can be removed

public bool HasActiveModifiers(int currentTick)

Parameters

currentTick int

Returns

bool

RemoveDecayedModifiers(int)

Remove all fully decayed modifiers Returns number of modifiers removed

public int RemoveDecayedModifiers(int currentTick)

Parameters

currentTick int

Returns

int