Files
heros/data/scenarios/003_xingyang_ambush.json

572 lines
22 KiB
JSON

{
"id": "003_xingyang_ambush",
"name": "형양 매복전",
"objectives": {
"victory": "서영의 매복진을 돌파하고 동쪽 길목을 장악하라.",
"defeat": "조조가 퇴각하거나 제17턴이 시작되면 패한다."
},
"conditions": {
"victory": {
"type": "all",
"conditions": [
{ "type": "all_units_defeated", "team": "enemy", "after_event": "turn_9_forest_blockade" },
{
"type": "unit_reaches_tile",
"label": "동쪽 길목",
"team": "player",
"unit_ids": ["cao_cao_ch3", "xiahou_dun_ch3", "xiahou_yuan_ch3", "cao_ren_ch3"],
"officer_ids": ["cao_cao", "xiahou_dun", "xiahou_yuan", "cao_ren"],
"cells": [[10, 3], [11, 3], [10, 4], [11, 4]]
}
]
},
"defeat": [
{ "type": "any_officer_defeated", "team": "player", "officer_ids": ["cao_cao"] },
{ "type": "turn_reached", "turn": 17, "team": "player" }
]
},
"briefing": {
"title": "형양 매복전",
"location": "형양, 초평 원년",
"lines": [
"동탁이 낙양을 버리고 천자를 끼고 서쪽으로 달아났다.",
"조조의 선봉은 형양 부근에서 적의 후군을 따라붙는다.",
"앞길은 좁고 숲은 깊다. 전열을 흩뜨리지 말고 수풀의 기척을 살펴라.",
"동쪽 길목을 빼앗고 숲 뒤의 봉쇄병까지 무너뜨려야 추격로가 열린다."
],
"conditional_lines": [
{
"campaign_flags": { "pursued_dong_zhuo": true },
"lines": [
"급히 추격한 탓에 척후가 모자라나, 서영이 군세를 다시 모으기 전 그 뒤를 칠 수 있다."
]
},
{
"campaign_flags": { "regrouped_after_sishui": true },
"lines": [
"사수관에서 보낸 척후가 숲 가장자리의 수상한 움직임을 알렸다. 매복을 염두에 두고 행군하라."
]
}
],
"camp_conversations": [
{
"id": "xingyang_war_council",
"group": "topic",
"label": "형양 군의",
"summary": "좁은 숲길을 앞두고 행군법을 정한다.",
"lines": [
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "동탁은 조정을 움켜쥐고 서쪽으로 물러난다. 서영이 길을 막는다면 오래 말할 것 없이 꺾어야 한다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "side": "right", "text": "숲가가 너무 고요합니다. 저 나무 아래의 예의보다는 벌판의 칼끝이 차라리 믿을 만합니다." }
]
},
{
"id": "xingyang_forced_march",
"campaign_flags": { "pursued_dong_zhuo": true },
"group": "officer",
"officer_id": "cao_cao",
"label": "조조 - 강행군",
"speaker": "Cao Cao",
"display_speaker": "조조",
"summary": "쉬지 않고 동탁을 쫓는 대가를 헤아린다.",
"lines": [
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "연합은 동탁이 손 닿지 않을 곳까지 가도 깃발 수만 헤아릴 것이다. 저들은 자리를 택했고, 우리는 길을 택했다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "side": "right", "text": "군사는 지쳤으나 피는 아직 뜨겁습니다. 서영이 길 가운데 서겠다면 첫 제물이 되게 하겠습니다." }
]
},
{
"id": "xingyang_hasty_stores",
"campaign_flags": { "pursued_dong_zhuo": true },
"group": "topic",
"label": "급행 보급차",
"summary": "추격 중 챙긴 마지막 보급 수레를 연다.",
"lines": [
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "side": "right", "text": "사수관을 급히 떠났으나 작은 수레 하나는 선봉 곁에 붙여 두었습니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "좋다. 길이 좁아지기 전에 나누어라. 지친 병사일수록 손끝을 가라앉힐 것이 필요하다." }
],
"effects": [
{ "type": "grant_item", "item_id": "wine", "count": 1, "text": "급행 보급차에서 술 한 병을 군수에 보탰다." }
]
},
{
"id": "xingyang_scout_screen",
"campaign_flags": { "regrouped_after_sishui": true },
"group": "officer",
"officer_id": "cao_ren",
"label": "조인 - 척후망",
"speaker": "Cao Ren",
"display_speaker": "조인",
"summary": "숲길 주변의 수상한 징후를 살핀다.",
"lines": [
{ "speaker": "Cao Ren", "display_speaker": "조인", "side": "right", "text": "척후가 숲가에서 갓 베인 가지를 찾았습니다. 서영은 우리가 눈먼 채 들어오길 바라는 듯합니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "그렇다면 어디를 보아야 할지 알려 준 셈이다. 함정이 모습을 드러낼 때까지 전열을 단단히 묶어라." }
]
},
{
"id": "xingyang_sishui_supply_train",
"campaign_flags": { "regrouped_after_sishui": true },
"group": "topic",
"label": "사수관 보급행렬",
"summary": "정비 중 모아 둔 약품을 나눈다.",
"lines": [
{ "speaker": "Camp Merchant", "display_speaker": "군막 상인", "side": "right", "text": "사수관에서 머문 덕에 의원의 약상자를 추릴 수 있었습니다. 숲길에 들기 전에 받아 두십시오." },
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "side": "left", "text": "서영이 독이나 덫을 챙겼다면, 병사들이 내 척후를 욕하기 전에 약을 쓰는 편이 낫겠습니다." }
],
"effects": [
{ "type": "grant_item", "item_id": "panacea", "count": 1, "text": "사수관 보급행렬이 만능약 한 꾸러미를 군수에 보탰다." }
]
}
]
},
"shop": {
"merchant": {
"name": "형양 길상인",
"lines": [
"형양 숲길은 말굽보다 소문이 먼저 막힙니다. 약과 술은 값을 묻기 전에 챙기십시오.",
"사수관에서 흘러온 병장도 조금 있습니다. 서영의 후군을 만나고 나면 흠 없는 물건이 귀해질 겁니다."
]
},
"items": [
"bean",
"antidote",
"panacea",
"wine",
"iron_sword",
"training_spear",
"short_bow",
"iron_armor"
],
"conditional_items": [
{
"campaign_flags": { "pursued_dong_zhuo": true },
"items": ["hand_axe"]
},
{
"campaign_flags": { "regrouped_after_sishui": true },
"items": ["leather_armor"]
}
]
},
"roster": {
"max_units": 4,
"required_officers": ["cao_cao"]
},
"formation": {
"cells": [[1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5]]
},
"map": {
"width": 12,
"height": 9,
"background": "res://art/backgrounds/xingyang_forest_ambush.png",
"terrain": [
"GGGFFRRGGGGG",
"GGGFFRRGHHGG",
"GGGGGRRGHHGG",
"RRRRRRRRRRRR",
"GGGGFRRFTTGG",
"GGGHFRRFTTGG",
"GGGHHRRGFFGG",
"GGGGGRRGFFGG",
"GGWWGRRGGGGG"
]
},
"deployments": [
{
"unit_id": "cao_cao_ch3",
"officer_id": "cao_cao",
"team": "player",
"pos": [1, 4]
},
{
"unit_id": "xiahou_dun_ch3",
"officer_id": "xiahou_dun",
"team": "player",
"pos": [1, 5]
},
{
"unit_id": "xiahou_yuan_ch3",
"officer_id": "xiahou_yuan",
"team": "player",
"requires_joined": true,
"pos": [2, 4]
},
{
"unit_id": "cao_ren_ch3",
"officer_id": "cao_ren",
"team": "player",
"requires_joined": true,
"pos": [2, 5]
},
{
"unit_id": "xu_rong_rearguard",
"name": "서영 후군",
"class_id": "cavalry",
"team": "enemy",
"level": 3,
"pos": [9, 4],
"base": { "hp": 46, "atk": 15, "def": 8 }
},
{
"unit_id": "liang_spearman",
"name": "양주 창병",
"class_id": "infantry",
"team": "enemy",
"level": 3,
"pos": [7, 3],
"base": { "hp": 36, "atk": 12, "def": 7 }
},
{
"unit_id": "liang_strategist",
"name": "양주 책사",
"class_id": "strategist",
"team": "enemy",
"level": 3,
"pos": [8, 5],
"base": { "hp": 30, "mp": 14, "atk": 7, "def": 4, "int": 10 }
},
{
"unit_id": "rearguard_archer",
"name": "후군 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [8, 2],
"base": { "hp": 30, "atk": 11, "def": 5 }
},
{
"unit_id": "forest_spearman",
"name": "숲길 창병",
"class_id": "infantry",
"team": "enemy",
"level": 3,
"pos": [6, 1],
"base": { "hp": 38, "atk": 12, "def": 7 }
},
{
"unit_id": "rearguard_cavalry_screen",
"name": "후군 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 3,
"pos": [10, 5],
"base": { "hp": 40, "atk": 14, "def": 7 }
}
],
"events": [
{
"id": "opening_pursuit",
"once": true,
"when": { "type": "battle_start", "campaign_flags": { "pursued_dong_zhuo": true } },
"actions": [
{ "type": "log", "text": "조조의 급한 추격이 동탁의 후군을 바짝 압박한다." }
]
},
{
"id": "opening_regroup",
"once": true,
"when": { "type": "battle_start", "campaign_flags": { "regrouped_after_sishui": true } },
"actions": [
{ "type": "log", "text": "조조가 사수관에서 척후와 보급을 정비한 뒤 형양 숲길로 나아간다." }
]
},
{
"id": "opening_dialogue_pursuit",
"once": true,
"when": { "type": "battle_begin", "campaign_flags": { "pursued_dong_zhuo": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "동탁이 달아나는데 연합은 머뭇거린다. 이 기회를 그냥 흘려보낼 수 없다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "text": "길이 너무 고요합니다. 저들이 함정을 펼치려 한다면 어디 해 보라지요." },
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "text": "능선을 살피겠습니다. 궁병이라면 반드시 높은 곳을 탐낼 것입니다." }
]
}
]
},
{
"id": "opening_dialogue_regroup",
"once": true,
"when": { "type": "battle_begin", "campaign_flags": { "regrouped_after_sishui": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "사수관에서 늦춘 걸음이 척후와 보급을 얻어 주었다. 이제 눈을 뜨고 나아간다." },
{ "speaker": "Cao Ren", "display_speaker": "조인", "text": "기병이 숲가의 움직임을 보았습니다. 서영이 앞에서 기다릴지도 모릅니다." },
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "text": "그렇다면 저들을 끌어내 함정이 닫히기 전에 깨겠습니다." }
]
}
]
},
{
"id": "turn_3_ambush",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 3 },
"actions": [
{ "type": "log", "text": "숲가가 흔들리며 서영의 매복이 모습을 드러낸다." }
]
},
{
"id": "turn_3_ambush_pursuit",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 3, "campaign_flags": { "pursued_dong_zhuo": true } },
"actions": [
{ "type": "log", "text": "서영의 매복병이 숲에서 내려와 길을 에워싼다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Xu Rong", "display_speaker": "서영", "text": "조조가 미끼를 물었다. 길을 봉하고 선봉을 베어라." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "이것이 저들의 꾀였군. 전열을 지키고 돌파하라!" }
]
},
{
"type": "set_objective",
"victory": "서영의 매복진을 밀어내고 동쪽 길목을 장악하라.",
"defeat": "조조가 퇴각하거나 제17턴이 시작되면 패한다."
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "ambush_bandit_1",
"name": "매복 산적",
"class_id": "bandit",
"team": "enemy",
"level": 3,
"pos": [5, 1],
"base": { "hp": 34, "atk": 12, "def": 5 }
},
{
"unit_id": "ambush_bandit_2",
"name": "매복 산적",
"class_id": "bandit",
"team": "enemy",
"level": 3,
"pos": [5, 7],
"base": { "hp": 34, "atk": 12, "def": 5 }
},
{
"unit_id": "ambush_archer",
"name": "매복 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [10, 6],
"base": { "hp": 28, "atk": 11, "def": 4 }
}
]
}
]
},
{
"id": "turn_3_ambush_regroup",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 3, "campaign_flags": { "regrouped_after_sishui": true } },
"actions": [
{ "type": "log", "text": "척후가 함정이 닫히기 전에 서영의 매복을 드러냈다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Xu Rong", "display_speaker": "서영", "text": "우리 차폐가 너무 일찍 들켰다. 조조가 물러나기 전에 쳐라!" },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "함정은 이미 드러났다. 모습을 보인 적을 치고 길을 열어 두어라." }
]
},
{
"type": "set_objective",
"victory": "드러난 매복병을 무너뜨리고 동쪽 길목을 장악하라.",
"defeat": "조조가 퇴각하거나 제17턴이 시작되면 패한다."
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "ambush_bandit_scouted",
"name": "드러난 산적",
"class_id": "bandit",
"team": "enemy",
"level": 3,
"pos": [5, 1],
"base": { "hp": 32, "atk": 11, "def": 5 }
},
{
"unit_id": "ambush_archer_scouted",
"name": "드러난 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [10, 6],
"base": { "hp": 26, "atk": 10, "def": 4 }
}
]
}
]
},
{
"id": "turn_5_pressure",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 5, "campaign_flags": { "pursued_dong_zhuo": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Xiahou Yuan", "display_speaker": "하후연", "text": "적의 전열이 길게 늘어졌습니다. 저들이 다시 모이기 전에 길을 밀고 나가야 합니다." }
]
}
]
},
{
"id": "turn_6_slope_archers",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 6 },
"actions": [
{ "type": "log", "text": "숲 뒤 비탈에서 서영의 궁병대가 퇴로를 끊으려 내려온다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Xu Rong", "display_speaker": "서영", "side": "right", "text": "선봉은 이미 숲 안으로 들어왔다. 비탈 궁병은 하후돈을 묶고, 창병은 길목을 좁혀라." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "side": "left", "text": "저들이 제 선봉을 노립니다. 제가 버티는 동안 본대는 동쪽 길을 잃지 마십시오." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "하후돈을 홀로 두지 마라. 비탈의 궁병을 꺾어야 이 숲을 빠져나갈 수 있다." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "slope_archer_north",
"name": "비탈 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [10, 1],
"base": { "hp": 28, "atk": 12, "def": 4 }
},
{
"unit_id": "slope_spearman",
"name": "비탈 창병",
"class_id": "infantry",
"team": "enemy",
"level": 3,
"pos": [9, 1],
"base": { "hp": 36, "atk": 12, "def": 7 }
},
{
"unit_id": "slope_archer_south",
"name": "비탈 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [10, 7],
"base": { "hp": 28, "atk": 12, "def": 4 }
}
]
},
{
"type": "set_ai_target_priority",
"unit_id": "xiahou_dun_ch3",
"priority": 8,
"text": "비탈 궁병대가 하후돈의 선봉을 노린다."
}
]
},
{
"id": "turn_9_forest_blockade",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 9 },
"actions": [
{ "type": "log", "text": "동쪽 길목에서 서영의 마지막 봉쇄병이 나타난다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Xu Rong", "display_speaker": "서영", "side": "right", "text": "여기서 더 물러서면 낙양의 불길이 헛것이 된다. 동쪽 길목을 닫고 조조의 깃발을 끊어라." },
{ "speaker": "Cao Ren", "display_speaker": "조인", "side": "left", "text": "길목의 끝에 봉쇄병이 버티고 있습니다. 저들을 남겨 두면 추격로가 다시 막힙니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "마지막 길을 연다. 길목을 장악하고 남은 봉쇄병까지 모두 쓸어내라." }
]
},
{
"type": "set_objective",
"victory": "마지막 봉쇄병을 격파하고 동쪽 길목을 장악하라.",
"defeat": "조조가 퇴각하거나 제17턴이 시작되면 패한다."
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "forest_blockade_cavalry",
"name": "봉쇄 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 3,
"pos": [11, 2],
"base": { "hp": 42, "atk": 15, "def": 7 }
},
{
"unit_id": "forest_blockade_guard",
"name": "봉쇄 창병",
"class_id": "infantry",
"team": "enemy",
"level": 3,
"pos": [11, 5],
"base": { "hp": 38, "atk": 12, "def": 8 }
},
{
"unit_id": "forest_blockade_archer",
"name": "봉쇄 궁병",
"class_id": "archer",
"team": "enemy",
"level": 3,
"pos": [11, 7],
"base": { "hp": 30, "atk": 12, "def": 4 }
}
]
},
{
"type": "set_ai_target_priority",
"unit_id": "cao_cao_ch3",
"priority": 11,
"text": "봉쇄병이 조조의 깃발을 노리고 길목을 닫는다."
}
]
},
{
"id": "xu_rong_rearguard_falls",
"once": true,
"when": { "type": "unit_defeated", "team": "enemy", "unit_ids": ["xu_rong_rearguard"] },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Xu Rong", "display_speaker": "서영", "side": "right", "text": "후군이 무너졌다고 끝난 것이 아니다. 숲 뒤 봉쇄병이 조조의 발을 붙잡을 것이다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "side": "left", "text": "서영의 중심은 꺾였다. 방심하지 말고 동쪽 길목까지 진형을 밀어 붙여라." }
]
},
{
"type": "set_objective",
"victory": "서영의 후군을 꺾었다. 동쪽 길목을 장악하고 뒤따르는 봉쇄병까지 정리하라."
}
]
},
{
"id": "turn_5_regroup_pressure",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 5, "campaign_flags": { "regrouped_after_sishui": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Ren", "display_speaker": "조인", "text": "숨은 병력이 생각보다 적습니다. 척후가 제 몫을 해냈습니다." },
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "좋다. 서영이 전열을 다시 세우기 전에 계속 압박하라." }
]
}
]
}
],
"rewards": {
"gold": 700,
"items": ["bean", "wine", "iron_sword"]
},
"post_battle_dialogue": [
{ "speaker": "Cao Cao", "display_speaker": "조조", "text": "서영의 함정은 깨졌으나, 동탁은 그만큼 시간을 벌었다." },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "text": "그렇다면 군을 다시 벼리고 다음 틈을 기다리겠습니다." }
]
}