From 532f0c1d43962f23b3548f8472d6f2f1be76b2c5 Mon Sep 17 00:00:00 2001 From: autocommit Date: Tue, 28 Apr 2026 23:08:59 -0700 Subject: [PATCH] =?UTF-8?q?feat(game-engine):=20=E2=9C=A8=20Add=20event=20?= =?UTF-8?q?signals=20for=20courier=20diplomacy=20mechanics=20to=20enable?= =?UTF-8?q?=20trade=20and=20shared=20map=20interactions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/src/autoloads/event_bus.gd | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/game/engine/src/autoloads/event_bus.gd b/src/game/engine/src/autoloads/event_bus.gd index 2737f97e..b14ad789 100644 --- a/src/game/engine/src/autoloads/event_bus.gd +++ b/src/game/engine/src/autoloads/event_bus.gd @@ -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)