babylon.engine.actions

Player-verb resolver registry (verb-dispatch engine — Design A).

Maps engine ActionType members to resolver callables. The uniform signature is:

resolve_<verb>(action, org_attrs, graph, services) -> ActionResult

A missing resolver returns ActionResult(success=False, failure_reason=...) — loud, never a silent success. The nine canonical player verbs each have a registered resolver; every other ActionType (NPC/state verbs resolved by the Feature-032 machinery, or auto-triggered verbs) has none and fails loud if a player action is ever dispatched for it.

See also

babylon.ooda.action_effects.resolve_action(): the effects machinery the consciousness-class resolvers (educate / campaign / aid) compose.

Module Attributes

VERB_RESOLVERS

The single source of truth mapping ActionType -> resolver.

Functions

resolve_player_action(action, org_attrs, ...)

Dispatch one player action to its registered resolver.

Classes

VerbResolver(*args, **kwargs)

Structural type for a player-verb resolver.

babylon.engine.actions.VERB_RESOLVERS: dict[ActionType, VerbResolver] = {ActionType.ATTACK_INFRASTRUCTURE: <function resolve_attack>, ActionType.EDUCATE: <function resolve_educate>, ActionType.MAP_NETWORK: <function resolve_investigate>, ActionType.MOVE: <function resolve_move>, ActionType.PROPAGANDIZE: <function resolve_campaign>, ActionType.PROPOSE_ALLIANCE: <function resolve_negotiate>, ActionType.PROTEST: <function resolve_mobilize>, ActionType.PROVIDE_SERVICE: <function resolve_aid>, ActionType.RECRUIT: <function resolve_reproduce>}

The single source of truth mapping ActionType -> resolver. The web bridge’s VERB_TO_ACTION_TYPE maps player verb strings onto exactly these keys; the contract suite pins set(VERB_TO_ACTION_TYPE.values()) == keys.

class babylon.engine.actions.VerbResolver(*args, **kwargs)[source]

Bases: Protocol

Structural type for a player-verb resolver.

__call__(action, org_attrs, graph, services)[source]

Resolve one player action into an ActionResult.

Return type:

ActionResult

Parameters:
__init__(*args, **kwargs)
babylon.engine.actions.resolve_player_action(action, org_attrs, graph, services)[source]

Dispatch one player action to its registered resolver.

Parameters:
  • action (Action) – The player action to resolve.

  • org_attrs (dict[str, Any]) – Acting organization’s node attributes.

  • graph (BabylonGraph) – World graph.

  • services (ServicesProtocol) – ServicesProtocol providing defines.

Return type:

ActionResult

Returns:

The resolver’s ActionResult, or — when no resolver is registered for action.action_type — a loud failure result (success=False with a failure_reason). Never raises, never silently succeeds.

Modules

aid

AID verb resolver (verb-dispatch engine).

attack

ATTACK verb resolver (verb-dispatch engine).

campaign

CAMPAIGN verb resolver (verb-dispatch engine).

educate

EDUCATE verb resolver (verb-dispatch engine).

investigate

INVESTIGATE verb resolver (verb-dispatch engine).

mobilize

MOBILIZE verb resolver (verb-dispatch engine).

move

MOVE verb resolver (verb-dispatch engine).

negotiate

NEGOTIATE verb resolver (verb-dispatch engine).

reproduce

REPRODUCE verb resolver (verb-dispatch engine).