Clarify opening and battle start cues
This commit is contained in:
@@ -23,6 +23,7 @@ func _init() -> void:
|
||||
_check_minimap_navigation_contract(failures)
|
||||
_check_map_focus_contract(failures)
|
||||
_check_battle_presentation_sequence_contract(failures)
|
||||
_check_battle_start_notice_sequence(failures)
|
||||
_check_readability_contract(failures)
|
||||
_check_korean_fallback_labels(failures)
|
||||
_check_dialogue_localization_and_side(failures)
|
||||
@@ -550,6 +551,33 @@ func _check_battle_presentation_sequence_contract(failures: Array[String]) -> vo
|
||||
scene.free()
|
||||
|
||||
|
||||
func _check_battle_start_notice_sequence(failures: Array[String]) -> void:
|
||||
var scene = BattleSceneScript.new()
|
||||
scene._ready()
|
||||
scene._load_scenario("001_yellow_turbans")
|
||||
scene._show_briefing()
|
||||
scene._start_battle_from_briefing()
|
||||
if not scene._is_dialogue_visible():
|
||||
failures.append("opening battle should begin with contextual dialogue before command notices")
|
||||
if scene.objective_notice_label != null and scene.objective_notice_label.text.contains("전투 개시"):
|
||||
failures.append("battle start notice should wait until opening dialogue is closed")
|
||||
var guard := 0
|
||||
while scene._is_dialogue_visible() and guard < 12:
|
||||
scene._advance_dialogue()
|
||||
guard += 1
|
||||
if scene._is_dialogue_visible():
|
||||
failures.append("opening battle dialogue should be advanceable during start notice test")
|
||||
if scene.objective_notice_panel == null or not scene.objective_notice_panel.visible:
|
||||
failures.append("battle start should show a compact tactical command notice after dialogue")
|
||||
elif scene.objective_notice_label == null or not scene.objective_notice_label.text.contains("전투 개시"):
|
||||
failures.append("battle start notice should use a clear Korean title: %s" % ("" if scene.objective_notice_label == null else scene.objective_notice_label.text))
|
||||
elif not scene.objective_notice_label.text.contains("목표:") or not scene.objective_notice_label.text.contains("주의:"):
|
||||
failures.append("battle start notice should summarize objective and risk: %s" % scene.objective_notice_label.text)
|
||||
if scene.objective_notice_icon_strip == null or scene.objective_notice_icon_strip.get_child_count() < 2:
|
||||
failures.append("battle start notice should use generated objective and warning icons")
|
||||
scene.free()
|
||||
|
||||
|
||||
func _check_readability_contract(failures: Array[String]) -> void:
|
||||
var scene = BattleSceneScript.new()
|
||||
scene._create_hud()
|
||||
|
||||
@@ -259,6 +259,8 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
|
||||
failures.append("opening story beat artwork should stay readable in the strip: %s" % str(beat_image.custom_minimum_size))
|
||||
if beat_label == null or beat_label.text.strip_edges().is_empty():
|
||||
failures.append("opening story beat card should name its scene")
|
||||
elif beat_label.get_theme_color("font_color").get_luminance() < 0.66 or beat_label.get_theme_constant("outline_size") < 3:
|
||||
failures.append("opening story beat label should remain readable over generated artwork: %s" % beat_label.text)
|
||||
if bool(card_node.get_meta("current_story_beat", false)):
|
||||
current_count += 1
|
||||
current_index = opening_story_cards.find(opening_story_card) + 1
|
||||
|
||||
Reference in New Issue
Block a user