Table of Contents

Class DiplomacyColdData

Namespace
Core.Diplomacy
Assembly
Core.dll

ENGINE LAYER - Cold data for diplomatic relations (rarely accessed)

Architecture:

  • Separate from hot RelationData struct
  • Only loaded when needed (UI, calculations, save/load)
  • Modifiers and history stored here
  • Managed heap (Dictionary) storage acceptable for cold data

Memory: Variable (~200 bytes + modifiers)

Storage Pattern: Dictionary{(ushort, ushort), DiplomacyColdData} coldData;

  • Same key as RelationData
  • Only created when modifiers exist
public class DiplomacyColdData
Inheritance
object
DiplomacyColdData

Constructors

DiplomacyColdData()

public DiplomacyColdData()

Fields

customData

Game-specific extension data Allows GAME layer to attach additional data without modifying ENGINE Example: treaty information, trade agreement details, etc.

public Dictionary<string, object> customData

Field Value

Dictionary<string, object>

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 List for efficient iteration during decay

public List<OpinionModifier> modifiers

Field Value

List<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

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