From 58a9b3abace2c5897e7e81047dc8c2312e059b1e Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sat, 20 Jun 2026 18:15:49 +0900 Subject: [PATCH] Expose unit facing on hover badges --- scripts/scenes/battle_scene.gd | 9 +++++++++ tools/smoke_directional_combat.gd | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index 70cc722..2a70edd 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -8826,6 +8826,9 @@ func _hover_info_badge_lines(cell: Vector2i) -> Array[String]: int(unit.get("mp", 0)), int(unit.get("max_mp", 0)) ]) + var facing_line := _unit_facing_hover_line(unit) + if not facing_line.is_empty(): + lines.append(facing_line) var status_effects := state.get_status_effect_summary(str(unit.get("id", ""))) var ai_hint := _unit_ai_behavior_hover_line(unit) if not ai_hint.is_empty(): @@ -10393,6 +10396,12 @@ func _unit_facing_text(unit: Dictionary) -> String: return "서쪽" if _unit_pixel_facing(unit) < 0 else "동쪽" +func _unit_facing_hover_line(unit: Dictionary) -> String: + if unit.is_empty(): + return "" + return "시선 %s · 후방 주의" % _unit_facing_text(unit) + + func _unit_has_usable_item_target(unit_id: String) -> bool: for item_id in state.get_usable_item_ids(): if _item_has_valid_target(unit_id, str(item_id)): diff --git a/tools/smoke_directional_combat.gd b/tools/smoke_directional_combat.gd index 481d90a..19177bd 100644 --- a/tools/smoke_directional_combat.gd +++ b/tools/smoke_directional_combat.gd @@ -140,6 +140,12 @@ func _check_scene_pixel_facing(failures: Array[String]) -> void: failures.append("unit facing text should localize west-facing units") if scene._unit_facing_text(enemy) != "동쪽": failures.append("unit facing text should localize east-facing units") + var enemy_hover_lines := scene._hover_info_badge_lines(Vector2i(enemy.get("pos", Vector2i(-1, -1)))) + var enemy_hover_text := "\n".join(enemy_hover_lines) + if not enemy_hover_text.contains("시선 동쪽") or not enemy_hover_text.contains("후방 주의"): + failures.append("unit hover badge should expose facing and rear-risk text: %s" % enemy_hover_text) + if enemy_hover_lines.size() > 4: + failures.append("unit hover badge should stay compact after adding facing: %s" % str(enemy_hover_lines)) var marker_rect := Rect2(Vector2(12.0, 20.0), Vector2(scene.TILE_SIZE, scene.TILE_SIZE)) var left_points: PackedVector2Array = scene._unit_facing_marker_points(marker_rect, player)