Polish title menu presentation

This commit is contained in:
2026-06-20 12:10:25 +09:00
parent 23ca35616f
commit 47b9840e4b
4 changed files with 79 additions and 39 deletions

View File

@@ -449,6 +449,8 @@ func _check_log_contains(failures: Array[String], logs: Array, expected: String)
func _check_briefing_overview_hides_raw_map_size(failures: Array[String], context: String, overview: String) -> void:
if overview.contains("칸 x") or overview.contains("×") or overview.contains("칸x"):
failures.append("%s should describe battlefield scale without raw grid dimensions: %s" % [context, overview])
if overview.contains("칸 +"):
failures.append("%s should keep recovery cell counts out of visible briefing text: %s" % [context, overview])
if not overview.contains("전장"):
failures.append("%s should keep a readable battlefield scale label: %s" % [context, overview])
@@ -481,8 +483,8 @@ func _check_briefing_battlefield_overview(failures: Array[String]) -> void:
_check_briefing_overview_hides_raw_map_size(failures, "001 briefing battlefield overview", overview)
_check_contains(failures, "001 briefing enemy count", overview, "적세 16명")
_check_contains(failures, "001 briefing enemy classes", overview, "보병")
_check_contains(failures, "001 briefing village recovery", overview, "마을 8칸 +6")
_check_contains(failures, "001 briefing castle recovery", overview, "성채 9칸 +8")
_check_contains(failures, "001 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "001 briefing castle recovery", overview, "성채 회복 +8")
scene.free()
@@ -567,8 +569,8 @@ func _check_sishui_gate_extended_pressure(failures: Array[String]) -> void:
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "002 briefing battlefield overview", overview)
_check_contains(failures, "002 briefing enemy count", overview, "적세 8명")
_check_contains(failures, "002 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "002 briefing castle recovery", overview, "성채 6칸 +8")
_check_contains(failures, "002 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "002 briefing castle recovery", overview, "성채 회복 +8")
scene.free()
@@ -630,7 +632,7 @@ func _check_xingyang_ambush_extended_pressure(failures: Array[String]) -> void:
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "003 briefing battlefield overview", overview)
_check_contains(failures, "003 briefing enemy count", overview, "적세 6명")
_check_contains(failures, "003 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "003 briefing village recovery", overview, "마을 회복 +6")
scene.free()
@@ -683,7 +685,7 @@ func _check_qingzhou_campaign_extended_pressure(failures: Array[String]) -> void
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "004 briefing battlefield overview", overview)
_check_contains(failures, "004 briefing enemy count", overview, "적세 8명")
_check_contains(failures, "004 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "004 briefing village recovery", overview, "마을 회복 +6")
scene.free()
@@ -741,8 +743,8 @@ func _check_puyang_raid_extended_pressure(failures: Array[String]) -> void:
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "005 briefing battlefield overview", overview)
_check_contains(failures, "005 briefing enemy count", overview, "적세 8명")
_check_contains(failures, "005 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "005 briefing camp recovery", overview, "성채 4칸 +8")
_check_contains(failures, "005 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "005 briefing camp recovery", overview, "성채 회복 +8")
scene.free()
@@ -822,8 +824,8 @@ func _check_dingtao_counterattack_extended_pressure(failures: Array[String]) ->
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "006 briefing battlefield overview", overview)
_check_contains(failures, "006 briefing enemy count", overview, "적세 8명")
_check_contains(failures, "006 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "006 briefing center recovery", overview, "성채 4칸 +8")
_check_contains(failures, "006 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "006 briefing center recovery", overview, "성채 회복 +8")
scene.free()
@@ -899,8 +901,8 @@ func _check_xian_emperor_escort_extended_pressure(failures: Array[String]) -> vo
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "007 briefing battlefield overview", overview)
_check_contains(failures, "007 briefing enemy count", overview, "적세 8명")
_check_contains(failures, "007 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "007 briefing road recovery", overview, "성채 4칸 +8")
_check_contains(failures, "007 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "007 briefing road recovery", overview, "성채 회복 +8")
scene.free()
@@ -1025,8 +1027,8 @@ func _check_wan_castle_escape_extended_pressure(failures: Array[String]) -> void
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "008 briefing battlefield overview", overview)
_check_contains(failures, "008 briefing enemy count", overview, "적세 9명")
_check_contains(failures, "008 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "008 briefing gate recovery", overview, "성채 4칸 +8")
_check_contains(failures, "008 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "008 briefing gate recovery", overview, "성채 회복 +8")
scene.free()
@@ -1132,8 +1134,8 @@ func _check_xiapi_siege_extended_pressure(failures: Array[String]) -> void:
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "009 briefing battlefield overview", overview)
_check_contains(failures, "009 briefing enemy count", overview, "적세 10명")
_check_contains(failures, "009 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "009 briefing gate recovery", overview, "성채 4칸 +8")
_check_contains(failures, "009 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "009 briefing gate recovery", overview, "성채 회복 +8")
scene.free()
@@ -1237,8 +1239,8 @@ func _check_white_horse_relief_extended_pressure(failures: Array[String]) -> voi
var overview := scene._format_briefing_battlefield_overview_text()
_check_briefing_overview_hides_raw_map_size(failures, "010 briefing battlefield overview", overview)
_check_contains(failures, "010 briefing enemy count", overview, "적세 9명")
_check_contains(failures, "010 briefing village recovery", overview, "마을 4칸 +6")
_check_contains(failures, "010 briefing ferry recovery", overview, "성채 4칸 +8")
_check_contains(failures, "010 briefing village recovery", overview, "마을 회복 +6")
_check_contains(failures, "010 briefing ferry recovery", overview, "성채 회복 +8")
scene.free()

View File

@@ -76,10 +76,12 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("title screen should use a dedicated cinematic background, not the first battle map backdrop")
if scene.title_portrait_texture_rect == null or scene.title_portrait_texture_rect.texture == null:
failures.append("title screen should show Cao Cao portrait art")
elif scene.title_portrait_texture_rect.material == null or not bool(scene.title_portrait_texture_rect.material.get_meta("title_portrait_feather_material", false)):
failures.append("title Cao Cao portrait should feather into the background instead of reading as a hard rectangle")
var portrait_shadow := scene.title_screen_root.find_child("TitlePortraitLacquerField", true, false) as ColorRect if scene.title_screen_root != null else null
if portrait_shadow == null:
failures.append("title screen should keep a subtle portrait grounding field")
elif portrait_shadow.color.a > 0.18:
elif portrait_shadow.color.a > 0.08:
failures.append("title portrait grounding field should not read as a black rectangle: %.2f alpha" % portrait_shadow.color.a)
if scene.title_panel == null or scene.title_panel.position.x > 100.0:
failures.append("title menu panel should sit on the left side of the cinematic title screen")
@@ -426,6 +428,8 @@ func _check_title_menu_button_art(failures: Array[String], button: Button, expec
failures.append("%s generated button surface is missing its texture" % context)
elif style.texture.get_width() < 512 or style.texture.get_height() < 192:
failures.append("%s generated button texture should keep high-resolution source pixels: %dx%d" % [context, style.texture.get_width(), style.texture.get_height()])
if style.texture_margin_top > 24 or style.texture_margin_bottom > 24:
failures.append("%s generated button slice should stay shallow enough for the 720p title menu: %d/%d" % [context, style.texture_margin_top, style.texture_margin_bottom])
if str(button.tooltip_text).strip_edges().is_empty():
failures.append("%s should describe its command through a tooltip" % context)

View File

@@ -3098,6 +3098,8 @@ func _check_scene_texture_loading(failures: Array[String]) -> void:
failures.append("camp overview should include a readable battlefield scale label: %s" % camp_overview)
if camp_overview.contains("칸 x") or camp_overview.contains("×") or camp_overview.contains("칸x"):
failures.append("camp overview should not expose raw map dimensions: %s" % camp_overview)
if camp_overview.contains("칸 +"):
failures.append("camp overview should keep recovery cell counts out of visible text: %s" % camp_overview)
var briefing_marker_entries := scene._briefing_tactical_marker_entries()
if briefing_marker_entries.size() < 3:
failures.append("briefing should expose image-first tactical marker entries")
@@ -3451,6 +3453,10 @@ func _check_hud_focus_text(failures: Array[String]) -> void:
var recovery_overview := scene._format_briefing_recovery_terrain_text()
if not recovery_overview.contains("차례 시작"):
failures.append("briefing recovery overview should mention recovery timing: %s" % recovery_overview)
if not recovery_overview.contains("마을 회복 +6") or not recovery_overview.contains("성채 회복 +8"):
failures.append("briefing recovery overview should keep recovery amount but hide cell counts: %s" % recovery_overview)
if recovery_overview.contains("칸 +"):
failures.append("briefing recovery overview should not expose recovery cell counts: %s" % recovery_overview)
var archer: Dictionary = scene.state.get_unit("yellow_turban_3")
var archer_text := scene._format_unit_focus_text(archer, "Hover")
if not archer_text.contains("원거리 견제"):