Show unit facing on battlefield

This commit is contained in:
2026-06-19 19:29:56 +09:00
parent 3427116513
commit b01995db00
4 changed files with 93 additions and 5 deletions

View File

@@ -3032,6 +3032,8 @@ func _check_hud_focus_text(failures: Array[String]) -> void:
failures.append("Cao Cao HUD focus should describe command role: %s" % cao_text)
if not cao_text.contains("행군 4 (보병)") or not cao_text.contains("타격 1-1"):
failures.append("Cao Cao HUD focus should clarify move/attack affordance: %s" % cao_text)
if not cao_text.contains("시선 동쪽"):
failures.append("Cao Cao HUD focus should expose facing direction: %s" % cao_text)
if not cao_text.contains("군령:") or not cao_text.contains("행군") or not cao_text.contains("타격") or not cao_text.contains("책략") or not cao_text.contains("병장") or not cao_text.contains("대기"):
failures.append("Cao Cao HUD focus should summarize available actions: %s" % cao_text)
if not cao_text.contains("지형 2,7"):
@@ -3051,6 +3053,8 @@ func _check_hud_focus_text(failures: Array[String]) -> void:
failures.append("Archer HUD focus should describe ranged role: %s" % archer_text)
if not archer_text.contains("행군 4 (궁병)") or not archer_text.contains("타격 2-2"):
failures.append("Archer HUD focus should clarify ranged attack affordance: %s" % archer_text)
if not archer_text.contains("시선 서쪽"):
failures.append("Enemy archer HUD focus should expose facing direction: %s" % archer_text)
if not archer_text.contains("군령: 적군 군기"):
failures.append("Enemy archer HUD focus should describe enemy control: %s" % archer_text)
if not scene._unit_current_terrain_text(archer).contains("산지"):
@@ -3068,6 +3072,14 @@ func _check_hud_focus_text(failures: Array[String]) -> void:
var marker_rect: Rect2 = scene._recovery_marker_rect(Vector2i(6, 5))
if not scene._rect_for_cell(Vector2i(6, 5)).encloses(marker_rect):
failures.append("Recovery terrain marker should stay inside its tile: %s" % str(marker_rect))
var facing_tile_rect: Rect2 = scene._rect_for_cell(Vector2i(1, 6))
var facing_marker_points: PackedVector2Array = scene._unit_facing_marker_points(facing_tile_rect, cao_cao)
var facing_points_inside := facing_marker_points.size() == 3
for point in facing_marker_points:
if not facing_tile_rect.has_point(point):
facing_points_inside = false
if not facing_points_inside:
failures.append("Unit facing marker should stay anchored inside its tile: %s" % str(facing_marker_points))
_check_unit_class_mark(failures, scene, "cao_cao", "tactic", "")
_check_unit_class_mark(failures, scene, "xiahou_dun", "cavalry", "")
_check_unit_class_mark(failures, scene, "yellow_turban_2", "infantry", "")