Expose enemy AI state in battle UI

This commit is contained in:
2026-06-20 10:24:29 +09:00
parent 428b91b59d
commit aadf8b2f98
2 changed files with 69 additions and 5 deletions

View File

@@ -4490,8 +4490,12 @@ func _check_battle_unit_list_panel(failures: Array[String]) -> void:
failures.append("enemy battle unit list should keep raw coordinates out of visible badges: %s" % enemy_visible_text)
if enemy_visible_text.contains("군령:") or enemy_visible_text.contains("직접 명령"):
failures.append("enemy battle unit list rows should keep dense enemy detail in hover text: %s" % enemy_visible_text)
if not (enemy_badge_text.contains("대기") or enemy_badge_text.contains("수비") or enemy_badge_text.contains("경계")):
failures.append("enemy battle unit list should expose compact AI state badges: %s" % enemy_badge_text)
if not enemy_tooltips.contains("군령: 적군 군기") or not enemy_tooltips.contains("클릭하면 위치로 이동"):
failures.append("enemy battle unit list tooltips should retain enemy detail: %s" % enemy_tooltips)
if not enemy_tooltips.contains("유인 반경") or not enemy_tooltips.contains("거점 경계 반경"):
failures.append("enemy battle unit list tooltips should explain sentry and guard behavior: %s" % enemy_tooltips)
if not _has_descendant_texture(scene.battle_unit_list_rows):
failures.append("enemy battle unit list should show unit sprite artwork")
if _find_descendant_by_name(scene.battle_unit_list_rows, "BattleUnitListClassIcon") == null:
@@ -4746,6 +4750,17 @@ func _check_hover_intent_badges(failures: Array[String]) -> void:
failures.append("enemy hover info badge should use generated threat icon metadata: %s" % str(enemy_hover_badge))
if str(enemy_hover_badge.get("panel", "")) != "hud_jade":
failures.append("enemy hover info badge should use generated jade panel metadata: %s" % str(enemy_hover_badge))
var central_sentry: Dictionary = scene.state.get_unit("yellow_turban_5")
central_sentry["ai_awake"] = false
scene.hover_cell = central_sentry.get("pos", Vector2i(10, 6))
var sentry_hover_badge := scene._hover_info_badge()
var sentry_hover_text := str(sentry_hover_badge.get("lines", []))
if not sentry_hover_text.contains("초병 대기") or not sentry_hover_text.contains("제4군령"):
failures.append("sleeping sentry hover badge should expose lure timing compactly: %s" % str(sentry_hover_badge))
central_sentry["ai_awake"] = true
var awake_sentry_hover_badge := scene._hover_info_badge()
if not str(awake_sentry_hover_badge.get("lines", [])).contains("초병 경계"):
failures.append("awake sentry hover badge should show the changed AI state: %s" % str(awake_sentry_hover_badge))
scene.hover_cell = Vector2i(4, 2)
var event_hover_badge := scene._hover_info_badge()
if str(event_hover_badge.get("kind", "")) != "event" or not str(event_hover_badge.get("lines", [])).contains("표식 북숲 보급고"):