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. }}