diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index f4a979a..71ac223 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -251,8 +251,8 @@ const UI_OLD_SILK := Color(0.48, 0.44, 0.36, 0.997) const UI_BURNT_PAPER := Color(0.22, 0.18, 0.13, 0.996) const UI_BRUSH_RULE := Color(0.065, 0.060, 0.052, 0.98) const UI_TEXT_DARK_OUTLINE := Color(0.018, 0.012, 0.007, 0.88) -const UI_TEXT_LIGHT_OUTLINE := Color(0.92, 0.84, 0.62, 0.38) -const UI_TEXT_SHADOW := Color(0.010, 0.007, 0.004, 0.58) +const UI_TEXT_LIGHT_OUTLINE := Color(0.96, 0.88, 0.66, 0.56) +const UI_TEXT_SHADOW := Color(0.010, 0.007, 0.004, 0.66) const MAP_SCROLL_FRAME_PADDING := 12.0 const SPEAKER_DISPLAY_NAMES := { "Cao Cao": "조조", @@ -1160,7 +1160,7 @@ func _apply_text_legibility(control: Control, font_color: Color, font_size: int var resolved_size := font_size if resolved_size <= 0: resolved_size = control.get_theme_font_size("font_size") - var outline_size := 2 if resolved_size >= 24 else 1 + var outline_size := 2 if resolved_size >= 13 else 1 control.add_theme_color_override("font_outline_color", _text_outline_color_for(font_color)) control.add_theme_constant_override("outline_size", outline_size) control.add_theme_color_override("font_shadow_color", UI_TEXT_SHADOW) diff --git a/tools/smoke_visual_assets.gd b/tools/smoke_visual_assets.gd index be394fd..9b6ad45 100644 --- a/tools/smoke_visual_assets.gd +++ b/tools/smoke_visual_assets.gd @@ -3293,6 +3293,10 @@ func _check_core_text_visibility(failures: Array[String]) -> void: failures.append("could not load battle scene state for text visibility") scene.free() return + scene._show_briefing() + _check_readable_text_control(failures, scene.briefing_title_label, "briefing title", 18) + _check_readable_text_control(failures, scene.briefing_objective_label, "briefing objective", 12) + _check_readable_text_control(failures, scene.briefing_label, "briefing body", 12) scene._hide_opening_prologue() scene.battle_started = true scene.briefing_panel.visible = false @@ -3301,6 +3305,11 @@ func _check_core_text_visibility(failures: Array[String]) -> void: _check_readable_text_control(failures, scene.status_label, "top turn status", 11) _check_readable_text_control(failures, scene.objective_label, "top objective", 11) _check_readable_text_control(failures, scene.campaign_status_label, "top campaign status", 11) + scene._show_command_notice("군령 갱신", "목표: 성채를 장악하라.\n주의: 조조가 퇴각하면 패한다.") + _check_readable_text_control(failures, scene.objective_notice_label, "command notice", 13) + _check_readable_text_control(failures, scene.auto_end_turn_prompt_label, "auto end turn prompt", 13) + _check_readable_text_control(failures, scene.auto_end_turn_yes_button, "auto end turn confirm", 12) + _check_readable_text_control(failures, scene.auto_end_turn_no_button, "auto end turn decline", 12) var lines := scene._normalized_dialogue_lines([{"speaker": "Cao Cao", "display_speaker": "조조", "text": "영천으로 향한다. 백성이 빠져나갈 길을 연다."}]) scene.active_dialogue_lines = lines @@ -3334,11 +3343,13 @@ func _check_readable_text_control(failures: Array[String], control: Control, con var outline_size := control.get_theme_constant("outline_size") if outline_size < 1: failures.append("%s text should carry a thin outline for image-backed panels" % context) + if font_size >= 13 and outline_size < 2: + failures.append("%s text should carry a stronger outline on generated panels: %d" % [context, outline_size]) var outline_color := control.get_theme_color("font_outline_color") if outline_color.a < 0.25: failures.append("%s outline should be visible enough: %s" % [context, str(outline_color)]) var shadow_color := control.get_theme_color("font_shadow_color") - if shadow_color.a < 0.20: + if shadow_color.a < 0.32: failures.append("%s text should keep a soft shadow: %s" % [context, str(shadow_color)])