Polish opening story controls

This commit is contained in:
2026-06-20 15:43:12 +09:00
parent 7ff1e84d53
commit b6d420ac64
4 changed files with 55 additions and 44 deletions

View File

@@ -272,10 +272,10 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
if scene.opening_prologue_root != null:
opening_story_strip = scene.opening_prologue_root.find_child("OpeningStoryLedgerStrip", true, false)
if opening_story_strip == null:
failures.append("opening prologue should show a compact story ledger in the upper-right corner")
failures.append("opening prologue should show a compact story ledger beside the chapter seal")
else:
var progress_caption := opening_story_strip.find_child("OpeningStoryProgressCaption", true, false) as Label
if progress_caption == null or progress_caption.text != "영천으로":
if progress_caption == null or progress_caption.text != "제1장 영천으로":
failures.append("opening story ledger should use a natural Korean chapter caption")
var progress_scene := opening_story_strip.find_child("OpeningStoryProgressScene", true, false) as Label
if progress_scene == null or not progress_scene.text.contains("첫 기록") or not progress_scene.text.contains("황건의 난"):
@@ -301,14 +301,17 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
for numeric_label in numeric_labels:
if str((numeric_label as Label).text).strip_edges() in ["1", "2", "3", "4", "1/4", "2/4", "3/4", "4/4"]:
failures.append("opening story ledger should not expose bare numeric labels")
if opening_story_strip.custom_minimum_size.x > 380.0 or opening_story_strip.custom_minimum_size.y > 62.0:
failures.append("opening story ledger should stay compact in the upper-right corner: %s" % str(opening_story_strip.custom_minimum_size))
var ledger_control := opening_story_strip as Control
if ledger_control != null and (ledger_control.position.x < 300.0 or ledger_control.position.x > 680.0):
failures.append("opening story ledger should sit beside the chapter seal instead of the upper-right corner: %s" % str(ledger_control.position))
if opening_story_strip.custom_minimum_size.x > 340.0 or opening_story_strip.custom_minimum_size.y > 54.0:
failures.append("opening story ledger should stay compact beside the chapter seal: %s" % str(opening_story_strip.custom_minimum_size))
_check_control_inside_design_view(failures, opening_story_strip as Control, "opening story ledger")
if scene.opening_prologue_next_button == null or scene.opening_prologue_next_button.text != "전기 넘기기":
if scene.opening_prologue_next_button == null or scene.opening_prologue_next_button.text != "다음 기록":
failures.append("opening prologue next button should read as a story action")
else:
_check_opening_story_button_art(failures, scene.opening_prologue_next_button, "opening next")
if scene.opening_prologue_skip_button == null or scene.opening_prologue_skip_button.text != "전기 접기":
if scene.opening_prologue_skip_button == null or scene.opening_prologue_skip_button.text != "서문 접기":
failures.append("opening prologue skip button should read as a contextual camp shortcut")
else:
_check_opening_story_button_art(failures, scene.opening_prologue_skip_button, "opening skip")
@@ -555,6 +558,9 @@ func _check_opening_story_button_art(failures: Array[String], button: Button, co
if not (stylebox is StyleBoxTexture):
failures.append("%s should keep a generated button texture" % context)
return
var style := stylebox as StyleBoxTexture
if style.texture_margin_left < 24 or style.texture_margin_top < 10:
failures.append("%s generated button slices should preserve the ornamental frame at QHD: %d/%d" % [context, style.texture_margin_left, style.texture_margin_top])
_check_button_texture_slice_fit(failures, button, context)
if button.get_theme_font_size("font_size") > 17:
failures.append("%s should stay visually quiet in the story caption" % context)

View File

@@ -3961,7 +3961,7 @@ func _check_opening_prologue_presentation(failures: Array[String]) -> void:
if scene.opening_prologue_next_button == null:
failures.append("opening prologue should expose a next button")
else:
if scene.opening_prologue_next_button.text != "전기 넘기기":
if scene.opening_prologue_next_button.text != "다음 기록":
failures.append("opening next button should use story-fluent Korean text")
if scene.opening_prologue_next_button.icon == null:
failures.append("opening next button should carry generated icon art")
@@ -3971,7 +3971,7 @@ func _check_opening_prologue_presentation(failures: Array[String]) -> void:
if scene.opening_prologue_skip_button == null:
failures.append("opening prologue should expose a skip button")
else:
if scene.opening_prologue_skip_button.text != "전기 접기":
if scene.opening_prologue_skip_button.text != "서문 접기":
failures.append("opening skip button should avoid modern skip-button wording")
if scene.opening_prologue_skip_button.icon == null:
failures.append("opening skip button should carry generated icon art")
@@ -3982,8 +3982,13 @@ func _check_opening_prologue_presentation(failures: Array[String]) -> void:
if opening_ledger == null:
failures.append("opening prologue should use a story ledger instead of numbered progress cards")
else:
if opening_ledger.custom_minimum_size.x > 380.0 or opening_ledger.custom_minimum_size.y > 62.0:
if opening_ledger.position.x < 300.0 or opening_ledger.position.x > 680.0:
failures.append("opening story ledger should sit beside the chapter seal instead of the upper-right corner: %s" % str(opening_ledger.position))
if opening_ledger.custom_minimum_size.x > 340.0 or opening_ledger.custom_minimum_size.y > 54.0:
failures.append("opening story ledger should stay compact at QHD scale: %s" % str(opening_ledger.custom_minimum_size))
var progress_caption := opening_ledger.find_child("OpeningStoryProgressCaption", true, false) as Label
if progress_caption == null or progress_caption.text != "제1장 영천으로":
failures.append("opening story ledger should read as a chapter record, got %s" % ("" if progress_caption == null else progress_caption.text))
var old_cards := opening_ledger.find_children("OpeningStoryBeatCard*", "", true, false)
if not old_cards.is_empty():
failures.append("opening story ledger should not expose old numbered-card style nodes")
@@ -4424,7 +4429,7 @@ func _check_button_uses_generated_surface(failures: Array[String], button: Butto
failures.append("%s text button should keep the wide generated button surface" % context)
if 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()])
var min_top_margin := 8 if bool(button.get_meta("opening_story_button", false)) else 10
var min_top_margin := 10 if bool(button.get_meta("opening_story_button", false)) else 10
_check_button_texture_slice_for_control(failures, button, style, context, 16, min_top_margin)
var min_content_margin := 6 if bool(button.get_meta("opening_story_button", false)) else 8
if style.content_margin_left < min_content_margin or style.content_margin_top < 5: