diff --git a/src/game/engine/scenes/tests/auto_play.gd b/src/game/engine/scenes/tests/auto_play.gd index 866dd739..85eacc1c 100644 --- a/src/game/engine/scenes/tests/auto_play.gd +++ b/src/game/engine/scenes/tests/auto_play.gd @@ -963,14 +963,23 @@ func _manage_production(city: Variant) -> void: if player != null: for u: Variant in player.units: if u.get("can_found_city") == true: - has_founder = true - # Circumstance-based scoring: each turn, score candidate items and pick best - var built: String = _next_building(city, player, city_count, has_founder) - if built.is_empty(): - built = "warrior" - var unit_ids: Array[String] = ["warrior", "founder", "worker"] - if built in unit_ids: - city.add_to_queue("unit", built) + has_settler = true + # Priority 1: Expand to 3 cities early + if city_count < 3 and not has_settler: + city.add_to_queue("unit", "settler") + # Priority 2: First warrior for defense + elif city_count >= 2 and player.units.is_empty(): + city.add_to_queue("unit", "warrior") + # Priority 3: Walls in each city + elif not city.has_building("walls"): + city.add_to_queue("building", "walls") + # Priority 4: Happiness if unhappy + elif player.happiness < -4 and not city.has_building("brewery") and player.has_tech("brewing"): + city.add_to_queue("building", "brewery") + # Priority 5: Forge + elif not city.has_building("forge"): + city.add_to_queue("building", "forge") + # Priority 6: Warriors else: city.add_to_queue("building", built)