Table of Contents

Struct ModifierSource

Namespace
Core.Modifiers
Assembly
Core.dll

ENGINE: Tracks the source of a modifier for tooltips and removal Pattern used by: EU4 (modifier tooltips), CK3 (effect stacking), Stellaris (modifier tracking)

Examples:

  • Building: Farm in Province #42 gives +5 production
  • Tech: "Advanced Agriculture" gives +20% production (permanent)
  • Event: "Harvest Festival" gives +10% production for 12 months (temporary)
public struct ModifierSource

Fields

ExpirationTick

public int ExpirationTick

Field Value

int

IsMultiplicative

public bool IsMultiplicative

Field Value

bool

IsTemporary

public bool IsTemporary

Field Value

bool

ModifierTypeId

public ushort ModifierTypeId

Field Value

ushort

SourceID

public uint SourceID

Field Value

uint

Type

public ModifierSource.SourceType Type

Field Value

ModifierSource.SourceType

Value

public FixedPoint64 Value

Field Value

FixedPoint64

Methods

CreatePermanent(SourceType, uint, ushort, FixedPoint64, bool)

Create a permanent modifier source

public static ModifierSource CreatePermanent(ModifierSource.SourceType type, uint sourceId, ushort modifierTypeId, FixedPoint64 value, bool isMultiplicative)

Parameters

type ModifierSource.SourceType
sourceId uint
modifierTypeId ushort
value FixedPoint64
isMultiplicative bool

Returns

ModifierSource

CreateTemporary(SourceType, uint, ushort, FixedPoint64, bool, int)

Create a temporary modifier source

public static ModifierSource CreateTemporary(ModifierSource.SourceType type, uint sourceId, ushort modifierTypeId, FixedPoint64 value, bool isMultiplicative, int expirationTick)

Parameters

type ModifierSource.SourceType
sourceId uint
modifierTypeId ushort
value FixedPoint64
isMultiplicative bool
expirationTick int

Returns

ModifierSource

HasExpired(int)

Check if this modifier has expired

public bool HasExpired(int currentTick)

Parameters

currentTick int

Returns

bool

ToString()

public override string ToString()

Returns

string