diff --git a/src/game/engine/src/autoloads/data_loader.gd b/src/game/engine/src/autoloads/data_loader.gd index 9659cc13..aaa70381 100644 --- a/src/game/engine/src/autoloads/data_loader.gd +++ b/src/game/engine/src/autoloads/data_loader.gd @@ -290,6 +290,11 @@ func get_wilds_config() -> Dictionary: func get_villages_config() -> Dictionary: return _get_entry("villages", "villages") +func get_fauna_species(species_id: String) -> Dictionary: + var wilds: Dictionary = get_wilds_config() + var creature_loot: Dictionary = wilds.get("creature_loot", {}) + return creature_loot.get(species_id, {}) + func get_npc_building_type(type_id: String) -> Dictionary: return _get_entry("npc_buildings", type_id) diff --git a/src/game/engine/src/autoloads/event_bus.gd b/src/game/engine/src/autoloads/event_bus.gd index 56f1d139..6538622d 100644 --- a/src/game/engine/src/autoloads/event_bus.gd +++ b/src/game/engine/src/autoloads/event_bus.gd @@ -63,6 +63,7 @@ signal item_produced(city: Variant, item_id: String) ## pattern documented by mc-city::production. signal item_crafted(item_id: String, city: Variant, player: Variant) ## Emitted when the civ-wide material stockpile changes (add or consume). +signal loot_dropped(player: Variant, creature_type: String, drops: Array) signal stockpile_changed(player: Variant, resource_id: String, delta: int, total: int) ## Emitted when the Treasury crosses the 20-item soft cap. Informational only — ## adds are never blocked. UI should show a subtle hint, not a modal.