diff --git a/src/game/engine/scenes/world_map/world_map.gd b/src/game/engine/scenes/world_map/world_map.gd index 740333ef..83506c9c 100644 --- a/src/game/engine/scenes/world_map/world_map.gd +++ b/src/game/engine/scenes/world_map/world_map.gd @@ -438,8 +438,8 @@ func _check_village_discovery(axial: Vector2i) -> void: func _show_unit_panel(unit: RefCounted) -> void: var display_name: String = ThemeVocabulary.lookup(unit.type_id) - if unit.name != "" and unit.name != unit.type_id: - display_name = unit.name + if unit.display_name != "" and unit.display_name != unit.type_id: + display_name = unit.display_name var stats: String = ( "HP: %d/%d ATK: %d DEF: %d" % [unit.hp, unit.max_hp, unit.attack, unit.defense] ) diff --git a/src/game/engine/src/entities/unit.gd b/src/game/engine/src/entities/unit.gd index 44605197..5f4fcad8 100644 --- a/src/game/engine/src/entities/unit.gd +++ b/src/game/engine/src/entities/unit.gd @@ -102,9 +102,16 @@ func _populate_from_data() -> void: unit_type = data.get("combat_type", "") if display_name.is_empty(): display_name = data.get("name", unit_id.capitalize()) - var keywords: Array = data.get("keywords", []) - can_found_city = "found_city" in keywords or unit_type == "settler" - can_build_improvements = "build" in keywords or unit_type == "worker" + var is_founder: bool = ( + unit_id.contains("founder") or unit_id.contains("settler") + ) + can_found_city = data.get("can_found_city", is_founder) + var is_builder: bool = ( + unit_id.contains("worker") or unit_id.contains("engineer") + ) + can_build_improvements = data.get( + "can_build_improvements", is_builder + ) # ── Per-turn refresh (called by turn_processor.gd) ────────────────────