feat(game-engine): Add event signals for courier diplomacy mechanics to enable trade and shared map interactions

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
autocommit 2026-04-28 23:08:59 -07:00
parent 8049e7ec7c
commit 532f0c1d43

View file

@ -289,3 +289,27 @@ signal rally_point_set(building_id: String, hex: Vector2i, command: String)
signal building_placement_pick_requested(building_id: String, city: Variant, building_def_json: String)
## p1-26c: emitted once the player confirms a placement tile for a building.
signal building_placement_confirmed(building_id: String, city: Variant, tile_pos: Vector2i)
# -- Courier diplomacy signals (p3-01 c5) ------------------------------------
## Mirrors mc-trade::CourierDispatched. Emitted by turn processor on dispatch.
signal courier_dispatched(agreement_id: int, from_player: int, to_player: int, courier_unit: String, eta_turns: int)
## Mirrors mc-trade::CourierIntercepted. Emitted mid-route when courier is killed.
signal courier_intercepted(agreement_id: int, at_position: Vector2i, by_player: int)
## Mirrors mc-trade::SharedMapDelivered. Emitted when courier reaches destination.
signal shared_map_delivered(agreement_id: int, from_player: int, to_player: int, turns_remaining: int)
## Mirrors mc-trade::SharedMapExpired. Emitted when the shared-map window closes.
signal shared_map_expired(agreement_id: int)
## Mirrors mc-trade::OpenBordersSigned. Emitted when open-borders deal is made.
signal open_borders_signed(agreement_id: int, player_a: int, player_b: int, turns_remaining: int)
## Mirrors mc-trade::OpenBordersExpired. Emitted when open-borders deal lapses.
signal open_borders_expired(agreement_id: int)
## Emitted by Diplomacy module when the human offers an OpenBorders deal.
signal open_borders_offered(from_player: int, to_player: int, gold: int, luxury_id: String)
## Emitted by Diplomacy module when the human offers a SharedMap deal.
signal shared_map_offered(from_player: int, to_player: int, gold: int, luxury_id: String)
# -- Audio diagnostics --------------------------------------------------------
## Emitted by AudioManager once per key when an SFX cannot be played because
## the manifest entry is missing or its stream fails to load. UI can wire a
## toast off this signal; the warning is also pushed to Godot's stderr.
signal audio_asset_missing(key: String, reason: String)