Skip to content

Game.Citizens.CriminalFlags

Assembly: Assembly-CSharp
Namespace: Game.Citizens

Type: public enum (flags)

Base: System.Enum (underlying type: System.UInt16 / ushort)

Summary: CriminalFlags is a bitwise flags enum used to represent the criminal-related state(s) of a citizen in the game. Multiple flags can be combined to express composite states (for example, a citizen could be both Monitored and Preparing). The enum is annotated with [Flags], so it is intended for bitwise operations (set/clear/test/toggle).


Fields

  • Robber = 1
    Represents a citizen actively committing robbery or marked as a robber.

  • Prisoner = 2
    Indicates the citizen is currently held as a prisoner.

  • Planning = 4
    Indicates the citizen is in a planning/preparatory stage (e.g., planning a crime).

  • Preparing = 8
    Indicates the citizen is preparing to commit a crime or take an action.

  • Monitored = 0x10
    Indicates the citizen is being monitored/surveilled (e.g., by police services).

  • Arrested = 0x20
    Indicates the citizen has been arrested.

  • Sentenced = 0x40
    Indicates the citizen has been sentenced (result of judicial process).

Properties

  • None.
    (This is an enum type; it exposes no instance properties beyond standard Enum members.)

Constructors

  • None (enum types do not define explicit constructors).
    The implicit default value is 0 (no flags set).

Methods

  • None declared on this enum.
    Standard System.Enum and bitwise operations apply. Common helpers:
  • Enum.HasFlag(CriminalFlags flag) — checks whether a flag is present.
  • (flags & CriminalFlags.SomeFlag) != 0 — common pattern to test a flag.
  • flags |= CriminalFlags.SomeFlag — set a flag.
  • flags &= ~CriminalFlags.SomeFlag — clear a flag.
  • Enum.ToString() — prints the combined flag names when multiple bits are set.

Usage Example

// mark a citizen as a robber and monitored
CriminalFlags flags = CriminalFlags.Robber | CriminalFlags.Monitored;

// check if monitored
bool isMonitored = (flags & CriminalFlags.Monitored) != 0;
// or: flags.HasFlag(CriminalFlags.Monitored)

// add Preparing state
flags |= CriminalFlags.Preparing;

// remove Robber state
flags &= ~CriminalFlags.Robber;

// toggle Arrested
flags ^= CriminalFlags.Arrested;

// check for multiple states (e.g., Preparing and Monitored)
bool preparingAndMonitored = flags.HasFlag(CriminalFlags.Preparing)
                             && flags.HasFlag(CriminalFlags.Monitored);

{{ - Notes: - Because the underlying type is ushort, up to 16 distinct bit flags can be represented. - Use the [Flags] semantics when serializing or displaying values — combined values will be rendered as comma-separated names by Enum.ToString(). - Treat the enum as a lightweight, bitwise state container for criminal-related behaviours when writing citizen AI, event handling, or UI logic in mods. }}