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) ──────────