diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index ef193dc..e2c8102 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -10916,17 +10916,21 @@ func _update_hud_unit_portrait(unit: Dictionary) -> void: func _update_cell_info() -> void: if cell_info_label == null: return - if cell_info_panel != null: - cell_info_panel.visible = state.is_inside(hover_cell) if not state.is_inside(hover_cell): - cell_info_label.text = "" - cell_info_label.tooltip_text = "전장 칸 위에 올리면 지형과 부대 정보를 볼 수 있습니다." + var idle_visible := battle_started and state.battle_status == BattleState.STATUS_ACTIVE + if cell_info_panel != null: + cell_info_panel.visible = idle_visible + cell_info_label.text = "전장 칸 관측 대기" if idle_visible else "" + cell_info_label.tooltip_text = "전장 칸 위에 마우스를 올리면 지형, 회복지, 목표, 부대 정보를 볼 수 있습니다." if cell_info_icon != null: cell_info_icon.texture = _make_toolbar_icon("terrain") cell_info_icon.set_meta("icon_kind", "terrain") + cell_info_icon.tooltip_text = cell_info_label.tooltip_text if cell_info_panel != null: _set_control_tree_tooltip(cell_info_panel, cell_info_label.tooltip_text) return + if cell_info_panel != null: + cell_info_panel.visible = true var detail_text := _format_cell_info_detail_text(hover_cell) cell_info_label.text = _format_cell_info_summary_text(hover_cell) cell_info_label.tooltip_text = detail_text diff --git a/tools/smoke_visual_assets.gd b/tools/smoke_visual_assets.gd index ca49925..9ebd5f7 100644 --- a/tools/smoke_visual_assets.gd +++ b/tools/smoke_visual_assets.gd @@ -5664,9 +5664,16 @@ func _check_terrain_and_unit_presentation(failures: Array[String]) -> void: if scene.state.get_event_marker_kind(Vector2i(4, 6)) != "tactic": failures.append("tactical lure marker should expose tactic kind") scene.hover_cell = Vector2i(-1, -1) + scene.battle_started = true scene._update_cell_info() - if scene.cell_info_panel != null and scene.cell_info_panel.visible: - failures.append("cell info panel should hide when the cursor is outside the board") + if scene.cell_info_panel == null or not scene.cell_info_panel.visible: + failures.append("cell info panel should keep a compact observation prompt during active battle") + elif scene.cell_info_label == null or scene.cell_info_label.text != "전장 칸 관측 대기": + failures.append("idle cell info prompt should explain battlefield observation: %s" % ("" if scene.cell_info_label == null else scene.cell_info_label.text)) + elif not scene.cell_info_label.tooltip_text.contains("지형") or not scene.cell_info_label.tooltip_text.contains("부대"): + failures.append("idle cell info prompt should keep detail in tooltip: %s" % scene.cell_info_label.tooltip_text) + elif scene.cell_info_icon == null or str(scene.cell_info_icon.get_meta("icon_kind", "")) != "terrain": + failures.append("idle cell info prompt should use terrain observation icon") scene.state.select_unit("cao_cao") var forecast_enemy: Dictionary = scene.state.get_unit("yellow_turban_1") forecast_enemy["pos"] = Vector2i(1, 5)