babylon.engine.interceptor
Event Interceptor pattern for Epoch 2 adversarial mechanics.
Chain of Responsibility for event processing. Interceptors can: - Allow: Pass event unchanged - Block: Stop event with narrative reason - Modify: Transform event before emission
Enables State, Fascist factions, and adversarial actors to interfere with player actions before they take effect.
Classes
|
Audit record for blocked events. |
Abstract base for event interceptors. |
|
|
Immutable result of interceptor processing. |
|
Basic WorldContext for testing. |
|
Read-only world state for interceptor decisions. |
- class babylon.engine.interceptor.WorldContext(*args, **kwargs)[source]
Bases:
ProtocolRead-only world state for interceptor decisions.
- __init__(*args, **kwargs)
- class babylon.engine.interceptor.SimpleWorldContext(tick=0, data=<factory>)[source]
Bases:
objectBasic WorldContext for testing.
- class babylon.engine.interceptor.InterceptResult(event, reason='')[source]
Bases:
objectImmutable result of interceptor processing.
- event
Event to continue with, or None if blocked.
- reason
Narrative explanation (required if blocked).
- classmethod block(reason)[source]
Block event with narrative reason.
- Return type:
- Parameters:
reason (str)
- class babylon.engine.interceptor.BlockedEvent(event, interceptor_name, reason, blocked_at=<factory>)[source]
Bases:
objectAudit record for blocked events.
- class babylon.engine.interceptor.EventInterceptor[source]
Bases:
ABCAbstract base for event interceptors.
Priority ranges (higher runs first): - 90-100: Security/State (block first) - 50-89: Faction/adversarial - 10-49: Resource/validation - 1-9: Logging/audit (run last)
- abstractmethod intercept(event, context)[source]
Process event. Return allow/block/modify result.
- Return type:
- Parameters:
event (Event)
context (WorldContext | None)