From fcfc51772f6de37bccaaa4d7f760643671a0a43c Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sat, 20 Jun 2026 07:21:00 +0900 Subject: [PATCH] Enlarge opening story presentation --- scripts/scenes/battle_scene.gd | 106 ++++++++++++++++----------------- tools/smoke_title_menu.gd | 4 +- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/scripts/scenes/battle_scene.gd b/scripts/scenes/battle_scene.gd index d0e282f..2687227 100644 --- a/scripts/scenes/battle_scene.gd +++ b/scripts/scenes/battle_scene.gd @@ -146,13 +146,13 @@ const BRIEFING_TACTICAL_MARKER_MAX_COUNT := 3 const BRIEFING_FORCE_PREVIEW_ICON_SIZE := Vector2(32, 32) const BRIEFING_FORCE_PREVIEW_MAX_ALLIES := 2 const BRIEFING_FORCE_PREVIEW_MAX_ENEMY_TYPES := 4 -const TITLE_STORY_FEATURE_SIZE := Vector2(616, 122) -const TITLE_STORY_FEATURE_IMAGE_SIZE := Vector2(314, 96) -const TITLE_STORY_PREVIEW_STRIP_SIZE := Vector2(616, 92) -const TITLE_STORY_PREVIEW_CARD_SIZE := Vector2(140, 72) -const TITLE_STORY_PREVIEW_IMAGE_FRAME_SIZE := Vector2(132, 50) -const TITLE_STORY_PREVIEW_IMAGE_SIZE := Vector2(124, 42) -const TITLE_STORY_PREVIEW_LABEL_SIZE := Vector2(132, 15) +const TITLE_STORY_FEATURE_SIZE := Vector2(646, 180) +const TITLE_STORY_FEATURE_IMAGE_SIZE := Vector2(398, 150) +const TITLE_STORY_PREVIEW_STRIP_SIZE := Vector2(646, 108) +const TITLE_STORY_PREVIEW_CARD_SIZE := Vector2(148, 88) +const TITLE_STORY_PREVIEW_IMAGE_FRAME_SIZE := Vector2(140, 64) +const TITLE_STORY_PREVIEW_IMAGE_SIZE := Vector2(132, 56) +const TITLE_STORY_PREVIEW_LABEL_SIZE := Vector2(140, 18) const OPENING_STORY_BEAT_CARD_SIZE := Vector2(136, 78) const OPENING_STORY_BEAT_IMAGE_FRAME_SIZE := Vector2(126, 48) const OPENING_STORY_BEAT_IMAGE_SIZE := Vector2(118, 40) @@ -2092,14 +2092,14 @@ func _make_title_story_feature_panel() -> PanelContainer: _apply_panel_style(panel, "hud_info") var row := HBoxContainer.new() - row.custom_minimum_size = Vector2(584, 104) - row.add_theme_constant_override("separation", 8) + row.custom_minimum_size = Vector2(616, 158) + row.add_theme_constant_override("separation", 12) row.tooltip_text = tooltip panel.add_child(row) var image_stack := PanelContainer.new() image_stack.name = "TitleStoryFeatureImageFrame" - image_stack.custom_minimum_size = Vector2(326, 104) + image_stack.custom_minimum_size = Vector2(410, 158) image_stack.tooltip_text = tooltip _apply_panel_style(image_stack, "caption") row.add_child(image_stack) @@ -2110,28 +2110,28 @@ func _make_title_story_feature_panel() -> PanelContainer: image.expand_mode = TextureRect.EXPAND_IGNORE_SIZE image.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED image.texture = _load_art_texture(image_path) - image.modulate = Color(0.98, 0.95, 0.88, 0.98) + image.modulate = Color(0.98, 0.98, 0.96, 0.99) image.tooltip_text = tooltip image_stack.add_child(image) var text_column := VBoxContainer.new() - text_column.custom_minimum_size = Vector2(250, 104) + text_column.custom_minimum_size = Vector2(194, 158) text_column.size_flags_horizontal = Control.SIZE_EXPAND_FILL - text_column.add_theme_constant_override("separation", 4) + text_column.add_theme_constant_override("separation", 6) text_column.tooltip_text = tooltip row.add_child(text_column) var title_row := HBoxContainer.new() - title_row.custom_minimum_size = Vector2(250, 26) + title_row.custom_minimum_size = Vector2(194, 30) title_row.add_theme_constant_override("separation", 6) title_row.tooltip_text = tooltip text_column.add_child(title_row) - title_row.add_child(_make_seal_tile("1", 24)) + title_row.add_child(_make_seal_tile("1", 28)) var title_label := Label.new() title_label.name = "TitleStoryFeatureTitle" title_label.text = title - title_label.custom_minimum_size = Vector2(214, 26) + title_label.custom_minimum_size = Vector2(158, 30) title_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER title_label.tooltip_text = tooltip _apply_label_style(title_label, UI_PARCHMENT_TEXT, 18) @@ -2140,7 +2140,7 @@ func _make_title_story_feature_panel() -> PanelContainer: var body_label := Label.new() body_label.name = "TitleStoryFeatureBody" body_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART - body_label.custom_minimum_size = Vector2(250, 68) + body_label.custom_minimum_size = Vector2(194, 116) body_label.tooltip_text = tooltip _apply_label_style(body_label, UI_AGED_INK, 13) _set_fitted_label_text(body_label, body, 13, 10, body_label.custom_minimum_size) @@ -2157,7 +2157,7 @@ func _make_title_story_preview_strip() -> PanelContainer: _apply_panel_style(panel, "hud_info") var row := HBoxContainer.new() - row.custom_minimum_size = Vector2(584, 72) + row.custom_minimum_size = Vector2(616, 88) row.add_theme_constant_override("separation", 8) panel.add_child(row) @@ -2181,7 +2181,7 @@ func _make_title_story_preview_card(title: String, image_path: String, index: in card_style.content_margin_bottom = 3 var column := VBoxContainer.new() - column.custom_minimum_size = Vector2(132, 65) + column.custom_minimum_size = Vector2(140, 80) column.add_theme_constant_override("separation", 2) column.tooltip_text = card.tooltip_text card.add_child(column) @@ -2205,7 +2205,7 @@ func _make_title_story_preview_card(title: String, image_path: String, index: in texture_rect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE texture_rect.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED texture_rect.texture = _load_art_texture(image_path) - texture_rect.modulate = Color(0.96, 0.94, 0.88, 0.94) + texture_rect.modulate = Color(0.94, 0.95, 0.93, 0.96) texture_rect.tooltip_text = card.tooltip_text image_frame.add_child(texture_rect) @@ -2313,7 +2313,7 @@ func _make_opening_story_beat_card(page: Dictionary, index: int, is_current: boo image.expand_mode = TextureRect.EXPAND_IGNORE_SIZE image.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED image.texture = _load_art_texture(image_path) - image.modulate = Color(1.0, 0.96, 0.88, 0.98) if is_current else Color(0.82, 0.80, 0.74, 0.72) + image.modulate = Color(0.98, 0.99, 0.97, 0.99) if is_current else Color(0.74, 0.76, 0.72, 0.72) image.tooltip_text = tooltip image_frame.add_child(image) _set_control_tree_tooltip(card, tooltip) @@ -3324,7 +3324,7 @@ func _create_hud() -> void: opening_prologue_scene_texture_rect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE opening_prologue_scene_texture_rect.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED opening_prologue_scene_texture_rect.texture = _load_art_texture(OPENING_PROLOGUE_REBELLION_PATH) - opening_prologue_scene_texture_rect.modulate = Color(0.96, 0.95, 0.92, 1.0) + opening_prologue_scene_texture_rect.modulate = Color(0.98, 0.98, 0.96, 1.0) opening_prologue_root.add_child(opening_prologue_scene_texture_rect) var opening_top_dim := ColorRect.new() @@ -4015,7 +4015,7 @@ func _create_hud() -> void: title_portrait_texture_rect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE title_portrait_texture_rect.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_COVERED title_portrait_texture_rect.texture = _load_art_texture(TITLE_PORTRAIT_PATH) - title_portrait_texture_rect.modulate = Color(1.0, 0.95, 0.86, 0.94) + title_portrait_texture_rect.modulate = Color(0.96, 0.97, 0.95, 0.96) title_screen_root.add_child(title_portrait_texture_rect) var title_portrait_caption := Label.new() @@ -4031,22 +4031,22 @@ func _create_hud() -> void: title_panel = PanelContainer.new() title_panel.name = "TitleMenuPanel" - title_panel.position = Vector2(58, 18) - title_panel.size = Vector2(708, 682) - title_panel.custom_minimum_size = Vector2(708, 682) + title_panel.position = Vector2(40, 8) + title_panel.size = Vector2(730, 704) + title_panel.custom_minimum_size = Vector2(730, 704) _apply_panel_style(title_panel, "paper") title_screen_root.add_child(title_panel) var title_column := VBoxContainer.new() title_column.alignment = BoxContainer.ALIGNMENT_CENTER - title_column.add_theme_constant_override("separation", 7) + title_column.add_theme_constant_override("separation", 5) title_panel.add_child(title_column) - title_column.add_child(_make_scroll_rod(616, 5)) - title_column.add_child(_make_seal_ribbon(616, 18)) + title_column.add_child(_make_scroll_rod(646, 5)) + title_column.add_child(_make_seal_ribbon(646, 18)) title_caption_label = Label.new() title_caption_label.text = "조조전" - title_caption_label.custom_minimum_size = Vector2(616, 48) + title_caption_label.custom_minimum_size = Vector2(646, 42) title_caption_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER title_caption_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_caption_label, UI_PARCHMENT_TEXT, 34) @@ -4054,7 +4054,7 @@ func _create_hud() -> void: title_subtitle_label = Label.new() title_subtitle_label.text = "난세를 여는 첫 군령" - title_subtitle_label.custom_minimum_size = Vector2(616, 26) + title_subtitle_label.custom_minimum_size = Vector2(646, 22) title_subtitle_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER title_subtitle_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_subtitle_label, UI_OLD_BRONZE, 17) @@ -4064,21 +4064,21 @@ func _create_hud() -> void: title_column.add_child(_make_title_story_preview_strip()) var title_body_panel := PanelContainer.new() - title_body_panel.custom_minimum_size = Vector2(616, 300) + title_body_panel.custom_minimum_size = Vector2(646, 284) _apply_panel_style(title_body_panel, "edict") title_column.add_child(title_body_panel) var title_body_row := HBoxContainer.new() title_body_row.add_theme_constant_override("separation", 10) title_body_panel.add_child(title_body_row) - title_body_row.add_child(_make_edict_marker_stack(["", "", ""], 276)) + title_body_row.add_child(_make_edict_marker_stack(["", "", ""], 260)) var title_menu_column := VBoxContainer.new() title_menu_column.add_theme_constant_override("separation", 10) title_body_row.add_child(title_menu_column) title_status_label = Label.new() - title_status_label.custom_minimum_size = Vector2(432, 60) + title_status_label.custom_minimum_size = Vector2(462, 44) title_status_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER title_status_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER title_status_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART @@ -4087,28 +4087,28 @@ func _create_hud() -> void: title_start_button = Button.new() title_start_button.text = "처음부터 시작" - title_start_button.custom_minimum_size = Vector2(432, 48) + title_start_button.custom_minimum_size = Vector2(462, 44) title_start_button.tooltip_text = "새 전기를 열고 첫 전장부터 시작합니다." title_start_button.pressed.connect(_on_title_start_pressed) title_menu_column.add_child(title_start_button) title_load_button = Button.new() title_load_button.text = "게임 로드" - title_load_button.custom_minimum_size = Vector2(432, 48) + title_load_button.custom_minimum_size = Vector2(462, 44) title_load_button.tooltip_text = "저장된 전기를 불러옵니다." title_load_button.pressed.connect(_on_title_load_pressed) title_menu_column.add_child(title_load_button) title_settings_button = Button.new() title_settings_button.text = "환경 설정" - title_settings_button.custom_minimum_size = Vector2(432, 48) + title_settings_button.custom_minimum_size = Vector2(462, 44) title_settings_button.tooltip_text = "소리와 전장 조작 옵션을 바꿉니다." title_settings_button.pressed.connect(_on_title_settings_pressed) title_menu_column.add_child(title_settings_button) title_load_panel = PanelContainer.new() title_load_panel.visible = false - title_load_panel.custom_minimum_size = Vector2(432, 188) + title_load_panel.custom_minimum_size = Vector2(462, 188) _apply_panel_style(title_load_panel, "hud_info") title_menu_column.add_child(title_load_panel) @@ -4118,34 +4118,34 @@ func _create_hud() -> void: var title_load_caption := Label.new() title_load_caption.text = "불러올 기록" - title_load_caption.custom_minimum_size = Vector2(392, 24) + title_load_caption.custom_minimum_size = Vector2(422, 24) title_load_caption.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER title_load_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_load_caption, UI_OLD_BRONZE, 15) title_load_column.add_child(title_load_caption) title_load_auto_button = Button.new() - title_load_auto_button.custom_minimum_size = Vector2(392, 38) + title_load_auto_button.custom_minimum_size = Vector2(422, 38) title_load_auto_button.tooltip_text = "자동으로 봉인된 진행 기록을 엽니다." title_load_auto_button.pressed.connect(_on_title_load_auto_pressed) title_load_column.add_child(title_load_auto_button) title_load_manual_button = Button.new() - title_load_manual_button.custom_minimum_size = Vector2(392, 38) + title_load_manual_button.custom_minimum_size = Vector2(422, 38) title_load_manual_button.tooltip_text = "군막에서 직접 남긴 수동 봉인을 엽니다." title_load_manual_button.pressed.connect(_on_title_load_manual_pressed) title_load_column.add_child(title_load_manual_button) title_load_back_button = Button.new() title_load_back_button.text = "뒤로" - title_load_back_button.custom_minimum_size = Vector2(392, 34) + title_load_back_button.custom_minimum_size = Vector2(422, 34) title_load_back_button.tooltip_text = "처음 화면 선택으로 돌아갑니다." title_load_back_button.pressed.connect(_on_title_load_back_pressed) title_load_column.add_child(title_load_back_button) title_settings_panel = PanelContainer.new() title_settings_panel.visible = false - title_settings_panel.custom_minimum_size = Vector2(432, 268) + title_settings_panel.custom_minimum_size = Vector2(462, 268) _apply_panel_style(title_settings_panel, "hud_info") title_menu_column.add_child(title_settings_panel) @@ -4155,7 +4155,7 @@ func _create_hud() -> void: var title_settings_caption := Label.new() title_settings_caption.text = "환경 설정" - title_settings_caption.custom_minimum_size = Vector2(392, 24) + title_settings_caption.custom_minimum_size = Vector2(422, 24) title_settings_caption.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER title_settings_caption.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _apply_label_style(title_settings_caption, UI_OLD_BRONZE, 15) @@ -4163,14 +4163,14 @@ func _create_hud() -> void: title_bgm_toggle = CheckButton.new() title_bgm_toggle.text = "배경음" - title_bgm_toggle.custom_minimum_size = Vector2(392, 30) + title_bgm_toggle.custom_minimum_size = Vector2(422, 30) title_bgm_toggle.button_pressed = title_bgm_enabled title_bgm_toggle.tooltip_text = "배경 음악을 켜거나 끕니다." title_bgm_toggle.toggled.connect(_on_title_bgm_toggled) title_settings_column.add_child(title_bgm_toggle) var title_bgm_volume_row := HBoxContainer.new() - title_bgm_volume_row.custom_minimum_size = Vector2(392, 34) + title_bgm_volume_row.custom_minimum_size = Vector2(422, 34) title_bgm_volume_row.add_theme_constant_override("separation", 8) title_settings_column.add_child(title_bgm_volume_row) @@ -4201,14 +4201,14 @@ func _create_hud() -> void: title_sfx_toggle = CheckButton.new() title_sfx_toggle.text = "효과음" - title_sfx_toggle.custom_minimum_size = Vector2(392, 30) + title_sfx_toggle.custom_minimum_size = Vector2(422, 30) title_sfx_toggle.button_pressed = title_sfx_enabled title_sfx_toggle.tooltip_text = "버튼과 전투 효과음을 켜거나 끕니다." title_sfx_toggle.toggled.connect(_on_title_sfx_toggled) title_settings_column.add_child(title_sfx_toggle) var title_sfx_volume_row := HBoxContainer.new() - title_sfx_volume_row.custom_minimum_size = Vector2(392, 34) + title_sfx_volume_row.custom_minimum_size = Vector2(422, 34) title_sfx_volume_row.add_theme_constant_override("separation", 8) title_settings_column.add_child(title_sfx_volume_row) @@ -4239,14 +4239,14 @@ func _create_hud() -> void: title_audio_reset_button = Button.new() title_audio_reset_button.text = "소리 켜기" - title_audio_reset_button.custom_minimum_size = Vector2(392, 32) + title_audio_reset_button.custom_minimum_size = Vector2(422, 32) title_audio_reset_button.tooltip_text = "배경음과 효과음을 켜고 음량을 기본값으로 되돌린 뒤 확인음을 재생합니다." title_audio_reset_button.pressed.connect(_on_title_audio_reset_pressed) title_settings_column.add_child(title_audio_reset_button) title_edge_scroll_toggle = CheckButton.new() title_edge_scroll_toggle.text = "가장자리 스크롤" - title_edge_scroll_toggle.custom_minimum_size = Vector2(392, 30) + title_edge_scroll_toggle.custom_minimum_size = Vector2(422, 30) title_edge_scroll_toggle.button_pressed = title_edge_scroll_enabled title_edge_scroll_toggle.tooltip_text = "마우스를 전장 가장자리에 두면 화면을 움직입니다." title_edge_scroll_toggle.toggled.connect(_on_title_edge_scroll_toggled) @@ -4254,13 +4254,13 @@ func _create_hud() -> void: title_settings_back_button = Button.new() title_settings_back_button.text = "설정 닫기" - title_settings_back_button.custom_minimum_size = Vector2(432, 34) + title_settings_back_button.custom_minimum_size = Vector2(462, 34) title_settings_back_button.tooltip_text = "환경 설정을 접습니다." title_settings_back_button.pressed.connect(_on_title_settings_back_pressed) title_menu_column.add_child(title_settings_back_button) - title_body_row.add_child(_make_edict_marker_stack(["", "", ""], 276)) - title_column.add_child(_make_scroll_rod(616, 4)) + title_body_row.add_child(_make_edict_marker_stack(["", "", ""], 260)) + title_column.add_child(_make_scroll_rod(646, 4)) for hud_button in [ restart_button, diff --git a/tools/smoke_title_menu.gd b/tools/smoke_title_menu.gd index 146450d..bf8f494 100644 --- a/tools/smoke_title_menu.gd +++ b/tools/smoke_title_menu.gd @@ -85,7 +85,7 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: var feature_body := title_story_feature.find_child("TitleStoryFeatureBody", true, false) as Label if feature_image == null or feature_image.texture == null: failures.append("title story feature should load generated opening artwork") - elif feature_image.custom_minimum_size.x < 300.0: + elif feature_image.custom_minimum_size.x < 380.0 or feature_image.custom_minimum_size.y < 140.0: failures.append("title story feature should lead with a wide generated artwork frame: %s" % str(feature_image.custom_minimum_size)) if feature_title == null or feature_title.text != "황건의 난": failures.append("title story feature should name the first opening beat") @@ -115,7 +115,7 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void: failures.append("title story preview image should sit inside a generated frame") if story_image == null or story_image.texture == null: failures.append("title story preview card should load generated artwork") - elif story_image.custom_minimum_size.y < 42.0: + elif story_image.custom_minimum_size.y < 54.0: failures.append("title story preview image should stay large enough to read as artwork: %s" % str(story_image.custom_minimum_size)) if story_label == null or story_label.text.strip_edges().is_empty(): failures.append("title story preview card should name its story beat")