Skip to content

Game.Citizens.CitizenEducationLevel

Assembly: Assembly-CSharp (in-game core assembly; exact assembly name may vary by build/mod environment)
Namespace: Game.Citizens

Type: enum

Base: System.Enum

Summary:
Represents the education level of a citizen in the simulation. Used by gameplay systems to determine job eligibility, expected income/skill, building usage preferences, and education-related demands or behaviours. The enum values are integer-backed, starting at 0.


Fields

  • Uneducated = 0
    Represents citizens with no formal education. Typically eligible only for the lowest-skilled jobs and may affect building usage and service demand.

  • PoorlyEducated = 1
    Low education level; can perform some basic jobs but with limited opportunities compared to higher levels.

  • Educated = 2
    Mid-level education; eligible for a broader range of jobs and contributes more to higher-tier workplace needs.

  • WellEducated = 3
    High education level; qualifies for skilled jobs and influences demand for advanced services and buildings.

  • HighlyEducated = 4
    Top education tier; typically required for top-tier jobs and advanced industry or service usage.

Properties

  • None (enum has no custom properties).
    Note: System.Enum provides runtime helpers (e.g., GetValues, GetNames) for working with enum members.

Constructors

  • None (enums do not define constructors beyond the default underlying-value initialization).

Methods

  • No custom methods are defined on this enum.
    Remarks: Standard System.Enum and object methods apply, e.g., ToString(), CompareTo(), Enum.IsDefined(typeof(CitizenEducationLevel), value), and Enum.GetValues(typeof(CitizenEducationLevel)).

Usage Example

using Game.Citizens;

// Assigning an education level
CitizenEducationLevel level = CitizenEducationLevel.Educated;

// Checking or branching based on level
if (level >= CitizenEducationLevel.WellEducated)
{
    // Give access to higher-tier jobs or services
}

// Casting to an int for storage or comparison
int numeric = (int)level; // 2 for Educated

// Safe parsing from an int (e.g., when loading saved data)
int loadedValue = /* read from save or network */;
if (Enum.IsDefined(typeof(CitizenEducationLevel), loadedValue))
{
    level = (CitizenEducationLevel)loadedValue;
}
else
{
    level = CitizenEducationLevel.Uneducated; // fallback
}

Additional notes: - When serializing/saving, store the underlying integer value to ensure compatibility across sessions and mod versions. - Be careful when comparing enums across assemblies or when mods introduce custom values; prefer defensive checks (Enum.IsDefined) or a mapping layer. - Use Enum.GetValues(typeof(CitizenEducationLevel)) to iterate all defined education levels for UI lists or configuration.