diff --git a/src/game/engine/src/modules/ai/simple_heuristic_ai.gd b/src/game/engine/src/modules/ai/simple_heuristic_ai.gd index 426d9e82..8138c4bb 100644 --- a/src/game/engine/src/modules/ai/simple_heuristic_ai.gd +++ b/src/game/engine/src/modules/ai/simple_heuristic_ai.gd @@ -56,7 +56,11 @@ static func process_player(player: RefCounted) -> Array: var action: Dictionary = {} if unit.can_found_city: action = _decide_founder_action(idx, unit, player, enemy_units) - elif unit.unit_type in MILITARY_COMBAT_TYPES: + elif unit.attack > 0 or unit.ranged_attack > 0: + # Stat-based dispatch — `unit.unit_type` is read from a JSON field + # (`combat_type`) that the current data files don't populate, so it + # would always be empty here. Anything with combat stats and no + # founder flag is treated as a military unit. action = _decide_military_action( idx, unit,