ChairmanTrait

Overview

Serializable data model for a trait node on one of the three personality tracks: Mobster, Schemer, or Subterfuge. Each trait declares a level, localized title/description, costType (track), requiredTokens threshold, a list of effects, an obtained runtime flag, and an optional sprite.

Fields

  • int level
  • string title, string desc
  • Upgrade.CostType costType — which track the trait belongs to
  • float requiredTokens — tokens needed (checked against floor(affinity))
  • List<ChairmanTraitEffect> effects — parameter/value pairs
  • bool obtained — runtime, toggled by TraitManager
  • Sprite img
  • TraitNode ParentNode — graph/back‑reference (optional)

Localization (I2)

The base localization ID is computed from the trait list index within its track:

  • Mobster → "TRAIT_MOB_###"
  • Schemer → "TRAIT_SCH_###"
  • Subterfuge → "TRAIT_SUB_###"

Helpers:

string GetLocalizedTitle(); // inserts "TITLE_" → e.g., TRAIT_MOB_TITLE_003
string GetLocalizedDesc();  // inserts "DESC_"  → e.g., TRAIT_MOB_DESC_003

Internally, the index comes from TraitManager.GetTraitList(track).IndexOf(this) at runtime.

Effect Schema

ChairmanTraitEffect pairs a Parameter with a numeric effectValue. Supported parameters include building costs/refunds, per‑tick severity multipliers, event profit/cost modifiers for money/loyalty/control/severity, demand modifiers, capture/notoriety/control gains, and special “option free” flags for each personality.

See the full enum in ChairmanTraitEffect.Parameter for the authoritative list.