babylon.engine.systems.control_ratio
Control ratio system for tracking guard:prisoner dynamics.
This system monitors the balance between carceral enforcers and the prisoner population (INTERNAL_PROLETARIAT + LUMPENPROLETARIAT). When prisoners exceed the control capacity, a CONTROL_RATIO_CRISIS occurs.
User specification: 1:20 ratio (1 guard can control 20 prisoners).
The terminal decision bifurcation: - If average organization >= 0.5: prisoners + guards unite in REVOLUTION - If average organization < 0.5: system turns GENOCIDAL to eliminate surplus
See ai-docs/terminal-crisis-dynamics.md for full theory.
Classes
Track guard:prisoner ratio and trigger terminal decision. |
- class babylon.engine.systems.control_ratio.ControlRatioSystem[source]
Bases:
objectTrack guard:prisoner ratio and trigger terminal decision.
When enforcers × CONTROL_CAPACITY < prisoners, a control ratio crisis occurs. The outcome depends on prisoner organization: - High org (>= 0.5): Revolution - prisoners and guards unite - Low org (< 0.5): Genocide - system eliminates surplus population
- name = 'ControlRatio'
- step(graph, services, context)[source]
Check control ratio and emit crisis/terminal decision events with delays.
Uses persistent_data to track phase timing: - Waits for _class_decomposition_tick + control_ratio_delay before checking - Emits CONTROL_RATIO_CRISIS when prisoners exceed capacity - Waits terminal_decision_delay before emitting TERMINAL_DECISION
- Parameters:
graph (nx.DiGraph[str] | GraphProtocol)
services (ServiceContainer)
context (ContextType)
- Return type:
None