Age briefing and dialogue chrome

This commit is contained in:
2026-06-19 10:17:51 +09:00
parent e4c87bf86f
commit 9bdf817b23
3 changed files with 141 additions and 87 deletions

View File

@@ -211,12 +211,12 @@ func _check_objective_notice(failures: Array[String]) -> void:
scene._on_objective_updated("Defeat the new vanguard.", "")
if scene.objective_notice_panel == null or not scene.objective_notice_panel.visible:
failures.append("objective notice panel should be visible after objective update")
elif not scene.objective_notice_label.text.contains(" 軍令 봉인") or not scene.objective_notice_label.text.contains("勝令: Defeat the new vanguard."):
elif not scene.objective_notice_label.text.contains("新詔 軍令 봉인") or not scene.objective_notice_label.text.contains("勝令Defeat the new vanguard."):
failures.append("objective notice label should use sealed edict wording: %s" % scene.objective_notice_label.text)
scene._on_objective_updated("", "Supply train is lost.")
if scene.objective_notice_panel == null or not scene.objective_notice_panel.visible:
failures.append("objective notice panel should be visible after defeat update")
elif not scene.objective_notice_label.text.contains(" 軍令 봉인") or not scene.objective_notice_label.text.contains("敗兆: Supply train is lost."):
elif not scene.objective_notice_label.text.contains("新詔 軍令 봉인") or not scene.objective_notice_label.text.contains("敗兆Supply train is lost."):
failures.append("objective notice label should use omen wording: %s" % scene.objective_notice_label.text)
if scene._format_log_entry_text("Objective updated: Defeat the new vanguard.") != "軍令 개정: Defeat the new vanguard.":
failures.append("objective log display should use edict wording")

View File

@@ -2658,7 +2658,7 @@ func _check_scene_texture_loading(failures: Array[String]) -> void:
if not merchant_notice.contains("군막 상인") or not merchant_notice.contains("길가의 물자"):
failures.append("shop merchant notice should include name and flavor lines")
var camp_overview := scene._format_briefing_camp_overview_text(scene.state.get_briefing(), false)
for expected in ["영천, 중평 원년", "군자금 0냥", "군막 회의 · 3건", "보급 대기 1건", "군상 물품 · 2종", "출진 명부 2명 중 2명", "진형 배치 4칸", "병장고 비축"]:
for expected in ["地勢 영천, 중평 원년", "軍資 0냥", "군막 회의 · 3건", "보급 대기 1건", "군상 물품 · 2종", "출진 명부 2명 중 2명", "진형 배치 4칸", "兵藏 비축"]:
if not camp_overview.contains(expected):
failures.append("camp overview should include %s: %s" % [expected, camp_overview])
var bean: Dictionary = scene.state.get_item_def("bean")
@@ -2778,27 +2778,27 @@ func _check_ancient_ui_theme(failures: Array[String]) -> void:
scene.free()
return
var briefing_text := scene._format_briefing_objectives()
for expected in ["勝令:", "敗兆:", "戰功 죽간:", "凶兆 징후:", "戰利 봉인:"]:
for expected in ["受命 勝令", "戒懼 敗兆", "驗功 戰功 죽간", "不祥 凶兆 징후", "封賞 戰利 봉인"]:
if not briefing_text.contains(expected):
failures.append("briefing objective parchment should use ancient heading `%s`: %s" % [expected, briefing_text])
var hud_objective := scene._format_objective_hud_text()
if not hud_objective.contains("勝令:") or not hud_objective.contains("敗兆:"):
if not hud_objective.contains("勝令") or not hud_objective.contains("敗兆"):
failures.append("HUD objective should read as paired edict and omen text: %s" % hud_objective)
var mission_text := scene._format_mission_panel_text()
for expected in ["勝令", "敗兆", "戰功 죽간", "凶兆 징후"]:
if not mission_text.contains(expected):
failures.append("mission panel should use old campaign wording `%s`: %s" % [expected, mission_text])
_check_panel_style_fill(failures, scene.briefing_panel, "briefing panel", Color(0.33, 0.19, 0.075, 0.996))
_check_panel_style_frame(failures, scene.briefing_panel, "briefing panel", Color(0.20, 0.11, 0.045, 1.0), 13)
_check_panel_style_fill(failures, scene.briefing_objective_panel, "briefing objective edict panel", Color(0.67, 0.49, 0.25, 0.998))
_check_panel_style_frame(failures, scene.briefing_objective_panel, "briefing objective edict panel", Color(0.12, 0.060, 0.026, 0.98), 7)
_check_panel_style_fill(failures, scene.briefing_camp_overview_panel, "briefing silk map panel", Color(0.45, 0.30, 0.13, 0.994))
_check_panel_style_frame(failures, scene.briefing_camp_overview_panel, "briefing silk map panel", Color(0.12, 0.060, 0.026, 0.98), 5)
_check_panel_style_fill(failures, scene.dialogue_panel, "dialogue panel", Color(0.030, 0.012, 0.007, 0.998))
_check_panel_style_frame(failures, scene.dialogue_panel, "dialogue panel", Color(0.20, 0.11, 0.045, 1.0), 12)
_check_panel_style_fill(failures, scene.briefing_panel, "briefing panel", Color(0.42, 0.27, 0.10, 0.997))
_check_panel_style_frame(failures, scene.briefing_panel, "briefing panel", Color(0.035, 0.018, 0.012, 1.0), 14)
_check_panel_style_fill(failures, scene.briefing_objective_panel, "briefing objective edict panel", Color(0.58, 0.39, 0.16, 0.998))
_check_panel_style_frame(failures, scene.briefing_objective_panel, "briefing objective edict panel", Color(0.10, 0.065, 0.040, 1.0), 8)
_check_panel_style_fill(failures, scene.briefing_camp_overview_panel, "briefing silk map panel", Color(0.35, 0.22, 0.085, 0.994))
_check_panel_style_frame(failures, scene.briefing_camp_overview_panel, "briefing silk map panel", Color(0.10, 0.065, 0.040, 1.0), 6)
_check_panel_style_fill(failures, scene.dialogue_panel, "dialogue panel", Color(0.10, 0.045, 0.020, 0.975))
_check_panel_style_frame(failures, scene.dialogue_panel, "dialogue panel", Color(0.035, 0.018, 0.012, 1.0), 12)
_check_panel_style_fill(failures, scene.dialogue_portrait_panel, "dialogue portrait panel", Color(0.035, 0.014, 0.008, 1.0))
_check_panel_style_fill(failures, scene.dialogue_speaker_panel, "dialogue speaker seal panel", Color(0.28, 0.020, 0.014, 1.0))
_check_panel_style_fill(failures, scene.dialogue_text_panel, "dialogue text scroll panel", Color(0.61, 0.43, 0.20, 0.997))
_check_panel_style_fill(failures, scene.dialogue_text_panel, "dialogue text scroll panel", Color(0.64, 0.43, 0.18, 0.998))
_check_seal_ribbon(failures, scene.briefing_seal_ribbon, "briefing seal ribbon")
_check_seal_ribbon(failures, scene.dialogue_seal_ribbon, "dialogue seal ribbon")
_check_seal_ribbon(failures, scene.result_seal_ribbon, "result seal ribbon")
@@ -2821,6 +2821,8 @@ func _check_ancient_ui_theme(failures: Array[String]) -> void:
scene._render_dialogue_line()
if scene.dialogue_speaker_label == null or scene.dialogue_speaker_label.text != "조조":
failures.append("dialogue speaker label should render localized display_speaker")
if scene.dialogue_text_label == null or scene.dialogue_text_label.text != "「군령을 전하라.」":
failures.append("dialogue text should render as an old quotation scroll")
scene._hide_dialogue_panel()
var enemy_lines := scene._normalized_dialogue_lines([{"speaker": "Wen Chou", "text": "전진!"}])
if enemy_lines.is_empty() or str((enemy_lines[0] as Dictionary).get("speaker", "")) != "문추":
@@ -2869,10 +2871,13 @@ func _check_ancient_ui_theme(failures: Array[String]) -> void:
scene._update_briefing_camp_overview(scene.state.get_briefing(), false)
if scene.briefing_camp_overview_fallback_label == null or scene.briefing_camp_overview_fallback_label.text != "비단 전장도":
failures.append("briefing map fallback should read as an old campaign map")
_check_panel_style_fill(failures, scene.result_panel, "result panel", Color(0.33, 0.19, 0.075, 0.996))
if not scene._format_victory_result_text().contains("승전 조서"):
scene._apply_panel_style(scene.result_panel, "result_victory_tablet")
_check_panel_style_fill(failures, scene.result_panel, "victory result panel", Color(0.46, 0.31, 0.13, 0.997))
scene._apply_panel_style(scene.result_panel, "result_defeat_tablet")
_check_panel_style_fill(failures, scene.result_panel, "defeat result panel", Color(0.16, 0.055, 0.025, 0.997))
if not scene._format_victory_result_text().contains("大勝 조서"):
failures.append("victory result should read like a bronze proclamation")
if not scene._format_defeat_result_text().contains("패전 비문"):
if not scene._format_defeat_result_text().contains("敗軍 비문"):
failures.append("defeat result should read like a memorial tablet")
var scroll_rod := scene._make_scroll_rod(120, 4)
if scroll_rod.get_child_count() != 5: