From 6a2157b29f5931a2638b6161dd762e848ea7c411 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sat, 20 Jun 2026 20:05:03 +0900 Subject: [PATCH] Clarify auto move attack badge --- scripts/scenes/battle_scene.gd | 2 +- tools/capture_readability_frames.gd | 34 +++++++++++++++++++++++++++- tools/smoke_directional_combat.gd | 2 ++ tools/smoke_post_move_action_flow.gd | 2 ++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index 51f7c62..0121a37 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -9172,7 +9172,7 @@ func _format_auto_attack_target_badge_text(preview: Dictionary) -> String: var result_text := "퇴각" if bool(preview.get("would_defeat", false)) else "-%d" % damage var directional_text := _format_directional_badge_suffix(preview) var counter_text := _format_auto_attack_counter_badge_suffix(preview) - return "%s%s %d%%%s" % [result_text, directional_text, hit_chance, counter_text] + return "이동 %s%s %d%%%s" % [result_text, directional_text, hit_chance, counter_text] func _format_auto_attack_target_hint(preview: Dictionary) -> String: diff --git a/tools/capture_readability_frames.gd b/tools/capture_readability_frames.gd index bac0f57..1faae85 100644 --- a/tools/capture_readability_frames.gd +++ b/tools/capture_readability_frames.gd @@ -102,15 +102,47 @@ func _capture_viewport_set(spec: Dictionary, output_dir: String, captures: Array await _settle() await _capture_frame(scene, output_dir, label, "07_battle_idle", captures, failures) + _prepare_auto_attack_hint_frame(scene) + await _settle() + await _capture_frame(scene, output_dir, label, "08_battle_auto_attack_hint", captures, failures) + scene._update_threat_button() scene._on_command_hint_button_mouse_entered(scene.threat_button) await _settle() - await _capture_frame(scene, output_dir, label, "08_battle_threat_hint", captures, failures) + await _capture_frame(scene, output_dir, label, "09_battle_threat_hint", captures, failures) scene.queue_free() await _settle() +func _prepare_auto_attack_hint_frame(scene) -> void: + scene._hide_post_move_menu() + scene._hide_post_move_picker() + scene._hide_tactic_menu() + scene._hide_item_menu() + scene._hide_equip_menu() + scene._clear_pending_move_state() + scene.selected_skill_id = "" + scene.selected_item_id = "" + scene.basic_attack_targeting = false + var cao_cao: Dictionary = scene.state.get_unit("cao_cao") + var enemy: Dictionary = scene.state.get_unit("yellow_turban_1") + if cao_cao.is_empty() or enemy.is_empty(): + return + cao_cao["pos"] = Vector2i(1, 3) + cao_cao["moved"] = false + cao_cao["acted"] = false + enemy["pos"] = Vector2i(4, 3) + enemy["alive"] = true + enemy["hp"] = maxi(1, int(enemy.get("hp", 24))) + scene.state.select_unit("cao_cao") + scene.hover_cell = Vector2i(4, 3) + scene._refresh_ranges() + scene._focus_board_on_cell(Vector2i(4, 3)) + scene._update_hud() + scene.queue_redraw() + + func _capture_frame(_scene, output_dir: String, viewport_label: String, frame_label: String, captures: Array[Dictionary], failures: Array[String]) -> void: var texture := get_root().get_texture() if texture == null: diff --git a/tools/smoke_directional_combat.gd b/tools/smoke_directional_combat.gd index 19177bd..56bda4b 100644 --- a/tools/smoke_directional_combat.gd +++ b/tools/smoke_directional_combat.gd @@ -238,6 +238,8 @@ func _check_scene_directional_attack_badges(failures: Array[String]) -> void: var auto_badge: Dictionary = scene._target_preview_badge() if str(auto_badge.get("text", "")).contains("행공") or not str(auto_badge.get("tooltip", "")).contains("이동 후 공격"): failures.append("auto-move attack hover badge should use a clear hint instead of jargon: %s" % str(auto_badge)) + if not str(auto_badge.get("text", "")).contains("이동"): + failures.append("auto-move attack hover badge should visibly show that movement is included: %s" % str(auto_badge)) if not str(auto_badge.get("text", "")).contains("후+%d" % BattleStateScript.DIRECTIONAL_BACK_DAMAGE_BONUS): failures.append("auto-move attack hover badge should expose compact rear bonus: %s" % str(auto_badge)) if not str(auto_badge.get("tooltip", "")).contains("후방 공격 +%d 피해" % BattleStateScript.DIRECTIONAL_BACK_DAMAGE_BONUS): diff --git a/tools/smoke_post_move_action_flow.gd b/tools/smoke_post_move_action_flow.gd index c3ac85b..f29fde2 100644 --- a/tools/smoke_post_move_action_flow.gd +++ b/tools/smoke_post_move_action_flow.gd @@ -689,6 +689,8 @@ func _check_scene_enemy_click_auto_attack(failures: Array[String]) -> void: var auto_badge := scene._target_preview_badge() if str(auto_badge.get("text", "")).contains("행공") or not str(auto_badge.get("tooltip", "")).contains("이동 후 공격"): failures.append("hovering a move+attack target should use metadata instead of jargon text: %s" % str(auto_badge)) + if not str(auto_badge.get("text", "")).contains("이동"): + failures.append("move+attack hover badge should visibly say that movement is included: %s" % str(auto_badge)) if not ["advance", "counter", "danger"].has(str(auto_badge.get("kind", ""))): failures.append("move+attack hover badge should use an attack-risk color kind: %s" % str(auto_badge)) if str(auto_badge.get("icon", "")).strip_edges().is_empty():