Add Weishui bridge and antique battle UI

This commit is contained in:
2026-06-19 05:18:54 +09:00
parent b08370cf45
commit dc3dc06eb0
5 changed files with 717 additions and 76 deletions

View File

@@ -32,6 +32,61 @@
"Pressing Ma Chao's vanguard kept the initiative, but it also pulled Cao Cao's front into the path of a sharper counterstroke."
]
}
],
"camp_conversations": [
{
"id": "ma_chao_counterstroke_council",
"group": "topic",
"label": "Counterstroke Council",
"speaker": "Cao Ren",
"summary": "Set the line before Ma Chao's countercharge lands.",
"lines": [
{ "speaker": "Cao Ren", "side": "left", "text": "Ma Chao does not return to test the pass. He returns to prove the pass was never ours." },
{ "speaker": "Cao Cao", "side": "right", "text": "Then let him spend pride against order. A charge that fails once becomes a rumor; twice becomes a wound." }
]
},
{
"id": "ma_chao_zhang_he_charge_line",
"group": "officer",
"officer_id": "zhang_he",
"label": "Zhang He - Charge Line",
"speaker": "Zhang He",
"summary": "Read the shape of Ma Chao's returning cavalry.",
"lines": [
{ "speaker": "Zhang He", "side": "left", "text": "Their countercharge will strike where dust hides distance. If we hold the first breath, their horses must choose a worse path." },
{ "speaker": "Guo Jia", "side": "right", "text": "Then make the first breath expensive. Ma Chao trusts speed; force him to count." }
]
},
{
"id": "ma_chao_counterstroke_fortified_medicine",
"group": "topic",
"label": "Fortified Medicine",
"speaker": "Field Surgeon",
"summary": "Claim medicine stored behind the Tong Pass works.",
"campaign_flags": { "fortified_tong_pass": true },
"effects": [
{ "type": "grant_item", "item_id": "panacea", "count": 1 }
],
"lines": [
{ "speaker": "Field Surgeon", "side": "left", "text": "The pass works gave us room to keep one medicine chest out of the dust. It is ready for the front." },
{ "speaker": "Cao Ren", "side": "right", "text": "Fortifications that only stop arrows are half-built. Let this one keep men standing." }
]
},
{
"id": "ma_chao_counterstroke_pressed_beans",
"group": "topic",
"label": "Pressed Line Beans",
"speaker": "Quartermaster",
"summary": "Claim rations brought forward by the pressed vanguard.",
"campaign_flags": { "pressed_ma_chao_vanguard": true },
"effects": [
{ "type": "grant_item", "item_id": "bean", "count": 1 }
],
"lines": [
{ "speaker": "Quartermaster", "side": "left", "text": "The forward push left little time to cook, but a sack of beans made it to the charge line." },
{ "speaker": "Xiahou Yuan", "side": "right", "text": "Good. Men asked to meet cavalry need food before speeches." }
]
}
]
},
"shop": {
@@ -55,7 +110,14 @@
"campaign_flags": { "pressed_ma_chao_vanguard": true },
"items": ["war_drum"]
}
]
],
"merchant": {
"name": "Counterstroke Sutler",
"lines": [
"Ma Chao's riders shake dust from every pouch, but the best goods stay wrapped until coin appears.",
"Buy now. If the countercharge reaches this cart, my prices become regrets."
]
}
},
"roster": {
"max_units": 7,

View File

@@ -32,6 +32,61 @@
"Rumors between Han Sui and Ma Chao spread through the western alliance, making every order sound slightly suspect."
]
}
],
"camp_conversations": [
{
"id": "weishui_camps_council",
"group": "topic",
"label": "River Camp Council",
"speaker": "Cao Ren",
"summary": "Set the Wei River line before the western assault.",
"lines": [
{ "speaker": "Cao Ren", "side": "left", "text": "A camp beside water can become a wall or a trap. The men must know which one we have built." },
{ "speaker": "Cao Cao", "side": "right", "text": "Then make the river answer us first. Ma Chao can bring horses; we will decide where they breathe." }
]
},
{
"id": "weishui_zhang_he_river_line",
"group": "officer",
"officer_id": "zhang_he",
"label": "Zhang He - River Line",
"speaker": "Zhang He",
"summary": "Read how the river camps can break the assault.",
"lines": [
{ "speaker": "Zhang He", "side": "left", "text": "Their riders can threaten the camp mouths, but the river limits their second turn. Hold the mouth and the charge loses choice." },
{ "speaker": "Guo Jia", "side": "right", "text": "A horseman without choice becomes infantry with worse footing. Use that." }
]
},
{
"id": "weishui_anchor_medicine",
"group": "topic",
"label": "Anchored Camp Medicine",
"speaker": "Field Surgeon",
"summary": "Claim medicine protected by the anchored Wei River camps.",
"campaign_flags": { "anchored_weishui_camps": true },
"effects": [
{ "type": "grant_item", "item_id": "panacea", "count": 1 }
],
"lines": [
{ "speaker": "Field Surgeon", "side": "left", "text": "The anchored camps kept the medicine wagons inside the line. One packet is ready before the assault reaches us." },
{ "speaker": "Cao Ren", "side": "right", "text": "Good. A camp that can mend itself holds longer than one that only trusts stakes." }
]
},
{
"id": "weishui_doubt_rations",
"group": "topic",
"label": "Doubt Rations",
"speaker": "Quartermaster",
"summary": "Claim rations freed by the delay in Han Sui's orders.",
"campaign_flags": { "sowed_han_sui_doubt": true },
"effects": [
{ "type": "grant_item", "item_id": "bean", "count": 1 }
],
"lines": [
{ "speaker": "Quartermaster", "side": "left", "text": "Han Sui's uncertain orders bought us enough time to bring a ration sack across the camp road." },
{ "speaker": "Xiahou Yuan", "side": "right", "text": "Doubt in their camp becomes food in ours. Issue it before the next charge." }
]
}
]
},
"shop": {
@@ -55,11 +110,18 @@
"campaign_flags": { "sowed_han_sui_doubt": true },
"items": ["war_drum"]
}
]
],
"merchant": {
"name": "Weishui Camp Sutler",
"lines": [
"River camps buy quietly. Cavalry hears clinking coin almost as well as hoofbeats.",
"Take what you need before the Wei River decides which bank belongs to whom."
]
}
},
"roster": {
"max_units": 7,
"required_officers": ["cao_cao", "guo_jia"]
"required_officers": ["cao_cao", "guo_jia", "zhang_he"]
},
"formation": {
"cells": [[1, 3], [1, 4], [1, 5], [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 2], [3, 3], [3, 4], [3, 5], [3, 6]]