Antique briefing UI and Puyang localization

This commit is contained in:
2026-06-19 07:14:56 +09:00
parent c2f0fe9041
commit b1fc4d4597
6 changed files with 199 additions and 138 deletions

View File

@@ -76,7 +76,7 @@
},
{
"id": "005_puyang_raid",
"title": "Puyang Raid",
"title": "복양 기습전",
"path": "res://data/scenarios/005_puyang_raid.json"
},
{

View File

@@ -1,9 +1,9 @@
{
"id": "005_puyang_raid",
"name": "Puyang Raid",
"name": "복양 기습전",
"objectives": {
"victory": "Defeat Lu Bu's forward guard.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 11."
"victory": "여포군 전위영을 격파하라.",
"defeat": "조조가 퇴각하거나 제11턴에 이르면 패한다."
},
"conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "turn_3_lu_bu_arrives" },
@@ -13,77 +13,79 @@
]
},
"briefing": {
"title": "Puyang Raid",
"location": "Puyang, 194 CE",
"title": "복양 기습전",
"location": "복양, 흥평 원년",
"lines": [
"Lu Bu has seized momentum in Yan Province.",
"Cao Cao launches a night raid near Puyang to break the forward guard before the main cavalry can gather.",
"Dian Wei joins the front line as Cao Cao's personal shield."
"연주가 흔들리자 여포는 복양을 움켜쥐고 기세를 돋우었다.",
"조조는 밤 그늘을 타고 전위영을 찔러, 적 기병이 말고삐를 모으기 전에 그 앞줄을 꺾으려 한다.",
"전위가 새로 군문에 들어와 주공의 깃발 곁을 지킨다."
],
"camp_conversations": [
{
"id": "puyang_night_raid_council",
"group": "officer",
"officer_id": "cao_cao",
"label": "Cao Cao - Night Raid",
"label": "조조 - 야습 군의",
"speaker": "Cao Cao",
"summary": "Review the timing of the strike against Lu Bu's forward guard.",
"display_speaker": "조조",
"summary": "여포군 전위영을 치는 시각과 퇴로를 정한다.",
"lines": [
{ "speaker": "Cao Cao", "side": "left", "text": "Lu Bu wins when a field becomes a race. Tonight we deny him daylight, distance, and the first clean charge." },
{ "speaker": "Xiahou Dun", "side": "right", "text": "Then we hit the guard camp before the horses are bridled. I like battles that begin with the enemy half awake." }
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "벌판이 달리기가 되면 여포가 이긴다. 오늘 밤에는 햇빛도, 거리도, 첫 돌격도 저들에게 주지 않겠다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "side": "right", "text": "그렇다면 말에 굴레가 얹히기 전에 영채를 치겠습니다. 적이 반쯤 잠든 전장은 우리 쪽 예법에 가깝습니다." }
]
},
{
"id": "puyang_dian_wei_shield",
"group": "officer",
"officer_id": "dian_wei",
"label": "Dian Wei - Iron Shield",
"label": "전위 - 철문 호위",
"speaker": "Dian Wei",
"summary": "Hear Dian Wei's first pledge as Cao Cao's personal shield.",
"display_speaker": "전위",
"summary": "주공의 깃발 곁에 선 전위의 첫 맹세를 듣는다.",
"lines": [
{ "speaker": "Dian Wei", "side": "right", "text": "You gave me a place in the line. I will make that place difficult for any rider to cross." },
{ "speaker": "Cao Cao", "side": "left", "text": "Stand close when the alarm rises. Lu Bu's men will aim for the banner before they understand the field." }
{ "speaker": "Dian Wei", "display_speaker": "전위", "side": "right", "text": "제게 대열 한가운데 자리를 주셨습니다. 그 자리는 어떤 기병도 쉽게 넘지 못하게 하겠습니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "경고의 북이 울리면 내 깃발 가까이에 서라. 여포의 병사는 전장을 읽기 전에 먼저 군기를 노릴 것이다." }
]
},
{
"id": "puyang_raider_stores",
"group": "topic",
"label": "Raider Stores",
"summary": "Pack a small supply bundle for the night raid.",
"label": "야습 보급 묶음",
"summary": "밤길에 들고 갈 작은 군수 꾸러미를 챙긴다.",
"lines": [
{ "speaker": "Puyang Night Trader", "side": "right", "text": "A night raid does not leave room for wagons. I tied the beans into dark cloth so the men can carry them under armor." },
{ "speaker": "Xiahou Yuan", "side": "left", "text": "Good. When Lu Bu's riders wake, no one will have time to search a cart." }
{ "speaker": "Puyang Night Trader", "display_speaker": "복양 야상", "side": "right", "text": "야습에는 큰 수레가 따라붙지 못합니다. 콩을 검은 천에 묶어 갑옷 밑에도 숨길 수 있게 했습니다." },
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "side": "left", "text": "좋다. 여포의 기병이 깨어나면 누구도 수레 속을 뒤질 틈이 없을 것이다." }
],
"effects": [
{ "type": "grant_item", "item_id": "bean", "count": 1, "text": "The raider stores add a Bean to the field supplies." }
{ "type": "grant_item", "item_id": "bean", "count": 1, "text": "야습 보급 묶음에서 콩 한 줌을 군수에 보탰다." }
]
},
{
"id": "puyang_hardened_vanguard",
"campaign_flags": { "pursued_dong_zhuo": true },
"group": "topic",
"label": "Hardened Vanguard",
"summary": "Issue wine to veterans used to forced marches and sudden strikes.",
"label": "형양 노병",
"summary": "강행군과 매복을 넘긴 선봉에게 술을 나눈다.",
"lines": [
{ "speaker": "Xiahou Dun", "side": "right", "text": "The men who chased Dong Zhuo still move before the drum finishes. Puyang's night road will not frighten them." },
{ "speaker": "Cao Cao", "side": "left", "text": "Give those veterans wine before we step off. Men who endure hard roads should know their endurance is seen." }
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "side": "right", "text": "동탁을 쫓아 형양까지 달린 병사들은 아직 북소리가 끝나기 전에 움직입니다. 복양의 밤길도 겁내지 않을 것입니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "출진 전에 노병들에게 술을 조금 나누어라. 험한 길을 견딘 자에게는 그 수고를 안다는 말이 필요하다." }
],
"effects": [
{ "type": "grant_item", "item_id": "wine", "count": 1, "text": "The hardened vanguard adds Wine to the field supplies." }
{ "type": "grant_item", "item_id": "wine", "count": 1, "text": "형양 노병들이 술 한 병을 군수에 보탰다." }
]
},
{
"id": "puyang_qingzhou_reserve_wagon",
"campaign_flags": { "regrouped_after_sishui": true },
"group": "topic",
"label": "Qingzhou Reserve Wagon",
"summary": "Open a physician's bundle preserved during the steadier march.",
"label": "청주 예비 약거",
"summary": "정비 행군 중 보존한 의원의 꾸러미를 연다.",
"lines": [
{ "speaker": "Puyang Night Trader", "side": "right", "text": "The reserve wagon from Qingzhou still has a sealed physician's bundle. Quiet hands packed it better than hurried ones." },
{ "speaker": "Dian Wei", "side": "left", "text": "Keep it near the banner. If Lu Bu's riders break through, wounded men will need more than courage." }
{ "speaker": "Puyang Night Trader", "display_speaker": "복양 야상", "side": "right", "text": "청주에서 따라온 예비 수레에 아직 의원의 봉한 꾸러미가 남아 있습니다. 서두르지 않은 손이 싼 물건은 오래 버팁니다." },
{ "speaker": "Dian Wei", "display_speaker": "전위", "side": "left", "text": "깃발 가까이에 두게. 여포의 기병이 뚫고 들어오면 다친 병사에게 필요한 것은 담력만이 아닐 것이다." }
],
"effects": [
{ "type": "grant_item", "item_id": "panacea", "count": 1, "text": "The Qingzhou reserve wagon adds a Panacea to the field supplies." }
{ "type": "grant_item", "item_id": "panacea", "count": 1, "text": "청주 예비 약거에서 만능약 한 꾸러미를 군수에 보탰다." }
]
}
]
@@ -100,10 +102,10 @@
"iron_armor"
],
"merchant": {
"name": "Puyang Night Trader",
"name": "복양 야상",
"lines": [
"Keep the lamps hooded. Lu Bu's scouts buy anything that shines.",
"His riders spend silver on speed. You will spend it on armor, beans, and living long enough to use both."
"등불은 가려 두십시오. 여포의 척후는 빛나는 물건이라면 무엇이든 사 갑니다.",
"저들의 기병은 빠른 말에 은을 쓰고, 장군께서는 갑옷과 콩, 그리고 그것을 쓸 만큼 오래 버티는 데 은을 쓰시면 됩니다."
]
}
},
@@ -167,7 +169,7 @@
},
{
"unit_id": "zhang_liao_vanguard",
"name": "Zhang Liao Vanguard",
"name": "장료 선봉",
"class_id": "cavalry",
"team": "enemy",
"level": 5,
@@ -177,7 +179,7 @@
},
{
"unit_id": "gao_shun_guard",
"name": "Gao Shun Guard",
"name": "고순 군영",
"class_id": "infantry",
"team": "enemy",
"level": 5,
@@ -187,7 +189,7 @@
},
{
"unit_id": "puyang_cavalry_1",
"name": "Puyang Rider",
"name": "복양 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 5,
@@ -197,7 +199,7 @@
},
{
"unit_id": "puyang_cavalry_2",
"name": "Puyang Rider",
"name": "복양 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 5,
@@ -207,7 +209,7 @@
},
{
"unit_id": "puyang_archer",
"name": "Puyang Archer",
"name": "복양 궁병",
"class_id": "archer",
"team": "enemy",
"level": 5,
@@ -222,7 +224,7 @@
"once": true,
"when": { "type": "battle_start" },
"actions": [
{ "type": "log", "text": "Cao Cao's raiding force slips toward Puyang under cover of darkness." }
{ "type": "log", "text": "조조의 야습대가 밤 그늘을 타고 복양 전위영으로 스며든다." }
]
},
{
@@ -233,9 +235,9 @@
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Cao", "text": "Lu Bu's cavalry is dangerous once it gathers speed. We strike before the whole camp wakes." },
{ "speaker": "Dian Wei", "text": "Stay behind me, my lord. Any rider who reaches you answers to my axe." },
{ "speaker": "Xiahou Dun", "text": "Good. We cut open their guard and withdraw before dawn." }
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "여포의 기병은 속도가 붙으면 사납다. 영채가 모두 깨기 전에 쳐라." },
{ "speaker": "Dian Wei", "display_speaker": "전위", "text": "주공께서는 제 뒤에 계십시오. 주공께 닿는 말발굽은 제 도끼 앞에 설 것입니다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "text": "좋습니다. 새벽이 오기 전에 전위영을 열고 빠져나가겠습니다." }
]
}
]
@@ -245,12 +247,12 @@
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 2 },
"actions": [
{ "type": "log", "text": "Puyang's forward camp sounds the alarm." },
{ "type": "log", "text": "복양 전위영에서 경고의 북이 울린다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Zhang Liao", "text": "Cao Cao comes in the night. Riders, close the road and pin him here." },
{ "speaker": "Cao Cao", "text": "The alarm is raised. Break their line before Lu Bu himself arrives." }
{ "speaker": "Zhang Liao", "display_speaker": "장료", "text": "조조가 밤을 틈타 왔다. 기병은 길을 닫고 저들을 이곳에 묶어라." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "북이 울렸구나. 여포가 직접 오기 전에 저 전열을 깨라." }
]
}
]
@@ -260,25 +262,25 @@
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 3 },
"actions": [
{ "type": "log", "text": "Lu Bu's banner appears beyond the eastern road." },
{ "type": "log", "text": "동쪽 길 너머로 여포의 군기가 모습을 드러낸다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Lu Bu", "text": "Cao Cao dares raid Puyang? Then let him see how fast my riders wake." },
{ "speaker": "Dian Wei", "text": "That one has a loud voice. I will hold the road while you finish the guard." }
{ "speaker": "Lu Bu", "display_speaker": "여포", "text": "조조가 감히 복양을 밤에 치느냐? 내 기병이 얼마나 빨리 깨어나는지 보여 주마." },
{ "speaker": "Dian Wei", "display_speaker": "전위", "text": "목소리 하나는 크군요. 주공께서 전위영을 깨는 동안 길목은 제가 막겠습니다." }
]
},
{
"type": "set_objective",
"victory": "Defeat Zhang Liao's guard and the arriving riders.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 11."
"victory": "장료의 전위와 달려든 기병을 격파하라.",
"defeat": "조조가 퇴각하거나 제11턴에 이르면 패한다."
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "lu_bu_banner",
"name": "Lu Bu Banner Guard",
"name": "여포 기치병",
"class_id": "elite_cavalry",
"team": "enemy",
"level": 6,
@@ -288,7 +290,7 @@
},
{
"unit_id": "lu_bu_rider_north",
"name": "Lu Bu Rider",
"name": "여포 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 5,
@@ -298,7 +300,7 @@
},
{
"unit_id": "lu_bu_rider_south",
"name": "Lu Bu Rider",
"name": "여포 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 5,
@@ -318,8 +320,8 @@
{
"type": "dialogue",
"lines": [
{ "speaker": "Dian Wei", "text": "Their riders hit hard, but their line bends. Give the word and I will split it." },
{ "speaker": "Cao Cao", "text": "Press them. We leave Puyang with their vanguard broken." }
{ "speaker": "Dian Wei", "display_speaker": "전위", "text": "저들의 기병은 세게 부딪치나 전열은 이미 휘었습니다. 명만 내리시면 제가 갈라 놓겠습니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "몰아붙여라. 복양을 온전히 얻지 못하더라도, 오늘 밤 저들의 선봉은 꺾어 두고 간다." }
]
}
]
@@ -330,21 +332,21 @@
"items": ["bean", "wine", "iron_sword"]
},
"post_battle_dialogue": [
{ "speaker": "Xiahou Dun", "text": "Lu Bu's men still hold Puyang, but their forward guard will remember tonight." },
{ "speaker": "Dian Wei", "text": "They came fast. Next time, let them come closer." },
{ "speaker": "Cao Cao", "text": "We have measured their strength. Now we choose whether to fortify Yan Province or strike again." }
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "text": "여포의 군세는 아직 복양을 붙들고 있으나, 전위영은 오늘 밤을 잊지 못할 것입니다." },
{ "speaker": "Dian Wei", "display_speaker": "전위", "text": "빠르게 달려오더군요. 다음에는 조금 더 가까이 오게 두십시오." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "저들의 힘을 가늠했다. 이제 연주를 굳힐지, 흔들린 복양을 다시 누를지 정해야 한다." }
],
"post_battle_choices": [
{
"id": "fortify_yan_province",
"label": "Fortify Yan Province",
"description": "Secure supply roads before another clash with Lu Bu.",
"label": "연주 보강",
"description": "여포와 다시 겨루기 전에 군량길과 성책을 단단히 묶는다.",
"set_flags": { "fortified_yan_province": true, "pressed_lu_bu": false }
},
{
"id": "press_lu_bu",
"label": "Press Lu Bu",
"description": "Keep pressure on Puyang while Lu Bu's guard is shaken.",
"label": "여포 압박",
"description": "전위영이 흔들린 틈을 놓치지 않고 복양을 계속 누른다.",
"set_flags": { "fortified_yan_province": false, "pressed_lu_bu": true }
}
]