Retheme ancient briefing UI and add pursuit camp
This commit is contained in:
@@ -1028,6 +1028,85 @@ func _check_battle_visual_data(failures: Array[String]) -> void:
|
||||
).is_empty():
|
||||
failures.append("017 old Ye Siege flags should not expose defector medicine")
|
||||
|
||||
var northern_pursuit_state = BattleStateScript.new()
|
||||
if not northern_pursuit_state.load_battle("res://data/scenarios/018_northern_pursuit.json"):
|
||||
failures.append("could not load Northern Pursuit camp data")
|
||||
else:
|
||||
_check_shop_items_unique(failures, northern_pursuit_state, "018 base")
|
||||
var northern_pursuit_conversations: Array = northern_pursuit_state.get_briefing().get("camp_conversations", [])
|
||||
if northern_pursuit_conversations.size() != 2:
|
||||
failures.append("018 base briefing should expose exactly two camp conversations")
|
||||
else:
|
||||
_check_camp_conversation(failures, northern_pursuit_conversations[0], "northern_pursuit_road_council", "topic", "")
|
||||
_check_camp_conversation(failures, northern_pursuit_conversations[1], "northern_pursuit_zhang_he_retreat_road", "officer", "zhang_he")
|
||||
var northern_pursuit_merchant := northern_pursuit_state.get_shop_merchant()
|
||||
if str(northern_pursuit_merchant.get("name", "")) != "Northern Road Sutler":
|
||||
failures.append("018 shop should expose Northern Road merchant name")
|
||||
if (northern_pursuit_merchant.get("lines", []) as Array).size() < 2:
|
||||
failures.append("018 shop should expose merchant flavor lines")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_state, "war_drum", false, "018 base")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_state, "imperial_seal", false, "018 base")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_state, "iron_armor", true, "018 base")
|
||||
|
||||
var northern_pursuit_hard_state = BattleStateScript.new()
|
||||
if not northern_pursuit_hard_state.load_battle("res://data/scenarios/018_northern_pursuit.json", {}, {}, {"pursued_yuan_shang": true}):
|
||||
failures.append("could not load Northern Pursuit hard march camp data")
|
||||
else:
|
||||
_check_shop_items_unique(failures, northern_pursuit_hard_state, "018 pursued Yuan Shang")
|
||||
var hard_march_beans: Dictionary = _find_camp_conversation(
|
||||
northern_pursuit_hard_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_hard_march_beans"
|
||||
)
|
||||
if hard_march_beans.is_empty():
|
||||
failures.append("018 pursued Yuan Shang flag should expose hard march beans")
|
||||
else:
|
||||
_check_camp_conversation_effect(failures, hard_march_beans, "bean", 1)
|
||||
if not _find_camp_conversation(
|
||||
northern_pursuit_hard_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_ji_supply_medicine"
|
||||
).is_empty():
|
||||
failures.append("018 pursued Yuan Shang flag should not expose Ji supply medicine")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_hard_state, "war_drum", true, "018 pursued Yuan Shang")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_hard_state, "imperial_seal", false, "018 pursued Yuan Shang")
|
||||
|
||||
var northern_pursuit_stabilized_state = BattleStateScript.new()
|
||||
if not northern_pursuit_stabilized_state.load_battle("res://data/scenarios/018_northern_pursuit.json", {}, {}, {"stabilized_ye": true}):
|
||||
failures.append("could not load Northern Pursuit stabilized camp data")
|
||||
else:
|
||||
_check_shop_items_unique(failures, northern_pursuit_stabilized_state, "018 stabilized Ye")
|
||||
var ji_supply_medicine: Dictionary = _find_camp_conversation(
|
||||
northern_pursuit_stabilized_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_ji_supply_medicine"
|
||||
)
|
||||
if ji_supply_medicine.is_empty():
|
||||
failures.append("018 stabilized Ye flag should expose Ji supply medicine")
|
||||
else:
|
||||
_check_camp_conversation_effect(failures, ji_supply_medicine, "panacea", 1)
|
||||
if not _find_camp_conversation(
|
||||
northern_pursuit_stabilized_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_hard_march_beans"
|
||||
).is_empty():
|
||||
failures.append("018 stabilized Ye flag should not expose hard march beans")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_stabilized_state, "war_drum", false, "018 stabilized Ye")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_stabilized_state, "imperial_seal", true, "018 stabilized Ye")
|
||||
|
||||
var northern_pursuit_old_flags_state = BattleStateScript.new()
|
||||
if not northern_pursuit_old_flags_state.load_battle("res://data/scenarios/018_northern_pursuit.json", {}, {}, {"forced_ye_surrender": true, "negotiated_yuan_defections": true}):
|
||||
failures.append("could not load Northern Pursuit old Ye Surrender flag camp data")
|
||||
else:
|
||||
_check_shop_item_visibility(failures, northern_pursuit_old_flags_state, "war_drum", false, "018 old Ye Surrender flags")
|
||||
_check_shop_item_visibility(failures, northern_pursuit_old_flags_state, "imperial_seal", false, "018 old Ye Surrender flags")
|
||||
if not _find_camp_conversation(
|
||||
northern_pursuit_old_flags_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_hard_march_beans"
|
||||
).is_empty():
|
||||
failures.append("018 old Ye Surrender flags should not expose hard march beans")
|
||||
if not _find_camp_conversation(
|
||||
northern_pursuit_old_flags_state.get_briefing().get("camp_conversations", []),
|
||||
"northern_pursuit_ji_supply_medicine"
|
||||
).is_empty():
|
||||
failures.append("018 old Ye Surrender flags should not expose Ji supply medicine")
|
||||
|
||||
for item_id in ["bronze_sword", "training_spear", "short_bow", "hand_axe", "iron_armor", "panacea"]:
|
||||
var item := state.get_item_def(item_id)
|
||||
if item.is_empty():
|
||||
@@ -1101,7 +1180,7 @@ func _check_scene_texture_loading(failures: Array[String]) -> void:
|
||||
if not merchant_notice.contains("Camp Merchant") or not merchant_notice.contains("Roadside stores"):
|
||||
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 ["Yingchuan, 184 CE", "Treasury 0G", "Council 3", "1 supply", "Market 2 goods", "Muster 2/2", "Array 4 tiles", "Arsenal ready"]:
|
||||
for expected in ["Yingchuan, 184 CE", "War Chest 0G", "War Council 3", "1 supply", "Sutler 2 goods", "Muster Roll 2/2", "Battle Array 4 tiles", "Armory stocked"]:
|
||||
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")
|
||||
@@ -1200,7 +1279,7 @@ func _check_ancient_ui_theme(failures: Array[String]) -> void:
|
||||
scene.free()
|
||||
return
|
||||
var briefing_text := scene._format_briefing_objectives()
|
||||
for expected in ["War Edict:", "Ruin If:", "War Report:", "Ill Omen:", "Spoils:"]:
|
||||
for expected in ["Mandate of Victory:", "Omen of Ruin:", "Battle Register:", "Dire Portents:", "Spoils Ledger:"]:
|
||||
if not briefing_text.contains(expected):
|
||||
failures.append("briefing objective parchment should use ancient heading `%s`: %s" % [expected, briefing_text])
|
||||
_check_panel_style_fill(failures, scene.briefing_panel, "briefing panel", Color(0.66, 0.55, 0.36, 0.97))
|
||||
@@ -1212,10 +1291,31 @@ func _check_ancient_ui_theme(failures: Array[String]) -> void:
|
||||
_check_panel_style_fill(failures, scene.dialogue_portrait_panel, "dialogue portrait panel", Color(0.055, 0.025, 0.016, 1.0))
|
||||
_check_panel_style_fill(failures, scene.dialogue_speaker_panel, "dialogue speaker seal panel", Color(0.32, 0.025, 0.016, 1.0))
|
||||
_check_panel_style_fill(failures, scene.dialogue_text_panel, "dialogue text scroll panel", Color(0.76, 0.64, 0.43, 0.98))
|
||||
if scene.dialogue_continue_button == null or scene.dialogue_continue_button.text != "Advance":
|
||||
failures.append("dialogue continue button should use ancient advance text")
|
||||
if scene.dialogue_previous_button == null or scene.dialogue_previous_button.text != "Recall":
|
||||
failures.append("dialogue previous button should use ancient recall text")
|
||||
if scene.dialogue_continue_button == null or scene.dialogue_continue_button.text != "Next Slip":
|
||||
failures.append("dialogue continue button should use ancient slip text")
|
||||
if scene.dialogue_previous_button == null or scene.dialogue_previous_button.text != "Earlier Slip":
|
||||
failures.append("dialogue previous button should use ancient slip text")
|
||||
if scene.mission_title_label == null or scene.mission_title_label.text != "Battle Mandate":
|
||||
failures.append("mission panel title should use battle mandate wording")
|
||||
if scene.shop_button == null or scene.shop_button.text != "Sutler":
|
||||
failures.append("briefing shop button should use sutler wording")
|
||||
if scene.talk_button == null or scene.talk_button.text != "War Council":
|
||||
failures.append("briefing talk button should use war council wording")
|
||||
if scene.formation_button == null or scene.formation_button.text != "Battle Array":
|
||||
failures.append("briefing formation button should use battle array wording")
|
||||
if scene.post_move_title_label == null or scene.post_move_title_label.text != "Issue Order":
|
||||
failures.append("post-move command title should use order wording")
|
||||
if scene.post_move_cancel_button == null or scene.post_move_cancel_button.text != "Recall Step":
|
||||
failures.append("post-move cancel button should use recall step wording")
|
||||
if scene.post_move_picker_back_button == null or scene.post_move_picker_back_button.text != "Return":
|
||||
failures.append("post-move picker back button should use return wording")
|
||||
if scene.targeting_hint_title_label == null or scene.targeting_hint_title_label.text != "Mark Foe":
|
||||
failures.append("targeting hint title should use mark foe wording")
|
||||
if scene.targeting_hint_back_button == null or scene.targeting_hint_back_button.text != "Return":
|
||||
failures.append("targeting hint back button should use return wording")
|
||||
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 != "Silk War Map":
|
||||
failures.append("briefing map fallback should read as an old campaign map")
|
||||
_check_panel_style_fill(failures, scene.result_panel, "result panel", Color(0.66, 0.55, 0.36, 0.97))
|
||||
scene.free()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user