diff --git a/src/game/engine/src/autoloads/turn_manager.gd b/src/game/engine/src/autoloads/turn_manager.gd index 9ec294ea..1e94901f 100644 --- a/src/game/engine/src/autoloads/turn_manager.gd +++ b/src/game/engine/src/autoloads/turn_manager.gd @@ -190,16 +190,18 @@ func end_turn() -> void: var player: RefCounted = GameState.get_current_player() # Player var game_map: RefCounted = GameState.get_game_map() # GameMap if player != null and game_map != null: - # Processing order per design spec: - # 1. Food (growth) 2. Production 3. Gold (economy) - # 4. Science 5. Culture (borders) 6. Happiness (golden age) + # Processing order: culture FIRST so new tiles are available for + # citizen assignment during growth. Otherwise new pop can't work + # the tile just claimed this turn. + # 1. Culture (borders) 2. Food (growth) 3. Production + # 4. Gold (economy) 5. Science 6. Happiness (golden age) # 7. Mana 8. Victory 9. Healing 10. Improvements - var proc := _processor as TurnProcessorScript + var proc: TurnProcessorScript = _processor as TurnProcessorScript + proc._process_culture(player, game_map) proc._process_growth(player) proc._process_production(player) proc._process_economy(player, game_map) proc._process_research(player) - proc._process_culture(player, game_map) proc._process_golden_age(player, game_map) proc._process_mana(player, game_map) proc._process_healing(player)