Add generated opening story panels

This commit is contained in:
2026-06-20 02:34:38 +09:00
parent 6bf84a89c3
commit 45a563b738
12 changed files with 181 additions and 38 deletions

View File

@@ -143,6 +143,18 @@ func _check_battle_visual_data(failures: Array[String]) -> void:
_check_image_path(failures, state.get_map_background_path(), "001 map background")
if state.get_map_background_path() != "res://art/backgrounds/yingchuan_opening_battlefield.png":
failures.append("001 should use a dedicated Yingchuan battlefield background")
var opening_story_images: Array[String] = []
for page in BattleSceneScript.OPENING_PROLOGUE_PAGES:
var image_path := str((page as Dictionary).get("image", ""))
if image_path.is_empty():
failures.append("opening prologue pages should reference generated story artwork")
continue
if opening_story_images.has(image_path):
failures.append("opening prologue pages should use distinct story artwork: %s" % image_path)
opening_story_images.append(image_path)
_check_image_path(failures, image_path, "opening prologue story art")
if opening_story_images.size() != 4:
failures.append("opening prologue should expose four generated story panels")
_check_scenario_backgrounds_data(failures)
for unit_id in ["cao_cao", "xiahou_dun", "yellow_turban_1", "yellow_turban_2", "yellow_turban_3"]:
var unit := state.get_unit(unit_id)
@@ -4072,6 +4084,10 @@ func _check_hover_intent_badges(failures: Array[String]) -> void:
var event_hover_badge := scene._hover_info_badge()
if str(event_hover_badge.get("kind", "")) != "event" or not str(event_hover_badge.get("lines", [])).contains("표식 북숲 보급고"):
failures.append("event hover info badge should expose marker label: %s" % str(event_hover_badge))
scene.hover_cell = Vector2i(4, 6)
var tactic_hover_badge := scene._hover_info_badge()
if str(tactic_hover_badge.get("kind", "")) != "event" or not str(tactic_hover_badge.get("lines", [])).contains("표식 유인선"):
failures.append("tactic hover info badge should expose lure-line marker label: %s" % str(tactic_hover_badge))
scene.hover_cell = Vector2i(20, 1)
var objective_hover_badge := scene._hover_info_badge()
var objective_hover_text := str(objective_hover_badge.get("lines", []))
@@ -4175,6 +4191,12 @@ func _check_terrain_and_unit_presentation(failures: Array[String]) -> void:
scene._update_cell_info()
if scene.cell_info_label == null or not scene.cell_info_label.text.contains("표식 북숲 보급고"):
failures.append("side event marker cell info should expose the supply label: %s" % scene.cell_info_label.text)
scene.hover_cell = Vector2i(4, 6)
scene._update_cell_info()
if scene.cell_info_label == null or not scene.cell_info_label.text.contains("표식 유인선"):
failures.append("tactical lure marker cell info should expose the marker label: %s" % scene.cell_info_label.text)
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._update_cell_info()
if scene.cell_info_panel != null and scene.cell_info_panel.visible:
@@ -4201,6 +4223,10 @@ func _check_terrain_and_unit_presentation(failures: Array[String]) -> void:
failures.append("Supply marker fallback should stay concise")
if scene._event_marker_abbrev("군자금", "gold") != "":
failures.append("Gold marker should use a compact gold glyph")
if scene._event_marker_abbrev("유인선", "tactic") != "":
failures.append("Tactic lure marker should use a compact lure glyph")
if scene._event_marker_color("tactic") == scene._event_marker_color("supply"):
failures.append("Tactic marker should be visually distinct from supply markers")
var background_fill: Color = scene._terrain_fill_color(Vector2i(0, 0), "G", true)
var fallback_fill: Color = scene._terrain_fill_color(Vector2i(0, 0), "G", false)
if background_fill.a >= 0.20: