From 5e31628a10def0e31cc8fc1748e5731e6df8550c Mon Sep 17 00:00:00 2001 From: autocommit Date: Wed, 15 Apr 2026 01:24:28 -0700 Subject: [PATCH] =?UTF-8?q?feat(management):=20=E2=9C=A8=20Introduce=20dis?= =?UTF-8?q?tinct=20event=20types=20for=20city=20growth=20and=20starvation?= =?UTF-8?q?=20with=20new=20helper=20functions=20for=20population=20change?= =?UTF-8?q?=20management?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/src/modules/management/turn_processor.gd | 5 ++++- .../engine/src/modules/management/turn_processor_helpers.gd | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/game/engine/src/modules/management/turn_processor.gd b/src/game/engine/src/modules/management/turn_processor.gd index 601a875b..89c671ee 100644 --- a/src/game/engine/src/modules/management/turn_processor.gd +++ b/src/game/engine/src/modules/management/turn_processor.gd @@ -231,7 +231,10 @@ func _process_growth(player: RefCounted) -> void: # Player if c.population != prev_pop: # Re-assign citizens to tiles after growth or starvation c.auto_assign_citizens(tile_json) - EventBus.city_grew.emit(c, c.population) + if c.population > prev_pop: + EventBus.city_grew.emit(c, c.population) + else: + EventBus.city_starved.emit(c, c.population) func _sum_city_building_effect(city: CityScript, effect_type: String) -> int: diff --git a/src/game/engine/src/modules/management/turn_processor_helpers.gd b/src/game/engine/src/modules/management/turn_processor_helpers.gd index a6f81dc4..2deaa650 100644 --- a/src/game/engine/src/modules/management/turn_processor_helpers.gd +++ b/src/game/engine/src/modules/management/turn_processor_helpers.gd @@ -99,7 +99,12 @@ static func process_growth(player: RefCounted) -> void: if city is CityScript: var c: CityScript = city as CityScript var tile_json: String = build_tile_yields_json(c, game_map) + var prev_pop: int = c.population c.process_growth(tile_json) + if c.population > prev_pop: + EventBus.city_grew.emit(c, c.population) + elif c.population < prev_pop: + EventBus.city_starved.emit(c, c.population) # ── Healing (iter 7w: move to mc-turn::process_healing) ──────────