Localize early Jianye campaign

This commit is contained in:
2026-06-19 11:21:56 +09:00
parent 4bf6489d25
commit a93fdb2898
5 changed files with 333 additions and 168 deletions

View File

@@ -1,9 +1,9 @@
{ {
"id": "052_wu_river_line", "id": "052_wu_river_line",
"name": "Wu River Line", "name": "오군 강안전",
"objectives": { "objectives": {
"victory": "Reach Wu's river line with Cao Cao, then defeat the Wu fleet guard.", "victory": "조조가 오군 강안 전선에 닿은 뒤 오군 선단 수비대를 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
"conditions": { "conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "wu_river_line_reached" }, "victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "wu_river_line_reached" },
@@ -13,28 +13,57 @@
] ]
}, },
"briefing": { "briefing": {
"title": "Wu River Line", "title": "오군 강안전",
"location": "Ruxu River Line, Eastern Front, 220 CE", "location": "유수 강안 전선, 건안 25년",
"lines": [ "lines": [
"The eastern front alarm has quieted, but Wu's river line remains alive with watchfires, current boats, and captains testing the edge of Wei's new authority.", "동부 전선의 경보는 잦아들었으나 오군 강안에는 봉화와 조류를 타는 배, 위의 새 권위를 시험하는 선단장들이 아직 남아 있다.",
"Cao Cao advances toward the river line to decide whether Ruxu becomes a stable fleet base or the first step toward deeper Wu pressure." "유수가 오래 버틸 선단 거점이 될지, 건업을 향한 더 깊은 압박의 첫걸음이 될지 정하기 위해 조조가 강안 전선으로 진격한다."
], ],
"conditional_lines": [ "conditional_lines": [
{ {
"campaign_flags": { "secured_eastern_fleet": true }, "campaign_flags": { "secured_eastern_fleet": true },
"lines": [ "lines": [
"Securing the eastern fleet gives Cao Cao steadier boats, screened crossings, and time to measure Wu's river guard before committing." "동부 선단을 확보한 덕에 조조는 한결 안정된 배와 가려진 나루, 그리고 오군 강안 수비를 재고 전진할 시간을 얻었다."
] ]
}, },
{ {
"campaign_flags": { "pressed_wu_river_line": true }, "campaign_flags": { "pressed_wu_river_line": true },
"lines": [ "lines": [
"Pressing Wu's river line keeps the enemy unsettled, but their captains now expect Wei to strike before the water calms." "오군 강안을 압박해 적은 아직 흔들리고 있으나, 저들의 선단장들도 이제 물살이 가라앉기 전에 위군이 칠 것을 예상한다."
]
}
],
"camp_conversations": [
{
"id": "wu_river_line_council",
"label": "오군 강안 군의",
"group": "topic",
"speaker": "Cao Ren",
"lines": [
{ "speaker": "Cao Ren", "text": "경보는 사라졌지만 오군 강안에는 봉화와 배가 아직 빽빽합니다." },
{ "speaker": "Cao Cao", "text": "그들이 기다리는 동안 우리는 길을 만든다. 물살이 우리보다 먼저 결정을 내리게 두지 않는다." }
]
},
{
"id": "wu_river_line_guo_jia_current",
"label": "곽가 - 물살의 침묵",
"group": "officer",
"officer_id": "guo_jia",
"lines": [
{ "speaker": "Guo Jia", "text": "경보 뒤의 조용한 강은 평화가 아닙니다. 적이 우리의 다음 노 젓는 소리를 듣는 시간입니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 그 소리를 분명히 들려준다. 오군 강안은 오늘 위의 길이 된다." }
] ]
} }
] ]
}, },
"shop": { "shop": {
"merchant": {
"name": "유수 수채 야상",
"lines": [
"수채 장사는 물길보다 군령을 먼저 봅니다. 오늘은 위군의 깃발이 물살보다 빠르군요.",
"젖은 길에서는 콩도 술도 갑옷끈만큼 중요합니다. 필요한 보급을 챙기십시오."
]
},
"items": [ "items": [
"bean", "bean",
"wine", "wine",
@@ -131,7 +160,7 @@
}, },
{ {
"unit_id": "wu_river_line_guard", "unit_id": "wu_river_line_guard",
"name": "Wu River Line Guard", "name": "오군 강안 수비대",
"class_id": "commander", "class_id": "commander",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -140,7 +169,7 @@
}, },
{ {
"unit_id": "ruxu_fleet_captain", "unit_id": "ruxu_fleet_captain",
"name": "Ruxu Fleet Captain", "name": "유수 선단 대장",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -149,7 +178,7 @@
}, },
{ {
"unit_id": "gan_ning_river_line_boat", "unit_id": "gan_ning_river_line_boat",
"name": "Gan Ning River Line Boat", "name": "감녕 강안선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -159,7 +188,7 @@
}, },
{ {
"unit_id": "wu_river_line_advisor", "unit_id": "wu_river_line_advisor",
"name": "Wu River Line Advisor", "name": "오군 강안 군사",
"class_id": "military_advisor", "class_id": "military_advisor",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -169,7 +198,7 @@
}, },
{ {
"unit_id": "wu_river_spear_north", "unit_id": "wu_river_spear_north",
"name": "Wu River Spear", "name": "오군 강안 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -178,7 +207,7 @@
}, },
{ {
"unit_id": "wu_river_spear_south", "unit_id": "wu_river_spear_south",
"name": "Wu River Spear", "name": "오군 강안 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -187,7 +216,7 @@
}, },
{ {
"unit_id": "wu_river_arrow_boat", "unit_id": "wu_river_arrow_boat",
"name": "Wu River Arrow Boat", "name": "오군 강안 궁선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -202,7 +231,7 @@
"once": true, "once": true,
"when": { "type": "battle_start" }, "when": { "type": "battle_start" },
"actions": [ "actions": [
{ "type": "log", "text": "Wei advances from the eastern alarm toward Wu's river line at Ruxu." } { "type": "log", "text": "위군이 동부 경보선을 넘어 유수의 오군 강안 전선으로 진격한다." }
] ]
}, },
{ {
@@ -213,9 +242,9 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "The alarm has faded, but Wu's river line still waits with boats in every channel." }, { "speaker": "Cao Ren", "text": "경보는 사라졌지만 오군 강안에는 물길마다 배가 남아 있습니다." },
{ "speaker": "Guo Jia", "text": "A quiet river after alarm is not peace. It is the enemy listening for our next oar." }, { "speaker": "Guo Jia", "text": "경보 뒤의 조용한 강은 평화가 아닙니다. 적이 우리의 다음 노 젓는 소리를 듣는 시간입니다." },
{ "speaker": "Cao Cao", "text": "Then let them hear it. We take the line before the current chooses for us." } { "speaker": "Cao Cao", "text": "그렇다면 듣게 하라. 물살이 우리 대신 결정하기 전에 강안을 잡는다." }
] ]
} }
] ]
@@ -228,8 +257,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Xiahou Yuan", "text": "The secured fleet is screening our bank. Wu's side current cannot surprise the crossing." }, { "speaker": "Xiahou Yuan", "text": "확보한 선단이 우리 강안을 가리고 있습니다. 오군의 곁물살은 나루를 기습하지 못할 것입니다." },
{ "speaker": "Cao Cao", "text": "A river guarded before battle becomes a road during battle." } { "speaker": "Cao Cao", "text": "싸움 전에 지킨 강은 싸움 중에 길이 된다." }
] ]
} }
] ]
@@ -242,15 +271,15 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Wu River Line Guard", "text": "Wei presses before the river settles. Send counterboats through the side channel." }, { "speaker": "오군 강안 수비대", "text": "강물이 가라앉기 전에 위군이 밀고 온다. 곁물길로 역습선을 보내라." },
{ "speaker": "Zhang He", "text": "They answer pressure with speed. That means the line can still be bent." } { "speaker": "Zhang He", "text": "저들은 압박에 속도로 답합니다. 그렇다면 저 전선은 아직 휘어질 수 있습니다." }
] ]
}, },
{ {
"type": "spawn_deployment", "type": "spawn_deployment",
"deployment": { "deployment": {
"unit_id": "wu_side_channel_boat", "unit_id": "wu_side_channel_boat",
"name": "Wu Side-Channel Boat", "name": "오군 곁물길 역습선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -269,8 +298,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Wu River Line Advisor", "text": "Keep their front guessing between road and water. Ruxu falls only when men trust the bank too much." }, { "speaker": "오군 강안 군사", "text": "저들의 앞길이 도로인지 물길인지 계속 의심하게 하라. 유수는 강안을 지나치게 믿는 순간 무너진다." },
{ "speaker": "Guo Jia", "text": "They want indecision. Give them a decision sharp enough to cross." } { "speaker": "Guo Jia", "text": "저들은 망설임을 원합니다. 건널 만큼 날카로운 결정을 보여 주지요." }
] ]
} }
] ]
@@ -282,14 +311,14 @@
"actions": [ "actions": [
{ {
"type": "set_objective", "type": "set_objective",
"victory": "Wu's river line is reached. Defeat the Wu fleet guard.", "victory": "오군 강안 전선에 닿았다. 오군 선단 수비대를 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Cao", "text": "This is Wu's river line. Break the fleet guard and make Ruxu answer to Wei's command." }, { "speaker": "Cao Cao", "text": "여기가 오군의 강안이다. 선단 수비대를 깨고 유수가 위의 군령에 답하게 하라." },
{ "speaker": "Wu River Line Guard", "text": "Ruxu's water has carried more than one boast away." } { "speaker": "오군 강안 수비대", "text": "유수의 물은 허세 하나쯤은 이미 여럿 실어 보냈다." }
] ]
}, },
{ {
@@ -297,7 +326,7 @@
"deployments": [ "deployments": [
{ {
"unit_id": "wu_river_inner_guard", "unit_id": "wu_river_inner_guard",
"name": "Wu River Inner Guard", "name": "오군 강안 내측 수비대",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 49, "level": 49,
@@ -306,7 +335,7 @@
}, },
{ {
"unit_id": "wu_river_crossbow_boat", "unit_id": "wu_river_crossbow_boat",
"name": "Wu River Crossbow Boat", "name": "오군 강안 쇠뇌선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -326,8 +355,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "Their river line is bending. The boats are still moving, but their orders are slower." }, { "speaker": "Cao Ren", "text": "저들의 강안 전선이 휘어집니다. 배는 아직 움직이지만 명령은 느려지고 있습니다." },
{ "speaker": "Cao Cao", "text": "Then make the current carry our pace, not theirs." } { "speaker": "Cao Cao", "text": "그렇다면 물살이 저들의 속도가 아니라 우리의 속도를 나르게 하라." }
] ]
} }
] ]
@@ -338,23 +367,23 @@
"items": ["bean", "wine", "war_drum"] "items": ["bean", "wine", "war_drum"]
}, },
"post_battle_dialogue": [ "post_battle_dialogue": [
{ "speaker": "Guo Jia", "text": "Wu's river line is broken open. Ruxu can become an anchored fleet base, or the first marker on a road toward Jianye." }, { "speaker": "Guo Jia", "text": "오군 강안 전선은 열렸습니다. 유수는 묶어 둔 선단 거점이 될 수도, 건업으로 향하는 첫 표식이 될 수도 있습니다." },
{ "speaker": "Cao Ren", "text": "Anchor the fleet and the river listens longer. Press toward Jianye and Wu must answer before it is ready." }, { "speaker": "Cao Ren", "text": "선단을 닻내리면 강은 오래 우리 말을 듣습니다. 건업을 압박하면 오는 준비하기 전에 답해야 합니다." },
{ "speaker": "Cao Cao", "text": "A river line broken is an invitation, not a conclusion. Choose how loudly we answer." } { "speaker": "Cao Cao", "text": "무너진 강안은 결론이 아니라 초대다. 우리가 얼마나 크게 답할지 정하라." }
], ],
"post_battle_choices": [ "post_battle_choices": [
{ {
"id": "anchor_ruxu_fleet", "id": "anchor_ruxu_fleet",
"label": "Anchor Fleet", "label": "유수 선단 정박",
"description": "Cao Cao anchors the Ruxu fleet as a lasting eastern base.", "description": "조조가 유수 선단을 오래 버틸 동부 거점으로 정박시킨다.",
"set_flags": { "anchored_ruxu_fleet": true, "prepared_jianye_pressure": false }, "set_flags": { "anchored_ruxu_fleet": true, "prepared_jianye_pressure": false },
"gold": 1850, "gold": 1850,
"items": ["imperial_seal"] "items": ["imperial_seal"]
}, },
{ {
"id": "prepare_jianye_pressure", "id": "prepare_jianye_pressure",
"label": "Press Jianye", "label": "건업 압박",
"description": "Cao Cao prepares pressure toward Jianye before Wu can recover the river line.", "description": "조조가 오군이 강안 전선을 회복하기 전에 건업을 향한 압박을 준비한다.",
"set_flags": { "anchored_ruxu_fleet": false, "prepared_jianye_pressure": true }, "set_flags": { "anchored_ruxu_fleet": false, "prepared_jianye_pressure": true },
"gold": 1650, "gold": 1650,
"items": ["war_drum"] "items": ["war_drum"]

View File

@@ -1,9 +1,9 @@
{ {
"id": "053_jianye_approach", "id": "053_jianye_approach",
"name": "Jianye Approach", "name": "건업 접근전",
"objectives": { "objectives": {
"victory": "Reach the Jianye approach marker with Cao Cao, then defeat the Wu approach guard.", "victory": "조조가 건업 접근 표식에 닿은 뒤 오군 접근로 수비대를 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
"conditions": { "conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "jianye_approach_reached" }, "victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "jianye_approach_reached" },
@@ -13,28 +13,57 @@
] ]
}, },
"briefing": { "briefing": {
"title": "Jianye Approach", "title": "건업 접근전",
"location": "Lower Yangtze Approach, Eastern Front, 220 CE", "location": "장강 하류 접근로, 건안 25년",
"lines": [ "lines": [
"With Wu's river line broken, Cao Cao advances along the lower Yangtze road toward the approaches that shield Jianye.", "오군 강안 전선이 무너지자 조조는 장강 하류 길을 따라 건업을 가리는 접근로로 전진한다.",
"The road is narrow, the water stays close, and Wu's captains mean to turn every bank into a delay before the capital can be threatened." "길은 좁고 물은 늘 곁에 붙어 있으며, 오군 장수들은 도성에 위협이 닿기 전에 모든 강둑을 지연선으로 만들려 한다."
], ],
"conditional_lines": [ "conditional_lines": [
{ {
"campaign_flags": { "anchored_ruxu_fleet": true }, "campaign_flags": { "anchored_ruxu_fleet": true },
"lines": [ "lines": [
"The anchored Ruxu fleet steadies Wei's rear, giving the advance a protected supply line and calmer crossings." "유수에 정박한 선단은 위군의 후방을 안정시켜, 전진군에 보호받는 보급선과 한결 잠잠한 나루를 제공한다."
] ]
}, },
{ {
"campaign_flags": { "prepared_jianye_pressure": true }, "campaign_flags": { "prepared_jianye_pressure": true },
"lines": [ "lines": [
"The prepared Jianye pressure leaves Wu little time to gather, but every rushed enemy captain knows where Wei's spear is pointed." "준비된 건업 압박은 오군에게 모일 시간을 거의 주지 않지만, 서두르는 적장들도 위군의 창끝이 어디를 향하는지는 알고 있다."
]
}
],
"camp_conversations": [
{
"id": "jianye_approach_council",
"label": "건업 접근 군의",
"group": "topic",
"speaker": "Cao Ren",
"lines": [
{ "speaker": "Cao Ren", "text": "길은 동쪽으로 굽지만 강물은 여전히 우리 옆구리를 잡고 있습니다." },
{ "speaker": "Cao Cao", "text": "길과 물이 함께 좁아지는 곳이야말로 군령이 먼저 지나가야 한다." }
]
},
{
"id": "jianye_guo_jia_approach_road",
"label": "곽가 - 도성으로 듣는 길",
"group": "officer",
"officer_id": "guo_jia",
"lines": [
{ "speaker": "Guo Jia", "text": "이 길목을 잃으면 건업은 위군 북소리를 듣기 시작합니다. 그래서 오군이 여기를 지키는 것입니다." },
{ "speaker": "Cao Cao", "text": "그 북소리를 분명히 하라. 건업으로 돌아가는 조용한 길을 남기지 않는다." }
] ]
} }
] ]
}, },
"shop": { "shop": {
"merchant": {
"name": "건업 길목 야상",
"lines": [
"건업 길목의 장사는 강둑에 숨어 있다가 깃발을 보고 나옵니다. 오늘은 위군 깃발이군요.",
"좁은 길에서는 술 한 병이 창 하나보다 빠르게 부대를 일으킬 때도 있습니다."
]
},
"items": [ "items": [
"bean", "bean",
"wine", "wine",
@@ -131,7 +160,7 @@
}, },
{ {
"unit_id": "jianye_approach_guard", "unit_id": "jianye_approach_guard",
"name": "Jianye Approach Guard", "name": "건업 접근로 수비대",
"class_id": "commander", "class_id": "commander",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -140,7 +169,7 @@
}, },
{ {
"unit_id": "ruxu_forward_captain", "unit_id": "ruxu_forward_captain",
"name": "Ruxu Forward Captain", "name": "유수 전진 대장",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -149,7 +178,7 @@
}, },
{ {
"unit_id": "wu_jianye_lane_boat", "unit_id": "wu_jianye_lane_boat",
"name": "Wu Jianye Lane Boat", "name": "오군 건업 길목선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -159,7 +188,7 @@
}, },
{ {
"unit_id": "wu_approach_advisor", "unit_id": "wu_approach_advisor",
"name": "Wu Approach Advisor", "name": "오군 접근로 군사",
"class_id": "military_advisor", "class_id": "military_advisor",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -169,7 +198,7 @@
}, },
{ {
"unit_id": "wu_approach_spear_north", "unit_id": "wu_approach_spear_north",
"name": "Wu Approach Spear", "name": "오군 접근로 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -178,7 +207,7 @@
}, },
{ {
"unit_id": "wu_approach_spear_south", "unit_id": "wu_approach_spear_south",
"name": "Wu Approach Spear", "name": "오군 접근로 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -187,7 +216,7 @@
}, },
{ {
"unit_id": "wu_approach_arrow_boat", "unit_id": "wu_approach_arrow_boat",
"name": "Wu Approach Arrow Boat", "name": "오군 접근로 궁선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -202,7 +231,7 @@
"once": true, "once": true,
"when": { "type": "battle_start" }, "when": { "type": "battle_start" },
"actions": [ "actions": [
{ "type": "log", "text": "Wei pushes from the broken Wu river line toward the approaches that shield Jianye." } { "type": "log", "text": "위군이 무너진 오군 강안 전선에서 건업을 가리는 접근로로 밀고 간다." }
] ]
}, },
{ {
@@ -213,9 +242,9 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "The road bends east, but the river keeps one hand on our flank." }, { "speaker": "Cao Ren", "text": "길은 동쪽으로 굽지만 강물은 여전히 우리 옆구리를 잡고 있습니다." },
{ "speaker": "Guo Jia", "text": "That is why Wu guards this approach. Lose the bank here and Jianye begins listening for Wei drums." }, { "speaker": "Guo Jia", "text": "그래서 오군이 이 접근로를 지키는 것입니다. 여기 강둑을 잃으면 건업은 위군 북소리를 듣게 됩니다." },
{ "speaker": "Cao Cao", "text": "Then let the drums be clear. Take the approach and leave Wu no quiet road home." } { "speaker": "Cao Cao", "text": "그렇다면 북소리를 분명히 하라. 접근로를 잡고 오군에게 조용한 귀로를 남기지 않는다." }
] ]
} }
] ]
@@ -228,8 +257,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Xiahou Dun", "text": "The anchored fleet is holding the rear water. Our supply carts can keep pace with the road." }, { "speaker": "Xiahou Dun", "text": "정박한 선단이 후방 물길을 붙잡고 있습니다. 보급 수레가 길의 속도를 따라올 수 있습니다." },
{ "speaker": "Cao Cao", "text": "A road fed by water can strike farther than a road alone." } { "speaker": "Cao Cao", "text": "물길이 먹이는 도로는 도로 하나보다 더 멀리 친다." }
] ]
} }
] ]
@@ -242,15 +271,15 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Jianye Approach Guard", "text": "Wei points straight at Jianye. Send the hasty boats before their road column settles." }, { "speaker": "건업 접근로 수비대", "text": "위군의 창끝이 곧장 건업을 향한다. 길 위의 대열이 자리잡기 전에 급조선을 보내라." },
{ "speaker": "Zhang He", "text": "They are answering speed with speed. That makes their line sharp, but thin." } { "speaker": "Zhang He", "text": "저들은 속도에 속도로 답합니다. 선은 날카롭지만 얇습니다." }
] ]
}, },
{ {
"type": "spawn_deployment", "type": "spawn_deployment",
"deployment": { "deployment": {
"unit_id": "wu_hasty_counterboat", "unit_id": "wu_hasty_counterboat",
"name": "Wu Hasty Counterboat", "name": "오군 급조 역습선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -269,8 +298,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Wu Approach Advisor", "text": "Hold the road long enough for Jianye to hear the warning. Every step Wei buys here costs them time." }, { "speaker": "오군 접근로 군사", "text": "건업이 경보를 들을 만큼만 길을 붙들어라. 위군이 여기서 사는 한 걸음마다 시간이 든다." },
{ "speaker": "Guo Jia", "text": "They trade ground for warning. So we must take ground and silence together." } { "speaker": "Guo Jia", "text": "저들은 땅을 경보와 바꾸려 합니다. 그렇다면 우리는 땅과 침묵을 함께 취해야 합니다." }
] ]
} }
] ]
@@ -282,14 +311,14 @@
"actions": [ "actions": [
{ {
"type": "set_objective", "type": "set_objective",
"victory": "The Jianye approach is reached. Defeat the Wu approach guard.", "victory": "건업 접근로에 닿았다. 오군 접근로 수비대를 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Cao", "text": "This approach carries the sound of Jianye's gates. Break the guard and make that sound ours." }, { "speaker": "Cao Cao", "text": "이 접근로에는 건업 성문의 소리가 실려 있다. 수비대를 깨고 그 소리를 우리의 것으로 만들어라." },
{ "speaker": "Jianye Approach Guard", "text": "Jianye does not open because a road boasts loudly." } { "speaker": "건업 접근로 수비대", "text": "길 하나가 떠든다고 건업이 열리지는 않는다." }
] ]
}, },
{ {
@@ -297,7 +326,7 @@
"deployments": [ "deployments": [
{ {
"unit_id": "wu_approach_inner_guard", "unit_id": "wu_approach_inner_guard",
"name": "Wu Approach Inner Guard", "name": "오군 접근로 내측 수비대",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 50, "level": 50,
@@ -306,7 +335,7 @@
}, },
{ {
"unit_id": "wu_approach_crossbow_boat", "unit_id": "wu_approach_crossbow_boat",
"name": "Wu Approach Crossbow Boat", "name": "오군 접근로 쇠뇌선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -326,8 +355,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "Their approach guard is buckling. The road ahead is opening by the wagon-length." }, { "speaker": "Cao Ren", "text": "저들의 접근로 수비가 꺾입니다. 앞길이 수레 한 칸씩 열리고 있습니다." },
{ "speaker": "Cao Cao", "text": "Then widen it until Wu must choose between guarding Jianye and answering us here." } { "speaker": "Cao Cao", "text": "그렇다면 오군이 건업을 지킬지 이곳에서 답할지 고를 때까지 넓혀라." }
] ]
} }
] ]
@@ -338,23 +367,23 @@
"items": ["bean", "wine", "iron_armor"] "items": ["bean", "wine", "iron_armor"]
}, },
"post_battle_dialogue": [ "post_battle_dialogue": [
{ "speaker": "Guo Jia", "text": "The Jianye approach is open enough to shape the next move. Wei can secure the route, or force Wu to strike before its capital guard is ready." }, { "speaker": "Guo Jia", "text": "건업 접근로가 다음 움직임을 정할 만큼 열렸습니다. 길을 굳혀도 되고, 도성 수비가 갖춰지기 전에 오군의 반격을 끌어내도 됩니다." },
{ "speaker": "Cao Ren", "text": "Secure the approach and our line becomes hard to cut. Force the counterstroke and Wu must spend its strength away from the walls." }, { "speaker": "Cao Ren", "text": "접근로를 확보하면 우리 선은 끊기기 어렵습니다. 반격을 강요하면 오군은 성벽 밖에서 힘을 쓰게 됩니다." },
{ "speaker": "Cao Cao", "text": "A capital is not taken by walking toward it. It is taken by deciding which fear reaches it first." } { "speaker": "Cao Cao", "text": "도성은 그쪽으로 걷는다고 취하는 것이 아니다. 어떤 두려움이 먼저 닿게 할지 정하는 것이다." }
], ],
"post_battle_choices": [ "post_battle_choices": [
{ {
"id": "secure_jianye_approach", "id": "secure_jianye_approach",
"label": "Secure Approach", "label": "접근로 확보",
"description": "Cao Cao secures the Jianye approach as a stable road toward the lower Yangtze front.", "description": "조조가 장강 하류 전선으로 이어지는 안정된 길로 건업 접근로를 확보한다.",
"set_flags": { "secured_jianye_approach": true, "forced_wu_counterstroke": false }, "set_flags": { "secured_jianye_approach": true, "forced_wu_counterstroke": false },
"gold": 1900, "gold": 1900,
"items": ["imperial_seal"] "items": ["imperial_seal"]
}, },
{ {
"id": "force_wu_counterstroke", "id": "force_wu_counterstroke",
"label": "Force Counter", "label": "오군 반격 유도",
"description": "Cao Cao forces Wu to counterattack before the Jianye guard can settle.", "description": "조조가 건업 수비가 자리잡기 전에 오군이 반격하도록 압박한다.",
"set_flags": { "secured_jianye_approach": false, "forced_wu_counterstroke": true }, "set_flags": { "secured_jianye_approach": false, "forced_wu_counterstroke": true },
"gold": 1700, "gold": 1700,
"items": ["war_drum"] "items": ["war_drum"]

View File

@@ -1,9 +1,9 @@
{ {
"id": "054_wu_counterstroke", "id": "054_wu_counterstroke",
"name": "Wu Counterstroke", "name": "오군 반격전",
"objectives": { "objectives": {
"victory": "Reach the counterstroke line with Cao Cao, then defeat the Wu counterstroke commander.", "victory": "조조가 반격 전선에 닿은 뒤 오군 반격 대장을 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
"conditions": { "conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "counterstroke_line_reached" }, "victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "counterstroke_line_reached" },
@@ -13,28 +13,57 @@
] ]
}, },
"briefing": { "briefing": {
"title": "Wu Counterstroke", "title": "오군 반격전",
"location": "Jianye Road and River Banks, Eastern Front, 220 CE", "location": "건업 길목과 강안, 건안 25년",
"lines": [ "lines": [
"The open approach toward Jianye draws Wu into a counterstroke before Wei can decide whether to fortify the road or press the capital guard.", "건업을 향한 접근로가 열리자, 위군이 길을 굳힐지 도성 수비를 압박할지 정하기 전에 오군이 반격으로 끌려 나온다.",
"Cao Cao advances to seize the counterstroke line, break Wu's river response, and decide whether the lower Yangtze becomes a held route or a road to the gates." "조조는 반격 전선을 빼앗고 오군의 수상 대응을 꺾어, 장강 하류가 지켜 낼 길이 될지 성문으로 가는 길이 될지 정하려 한다."
], ],
"conditional_lines": [ "conditional_lines": [
{ {
"campaign_flags": { "secured_jianye_approach": true }, "campaign_flags": { "secured_jianye_approach": true },
"lines": [ "lines": [
"The secured Jianye approach gives Wei prepared carts, marked crossings, and a firm place to absorb Wu's answer." "확보한 건업 접근로는 위군에게 준비된 수레와 표시된 나루, 오군의 응답을 받아낼 단단한 자리를 제공한다."
] ]
}, },
{ {
"campaign_flags": { "forced_wu_counterstroke": true }, "campaign_flags": { "forced_wu_counterstroke": true },
"lines": [ "lines": [
"Forcing Wu's counterstroke pulls their captains forward in anger, but their boats now rush into battle before the rear line can fully form." "오군의 반격을 강요하자 저들의 장수들이 분노로 앞으로 끌려 나왔으나, 후방 전열이 완전히 서기 전에 배들이 전투로 뛰어들고 있다."
]
}
],
"camp_conversations": [
{
"id": "wu_counterstroke_council",
"label": "오군 반격 군의",
"group": "topic",
"speaker": "Cao Ren",
"lines": [
{ "speaker": "Cao Ren", "text": "오군은 더 이상 접근로 뒤에서 기다리지 않습니다. 반격 전선이 이미 길 위에 있습니다." },
{ "speaker": "Cao Cao", "text": "기다리지 않는 적은 스스로 길을 드러낸다. 그 길 끝을 우리가 정한다." }
]
},
{
"id": "wu_counterstroke_guo_jia_spent_courage",
"label": "곽가 - 먼저 쓴 담력",
"group": "officer",
"officer_id": "guo_jia",
"lines": [
{ "speaker": "Guo Jia", "text": "서두른 반격은 판단보다 담력을 먼저 씁니다. 그 선을 꺾으면 건업은 둘 다 잃습니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 저들의 담력을 정면에서 맞는다. 이 길의 끝을 오늘 정한다." }
] ]
} }
] ]
}, },
"shop": { "shop": {
"merchant": {
"name": "건업 반격 야상",
"lines": [
"반격이 시작되면 장사꾼은 길가보다 수레 밑을 더 믿습니다. 그래도 물건은 가져왔습니다.",
"급한 싸움에는 붕대와 술이 빨리 사라집니다. 먼저 잡는 자가 값도 잡습니다."
]
},
"items": [ "items": [
"bean", "bean",
"wine", "wine",
@@ -131,7 +160,7 @@
}, },
{ {
"unit_id": "wu_counterstroke_commander", "unit_id": "wu_counterstroke_commander",
"name": "Wu Counterstroke Commander", "name": "오군 반격 대장",
"class_id": "commander", "class_id": "commander",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -140,7 +169,7 @@
}, },
{ {
"unit_id": "jianye_road_captain", "unit_id": "jianye_road_captain",
"name": "Jianye Road Captain", "name": "건업 길목 대장",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -149,7 +178,7 @@
}, },
{ {
"unit_id": "ling_tong_counter_boat", "unit_id": "ling_tong_counter_boat",
"name": "Ling Tong Counter Boat", "name": "능통 반격선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -159,7 +188,7 @@
}, },
{ {
"unit_id": "wu_counterstroke_advisor", "unit_id": "wu_counterstroke_advisor",
"name": "Wu Counterstroke Advisor", "name": "오군 반격 군사",
"class_id": "military_advisor", "class_id": "military_advisor",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -169,7 +198,7 @@
}, },
{ {
"unit_id": "wu_counter_spear_north", "unit_id": "wu_counter_spear_north",
"name": "Wu Counter Spear", "name": "오군 반격 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -178,7 +207,7 @@
}, },
{ {
"unit_id": "wu_counter_spear_south", "unit_id": "wu_counter_spear_south",
"name": "Wu Counter Spear", "name": "오군 반격 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -187,7 +216,7 @@
}, },
{ {
"unit_id": "wu_counter_arrow_boat", "unit_id": "wu_counter_arrow_boat",
"name": "Wu Counter Arrow Boat", "name": "오군 반격 궁선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -202,7 +231,7 @@
"once": true, "once": true,
"when": { "type": "battle_start" }, "when": { "type": "battle_start" },
"actions": [ "actions": [
{ "type": "log", "text": "Wu throws a counterstroke across the Jianye road and river banks." } { "type": "log", "text": "오군이 건업 길목과 강안을 가로질러 반격을 내던진다." }
] ]
}, },
{ {
@@ -213,9 +242,9 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "Wu is no longer waiting behind the approach. Their counterstroke is already on the road." }, { "speaker": "Cao Ren", "text": "오군은 더 이상 접근로 뒤에서 기다리지 않습니다. 반격 전선이 이미 길 위에 있습니다." },
{ "speaker": "Guo Jia", "text": "A rushed counterstroke spends courage before it spends judgment. Break its line and Jianye loses both." }, { "speaker": "Guo Jia", "text": "서두른 반격은 판단보다 담력을 먼저 씁니다. 그 선을 꺾으면 건업은 둘 다 잃습니다." },
{ "speaker": "Cao Cao", "text": "Then meet their courage directly. We decide where this road ends." } { "speaker": "Cao Cao", "text": "그렇다면 저들의 담력을 정면에서 맞는다. 이 길의 끝을 우리가 정한다." }
] ]
} }
] ]
@@ -228,8 +257,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Xiahou Dun", "text": "The secured approach is holding. Their counterstroke has to hit us where the road is already ours." }, { "speaker": "Xiahou Dun", "text": "확보한 접근로가 버티고 있습니다. 저들의 반격은 이미 우리 것이 된 길을 치러 와야 합니다." },
{ "speaker": "Cao Cao", "text": "Good. A prepared road turns enemy speed into noise." } { "speaker": "Cao Cao", "text": "좋다. 준비된 길은 적의 속도를 소음으로 바꾼다." }
] ]
} }
] ]
@@ -242,15 +271,15 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Wu Counterstroke Commander", "text": "Wei forced us forward. Strike with the river boats before their column locks shields." }, { "speaker": "오군 반격 대장", "text": "위군이 우리를 앞으로 끌어냈다. 저들의 대열이 방패를 잠그기 전에 강선으로 쳐라." },
{ "speaker": "Zhang He", "text": "They are committed now. If we bend their boat line, the road guard stands alone." } { "speaker": "Zhang He", "text": "저들은 이제 물러서기 어렵습니다. 저 배 전선을 휘게 하면 길목 수비만 홀로 남습니다." }
] ]
}, },
{ {
"type": "spawn_deployment", "type": "spawn_deployment",
"deployment": { "deployment": {
"unit_id": "wu_rushing_counter_boat", "unit_id": "wu_rushing_counter_boat",
"name": "Wu Rushing Counter Boat", "name": "오군 급진 반격선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -269,8 +298,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Wu Counterstroke Advisor", "text": "Commit the center. If Wei takes this road, the capital hears hoofbeats before counsel." }, { "speaker": "오군 반격 군사", "text": "중앙을 밀어 넣어라. 위군이 이 길을 잡으면 도성은 논의보다 말발굽을 먼저 듣는다." },
{ "speaker": "Guo Jia", "text": "Their center moves because the capital is afraid. That fear is useful ground." } { "speaker": "Guo Jia", "text": "도성이 두려워하니 중앙이 움직입니다. 그 두려움도 쓸 만한 땅입니다." }
] ]
} }
] ]
@@ -282,14 +311,14 @@
"actions": [ "actions": [
{ {
"type": "set_objective", "type": "set_objective",
"victory": "The counterstroke line is reached. Defeat the Wu counterstroke commander.", "victory": "오군 반격 전선에 닿았다. 오군 반격 대장을 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Cao", "text": "This is the line Wu threw forward. Break it, and Jianye's guard must answer from behind its own fear." }, { "speaker": "Cao Cao", "text": "이것이 오군이 앞으로 던진 전선이다. 꺾어라. 건업 수비는 제 두려움 뒤에서 답해야 한다." },
{ "speaker": "Wu Counterstroke Commander", "text": "A counterstroke broken still leaves a capital wall before you." } { "speaker": "오군 반격 대장", "text": "반격이 꺾여도 네 앞에는 아직 도성의 벽이 남아 있다." }
] ]
}, },
{ {
@@ -297,7 +326,7 @@
"deployments": [ "deployments": [
{ {
"unit_id": "wu_counter_inner_guard", "unit_id": "wu_counter_inner_guard",
"name": "Wu Counter Inner Guard", "name": "오군 반격 내측 수비대",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 51, "level": 51,
@@ -306,7 +335,7 @@
}, },
{ {
"unit_id": "wu_counter_crossbow_boat", "unit_id": "wu_counter_crossbow_boat",
"name": "Wu Counter Crossbow Boat", "name": "오군 반격 쇠뇌선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -326,8 +355,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "Their counterstroke is fraying. The boats still cut at our flank, but the road center is losing order." }, { "speaker": "Cao Ren", "text": "저들의 반격 전선이 해집니다. 배는 아직 우리 측면을 베지만 길 중앙은 질서를 잃고 있습니다." },
{ "speaker": "Cao Cao", "text": "Then close the road before the river gives them another answer." } { "speaker": "Cao Cao", "text": "강이 저들에게 또 다른 답을 주기 전에 길을 닫아라." }
] ]
} }
] ]
@@ -338,23 +367,23 @@
"items": ["bean", "wine", "war_axe"] "items": ["bean", "wine", "war_axe"]
}, },
"post_battle_dialogue": [ "post_battle_dialogue": [
{ "speaker": "Guo Jia", "text": "Wu's counterstroke is spent. The lower Yangtze route can be held and widened, or Wei can press toward Jianye's gate while the enemy gathers itself." }, { "speaker": "Guo Jia", "text": "오군의 반격은 힘을 다했습니다. 장강 하류 길을 붙들고 넓힐 수도, 적이 수습하기 전에 건업 문전으로 밀고 갈 수도 있습니다." },
{ "speaker": "Cao Ren", "text": "Hold the route and no one cuts our rear. Press the gate and Wu must decide inside its own walls." }, { "speaker": "Cao Ren", "text": "길을 붙들면 후방이 끊기지 않습니다. 문전을 압박하면 오는 제 성벽 안에서 결정을 내려야 합니다." },
{ "speaker": "Cao Cao", "text": "A broken counterstroke is a door. Whether we bar it behind us or step through it is the next command." } { "speaker": "Cao Cao", "text": "꺾인 반격은 하나의 문이다. 뒤에서 걸어 잠글지, 넘어설지 다음 군령으로 정한다." }
], ],
"post_battle_choices": [ "post_battle_choices": [
{ {
"id": "hold_lower_yangtze_route", "id": "hold_lower_yangtze_route",
"label": "Hold Route", "label": "장강 하류로 확보",
"description": "Cao Cao holds and widens the lower Yangtze route before committing against Jianye.", "description": "조조가 건업을 본격적으로 치기 전에 장강 하류 길을 붙들고 넓힌다.",
"set_flags": { "held_lower_yangtze_route": true, "pressed_jianye_gate": false }, "set_flags": { "held_lower_yangtze_route": true, "pressed_jianye_gate": false },
"gold": 1950, "gold": 1950,
"items": ["imperial_seal"] "items": ["imperial_seal"]
}, },
{ {
"id": "press_jianye_gate", "id": "press_jianye_gate",
"label": "Press Gate", "label": "건업 문전 압박",
"description": "Cao Cao presses toward Jianye's gate before Wu can rebuild its counterstroke line.", "description": "조조가 오군이 반격 전선을 다시 세우기 전에 건업 성문 쪽으로 압박한다.",
"set_flags": { "held_lower_yangtze_route": false, "pressed_jianye_gate": true }, "set_flags": { "held_lower_yangtze_route": false, "pressed_jianye_gate": true },
"gold": 1750, "gold": 1750,
"items": ["war_drum"] "items": ["war_drum"]

View File

@@ -1,9 +1,9 @@
{ {
"id": "055_jianye_gate", "id": "055_jianye_gate",
"name": "Jianye Gate", "name": "건업 문전전",
"objectives": { "objectives": {
"victory": "Reach the Jianye gate line with Cao Cao, then defeat the Wu gate commander.", "victory": "조조가 건업 외문 전선에 닿은 뒤 오군 문전 대장을 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
"conditions": { "conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "jianye_gate_line_reached" }, "victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "jianye_gate_line_reached" },
@@ -13,28 +13,57 @@
] ]
}, },
"briefing": { "briefing": {
"title": "Jianye Gate", "title": "건업 문전전",
"location": "Outer Gate Road, Jianye, Eastern Front, 220 CE", "location": "건업 외문로, 건안 25년",
"lines": [ "lines": [
"Wu's counterstroke has failed, and the road now runs close enough for Jianye's outer gate drums to answer Wei's march.", "오군의 반격은 실패했고, 길은 이제 위군의 행군에 건업 외문의 북이 답할 만큼 가까워졌다.",
"Cao Cao advances to test the gate line, break the outer guard, and decide whether to secure the approach or force the capital to sortie." "조조는 문전 전선을 시험하고 외곽 수비를 꺾어, 접근로를 굳힐지 도성을 출격시키도록 몰아붙일지 정하려 한다."
], ],
"conditional_lines": [ "conditional_lines": [
{ {
"campaign_flags": { "held_lower_yangtze_route": true }, "campaign_flags": { "held_lower_yangtze_route": true },
"lines": [ "lines": [
"Holding the lower Yangtze route gives Wei a steadier siege road, guarded carts, and room to measure the gate before committing." "장강 하류 길을 붙든 덕에 위군은 더 안정된 공성로와 지켜진 수레, 그리고 성문을 재고 나아갈 여유를 얻었다."
] ]
}, },
{ {
"campaign_flags": { "pressed_jianye_gate": true }, "campaign_flags": { "pressed_jianye_gate": true },
"lines": [ "lines": [
"Pressing the Jianye gate keeps Wu's guard unsettled, but the capital's defenders are already hurrying boats and spears into the outer road." "건업 문전을 압박해 오군 수비는 흔들리고 있으나, 도성 수비대는 이미 배와 창병을 외문로로 급히 밀어 넣고 있다."
]
}
],
"camp_conversations": [
{
"id": "jianye_gate_council",
"label": "건업 문전 군의",
"group": "topic",
"speaker": "Cao Ren",
"lines": [
{ "speaker": "Cao Ren", "text": "외문 북소리가 우리 행군에 답할 만큼 가깝습니다." },
{ "speaker": "Cao Cao", "text": "성문은 발걸음만 듣지 않는다. 밖의 군대가 시간을 가졌는지도 듣는다." }
]
},
{
"id": "jianye_gate_guo_jia_outer_line",
"label": "곽가 - 문이 듣는 소리",
"group": "officer",
"officer_id": "guo_jia",
"lines": [
{ "speaker": "Guo Jia", "text": "성문은 발소리보다 군세의 여유를 먼저 듣습니다. 우리가 급하지 않다는 것을 들려주어야 합니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 문전 전선을 잡아라. 건업이 우리 시간을 세게 하라." }
] ]
} }
] ]
}, },
"shop": { "shop": {
"merchant": {
"name": "건업 외문 야상",
"lines": [
"도성 문전까지 장사를 끌고 온 이는 오래 살기 어렵다지만, 오래 사는 법은 군량을 파는 것입니다.",
"성문 앞에서는 값보다 시간이 비쌉니다. 필요한 보급을 지금 고르십시오."
]
},
"items": [ "items": [
"bean", "bean",
"wine", "wine",
@@ -131,7 +160,7 @@
}, },
{ {
"unit_id": "jianye_gate_commander", "unit_id": "jianye_gate_commander",
"name": "Jianye Gate Commander", "name": "건업 문전 대장",
"class_id": "commander", "class_id": "commander",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -140,7 +169,7 @@
}, },
{ {
"unit_id": "outer_gate_captain", "unit_id": "outer_gate_captain",
"name": "Outer Gate Captain", "name": "외문 대장",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -149,7 +178,7 @@
}, },
{ {
"unit_id": "zhu_ran_gate_boat", "unit_id": "zhu_ran_gate_boat",
"name": "Zhu Ran Gate Boat", "name": "주연 문전선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -159,7 +188,7 @@
}, },
{ {
"unit_id": "jianye_gate_advisor", "unit_id": "jianye_gate_advisor",
"name": "Jianye Gate Advisor", "name": "건업 문전 군사",
"class_id": "military_advisor", "class_id": "military_advisor",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -169,7 +198,7 @@
}, },
{ {
"unit_id": "jianye_gate_spear_north", "unit_id": "jianye_gate_spear_north",
"name": "Jianye Gate Spear", "name": "건업 문전 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -178,7 +207,7 @@
}, },
{ {
"unit_id": "jianye_gate_spear_south", "unit_id": "jianye_gate_spear_south",
"name": "Jianye Gate Spear", "name": "건업 문전 창병",
"class_id": "infantry", "class_id": "infantry",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -187,7 +216,7 @@
}, },
{ {
"unit_id": "jianye_gate_arrow_boat", "unit_id": "jianye_gate_arrow_boat",
"name": "Jianye Gate Arrow Boat", "name": "건업 문전 궁선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -202,7 +231,7 @@
"once": true, "once": true,
"when": { "type": "battle_start" }, "when": { "type": "battle_start" },
"actions": [ "actions": [
{ "type": "log", "text": "Wei reaches the outer gate road before Jianye's capital guard can settle." } { "type": "log", "text": "위군이 건업 도성 수비가 자리잡기 전에 외문로에 닿는다." }
] ]
}, },
{ {
@@ -213,9 +242,9 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "The outer gate drums are close enough to answer our march." }, { "speaker": "Cao Ren", "text": "외문 북소리가 우리 행군에 답할 만큼 가깝습니다." },
{ "speaker": "Guo Jia", "text": "A gate hears more than footsteps. It hears whether the army outside has time." }, { "speaker": "Guo Jia", "text": "성문은 발걸음보다 많은 것을 듣습니다. 밖의 군대가 시간을 가졌는지도 듣지요." },
{ "speaker": "Cao Cao", "text": "Then give it no comfort. Take the gate line and make Jianye choose." } { "speaker": "Cao Cao", "text": "그렇다면 편안히 듣게 두지 마라. 문전 전선을 잡고 건업이 선택하게 하라." }
] ]
} }
] ]
@@ -228,8 +257,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Xiahou Yuan", "text": "The lower Yangtze route is held. Our carts are close enough to feed a siege line." }, { "speaker": "Xiahou Yuan", "text": "장강 하류 길을 붙들었습니다. 우리 수레가 공성 전선에 먹일 만큼 가까이 왔습니다." },
{ "speaker": "Cao Cao", "text": "Then the gate faces an army with time, not merely a vanguard with dust." } { "speaker": "Cao Cao", "text": "그렇다면 성문은 먼지 묻은 선봉이 아니라 시간을 가진 군대를 상대한다." }
] ]
} }
] ]
@@ -242,15 +271,15 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Jianye Gate Commander", "text": "Wei presses the gate before the watch changes. Launch the sortie boat through the side water." }, { "speaker": "건업 문전 대장", "text": "위군이 파수 교대 전에 문전을 누른다. 곁물길로 출격선을 내보내라." },
{ "speaker": "Zhang He", "text": "The gate is reacting before it is ready. That is pressure worth keeping." } { "speaker": "Zhang He", "text": "성문이 준비되기 전에 반응합니다. 유지할 만한 압박입니다." }
] ]
}, },
{ {
"type": "spawn_deployment", "type": "spawn_deployment",
"deployment": { "deployment": {
"unit_id": "wu_gate_sortie_boat", "unit_id": "wu_gate_sortie_boat",
"name": "Wu Gate Sortie Boat", "name": "오군 문전 출격선",
"class_id": "champion", "class_id": "champion",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -269,8 +298,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Jianye Gate Advisor", "text": "Close the outer line. Let Wei spend strength before the gate can even be named theirs." }, { "speaker": "건업 문전 군사", "text": "외곽 전선을 닫아라. 위군이 성문을 입에 올리기 전에 힘을 쓰게 하라." },
{ "speaker": "Guo Jia", "text": "They want the word gate to slow us. Names have less weight than opened ground." } { "speaker": "Guo Jia", "text": "저들은 성문이라는 말로 우리를 늦추려 합니다. 열린 땅보다 무거운 이름은 없습니다." }
] ]
} }
] ]
@@ -282,14 +311,14 @@
"actions": [ "actions": [
{ {
"type": "set_objective", "type": "set_objective",
"victory": "The Jianye gate line is reached. Defeat the Wu gate commander.", "victory": "건업 외문 전선에 닿았다. 오군 문전 대장을 격파하라.",
"defeat": "Cao Cao is defeated or the battle reaches Turn 18." "defeat": "조조가 퇴각하거나 18턴이 시작된다."
}, },
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Cao", "text": "This is Jianye's outer gate line. Break its commander and the capital must answer from inside." }, { "speaker": "Cao Cao", "text": "여기가 건업의 외문 전선이다. 그 대장을 깨면 도성은 안쪽에서 답해야 한다." },
{ "speaker": "Jianye Gate Commander", "text": "A capital does not fear the first army to see its gate." } { "speaker": "건업 문전 대장", "text": "도성은 성문을 처음 본 군대쯤 두려워하지 않는다." }
] ]
}, },
{ {
@@ -297,7 +326,7 @@
"deployments": [ "deployments": [
{ {
"unit_id": "jianye_gate_inner_guard", "unit_id": "jianye_gate_inner_guard",
"name": "Jianye Gate Inner Guard", "name": "건업 문전 내측 수비대",
"class_id": "guard_captain", "class_id": "guard_captain",
"team": "enemy", "team": "enemy",
"level": 52, "level": 52,
@@ -306,7 +335,7 @@
}, },
{ {
"unit_id": "jianye_gate_crossbow_boat", "unit_id": "jianye_gate_crossbow_boat",
"name": "Jianye Gate Crossbow Boat", "name": "건업 문전 쇠뇌선",
"class_id": "marksman", "class_id": "marksman",
"team": "enemy", "team": "enemy",
"move_type": "water", "move_type": "water",
@@ -326,8 +355,8 @@
{ {
"type": "dialogue", "type": "dialogue",
"lines": [ "lines": [
{ "speaker": "Cao Ren", "text": "The outer gate line is bending. Their commander is spending reserves to keep the road narrow." }, { "speaker": "Cao Ren", "text": "외문 전선이 휘어집니다. 저들의 대장이 길을 좁게 붙들려고 예비대를 쓰고 있습니다." },
{ "speaker": "Cao Cao", "text": "Then widen it until Jianye has to answer with more than a gate." } { "speaker": "Cao Cao", "text": "그렇다면 건업이 성문 이상의 답을 내놓을 때까지 넓혀라." }
] ]
} }
] ]
@@ -338,23 +367,23 @@
"items": ["bean", "wine", "imperial_seal"] "items": ["bean", "wine", "imperial_seal"]
}, },
"post_battle_dialogue": [ "post_battle_dialogue": [
{ "speaker": "Guo Jia", "text": "Jianye's outer gate line is broken. Wei can secure the gate road for a deliberate siege, or force the capital to sortie before its inner guard is ready." }, { "speaker": "Guo Jia", "text": "건업 외문 전선은 무너졌습니다. 위군은 문전로를 확보해 차분히 공성을 준비할 수도, 내측 수비가 갖춰지기 전에 도성을 출격시킬 수도 있습니다." },
{ "speaker": "Cao Ren", "text": "Secure the gate and the army breathes. Force the sortie and the capital spends its own shield outside the walls." }, { "speaker": "Cao Ren", "text": "성문을 확보하면 군이 숨을 돌립니다. 출격을 강요하면 도성은 제 방패를 성 밖에서 쓰게 됩니다." },
{ "speaker": "Cao Cao", "text": "The gate has heard us. Now decide whether it hears patience or command." } { "speaker": "Cao Cao", "text": "성문은 우리 소리를 들었다. 이제 그것이 인내를 듣게 할지, 명령을 듣게 할지 정하라." }
], ],
"post_battle_choices": [ "post_battle_choices": [
{ {
"id": "secure_jianye_gate", "id": "secure_jianye_gate",
"label": "Secure Gate", "label": "문전로 확보",
"description": "Cao Cao secures Jianye's outer gate road before committing to the capital battle.", "description": "조조가 도성 결전에 들어가기 전에 건업 외문로를 확보한다.",
"set_flags": { "secured_jianye_gate": true, "forced_capital_sortie": false }, "set_flags": { "secured_jianye_gate": true, "forced_capital_sortie": false },
"gold": 2000, "gold": 2000,
"items": ["imperial_seal"] "items": ["imperial_seal"]
}, },
{ {
"id": "force_capital_sortie", "id": "force_capital_sortie",
"label": "Force Sortie", "label": "도성 출격 유도",
"description": "Cao Cao pressures Jianye until the capital guard sorties outside the walls.", "description": "조조가 건업을 압박해 도성 수비대가 성벽 밖으로 출격하게 만든다.",
"set_flags": { "secured_jianye_gate": false, "forced_capital_sortie": true }, "set_flags": { "secured_jianye_gate": false, "forced_capital_sortie": true },
"gold": 1800, "gold": 1800,
"items": ["war_drum"] "items": ["war_drum"]

View File

@@ -2710,6 +2710,55 @@ func _check_battle_visual_data(failures: Array[String]) -> void:
for expectation in wei_succession_expectations: for expectation in wei_succession_expectations:
_check_campaign_entry_expectation(failures, expectation) _check_campaign_entry_expectation(failures, expectation)
var jianye_campaign_expectations := [
{
"path": "res://data/scenarios/052_wu_river_line.json",
"label": "052 Wu river line",
"merchant": "유수 수채 야상",
"conversations": [
["wu_river_line_council", "topic", ""],
["wu_river_line_guo_jia_current", "officer", "guo_jia"]
],
"imperial_flag": {"secured_eastern_fleet": true},
"war_drum_flag": {"pressed_wu_river_line": true}
},
{
"path": "res://data/scenarios/053_jianye_approach.json",
"label": "053 Jianye approach",
"merchant": "건업 길목 야상",
"conversations": [
["jianye_approach_council", "topic", ""],
["jianye_guo_jia_approach_road", "officer", "guo_jia"]
],
"imperial_flag": {"anchored_ruxu_fleet": true},
"war_drum_flag": {"prepared_jianye_pressure": true}
},
{
"path": "res://data/scenarios/054_wu_counterstroke.json",
"label": "054 Wu counterstroke",
"merchant": "건업 반격 야상",
"conversations": [
["wu_counterstroke_council", "topic", ""],
["wu_counterstroke_guo_jia_spent_courage", "officer", "guo_jia"]
],
"imperial_flag": {"secured_jianye_approach": true},
"war_drum_flag": {"forced_wu_counterstroke": true}
},
{
"path": "res://data/scenarios/055_jianye_gate.json",
"label": "055 Jianye gate",
"merchant": "건업 외문 야상",
"conversations": [
["jianye_gate_council", "topic", ""],
["jianye_gate_guo_jia_outer_line", "officer", "guo_jia"]
],
"imperial_flag": {"held_lower_yangtze_route": true},
"war_drum_flag": {"pressed_jianye_gate": true}
}
]
for expectation in jianye_campaign_expectations:
_check_campaign_entry_expectation(failures, expectation)
for item_id in ["bronze_sword", "training_spear", "short_bow", "hand_axe", "iron_armor", "war_drum", "imperial_seal", "panacea"]: for item_id in ["bronze_sword", "training_spear", "short_bow", "hand_axe", "iron_armor", "war_drum", "imperial_seal", "panacea"]:
var item := state.get_item_def(item_id) var item := state.get_item_def(item_id)
if item.is_empty(): if item.is_empty():