Files
heros/data/scenarios/010_white_horse_relief.json

636 lines
21 KiB
JSON

{
"id": "010_white_horse_relief",
"name": "백마 구원전",
"objectives": {
"victory": "백마 유인선을 붙들고 원소군의 최종 압박을 격파하라.",
"defeat": "조조가 퇴각하거나 제18군령이 시작되면 패한다."
},
"conditions": {
"victory": {
"type": "all",
"conditions": [
{ "type": "all_units_defeated", "team": "enemy", "after_event": "turn_9_yuan_main_pressure" },
{
"type": "unit_reaches_tile",
"label": "백마 유인선",
"team": "player",
"unit_ids": ["cao_cao_ch10", "guo_jia_ch10", "xiahou_dun_ch10", "dian_wei_ch10", "xiahou_yuan_ch10", "cao_ren_ch10"],
"officer_ids": ["cao_cao", "guo_jia", "xiahou_dun", "dian_wei", "xiahou_yuan", "cao_ren"],
"cells": [[8, 4], [9, 4], [8, 5], [9, 5]]
}
]
},
"defeat": [
{ "type": "any_officer_defeated", "team": "player", "officer_ids": ["cao_cao"] },
{ "type": "turn_reached", "turn": 18, "team": "player" }
]
},
"briefing": {
"title": "백마 구원전",
"location": "백마, 건안 오년",
"lines": [
"원소의 전군이 안량을 앞세워 백마 나루를 짓누르고 있다.",
"곽가는 거짓 퇴각을 청하였다. 선봉을 길 한복판으로 끌어낸 뒤 양익이 길게 벌어진 틈을 칠 계책이다.",
"제9군령에 원소의 본대 압박이 닿을 때까지 백마 유인선을 무너뜨리지 말고 안량의 선봉을 끊어라."
],
"conditional_lines": [
{
"campaign_flags": { "integrated_xu_province": true },
"lines": [
"서주에 남긴 관리들이 후방을 안정시켜, 북방 전선으로 보낼 예비 군량이 흔들리지 않는다."
]
},
{
"campaign_flags": { "pressed_northern_campaign": true },
"lines": [
"하비에서 곧장 북상한 군세가 원소의 선봉이 자리를 굳히기 전에 칼끝을 들이댄다."
]
}
],
"camp_conversations": [
{
"id": "white_horse_decoy_council",
"group": "officer",
"officer_id": "guo_jia",
"label": "곽가 - 유인 진형",
"speaker": "Guo Jia",
"summary": "안량을 엄호대에서 떼어낼 거짓 퇴각의 박자를 정한다.",
"lines": [
{
"speaker": "Guo Jia",
"side": "right",
"text": "안량은 휘어지는 전열을 약함으로 읽을 것입니다. 그가 보고 싶은 만큼만 보여 주면 됩니다."
},
{
"speaker": "Cao Cao",
"side": "left",
"text": "너무 교묘한 덫은 먹잇감에게 먼저 알려진다. 이번 덫은 두려움처럼 보여야 한다."
}
]
},
{
"id": "white_horse_xiahou_dun_false_retreat",
"group": "officer",
"officer_id": "xiahou_dun",
"label": "하후돈 - 거짓 퇴각",
"speaker": "Xiahou Dun",
"summary": "중군이 무너지지 않고 물러서는 법을 다잡는다.",
"lines": [
{
"speaker": "Xiahou Dun",
"side": "left",
"text": "거짓으로 물러난다 해도 병사의 등은 그 맛을 압니다. 제가 중군의 물러섬이 참패가 되지 않게 붙들겠습니다."
},
{
"speaker": "Guo Jia",
"side": "right",
"text": "좋습니다. 공포가 아니라 자로 잰 만큼만 휘게 하십시오. 안량은 스스로 그 길을 골랐다고 믿어야 합니다."
}
]
},
{
"id": "white_horse_xu_reserve_medicine",
"campaign_flags": { "integrated_xu_province": true },
"group": "topic",
"label": "서주 예비 약상",
"summary": "하비 뒤 안정된 후방로에서 전장 약재를 끌어온다.",
"lines": [
{
"speaker": "Cao Ren",
"side": "left",
"text": "서주는 뒤에서 조용합니다. 예비 수레가 젖지 않은 약재를 싣고, 천막에 화살 하나 맞지 않은 채 도착했습니다."
},
{
"speaker": "Cao Cao",
"side": "right",
"text": "그렇다면 패한 척하되 패해서는 안 될 자들에게 먼저 보내라."
}
],
"effects": [
{
"type": "grant_item",
"item_id": "panacea",
"count": 1,
"text": "서주 예비 약상에서 만능약 한 꾸러미를 군수에 보탰다."
}
]
},
{
"id": "white_horse_fast_march_beans",
"campaign_flags": { "pressed_northern_campaign": true },
"group": "topic",
"label": "급행군 콩자루",
"summary": "큰 수레보다 먼저 백마에 닿은 병사들에게 휴대 군량을 나눈다.",
"lines": [
{
"speaker": "Xiahou Yuan",
"side": "right",
"text": "하비에서 북상한 길이 빨랐습니다. 기병은 아직 숨이 남았으나, 보병은 걸으며 먹었습니다."
},
{
"speaker": "Guo Jia",
"side": "left",
"text": "중군이 물러서기 전에 콩을 나누십시오. 배 속이 비지 않아야 거짓 퇴각도 흐트러지지 않습니다."
}
],
"effects": [
{
"type": "grant_item",
"item_id": "bean",
"count": 1,
"text": "급행군 콩자루에서 콩 한 꾸러미를 군수에 보탰다."
}
]
}
]
},
"shop": {
"items": [
"bean",
"panacea",
"wine",
"iron_sword",
"training_spear",
"short_bow",
"hand_axe",
"leather_armor",
"iron_armor"
],
"conditional_items": [
{
"campaign_flags": { "integrated_xu_province": true },
"items": ["imperial_seal"]
},
{
"campaign_flags": { "pressed_northern_campaign": true },
"items": ["war_drum"]
}
],
"merchant": {
"name": "백마 야상",
"lines": [
"깃발이 달아나는 척하기 전에 사 두십시오. 유인책이 시작되면 수레마다 맡은 두려움이 따로 있습니다.",
"중군에는 콩을, 실수에는 약을. 안량의 눈에 띌 무거운 짐은 뒤에 묻어 두었습니다."
]
}
},
"roster": {
"max_units": 6,
"required_officers": ["cao_cao", "guo_jia", "xiahou_dun"]
},
"formation": {
"cells": [[1, 3], [1, 4], [1, 5], [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 3], [3, 4]]
},
"map": {
"background": "res://art/backgrounds/white_horse_relief.png",
"width": 15,
"height": 10,
"terrain": [
"GGGGGGHHGGGGGGG",
"GGFFGGHHGGGFFGG",
"GGFFRRRRRRGFFGG",
"GGGGGRGGGRCCGGG",
"RRRRRRRRRRRRRRR",
"GGGGGRGGGRCCGGG",
"GGHHTTRRGGFFFGG",
"GGHHTTFFGGFFFGG",
"GGGGGFFFGGWWGGG",
"GGGGGGGGGGWWGGG"
]
},
"deployments": [
{
"unit_id": "cao_cao_ch10",
"officer_id": "cao_cao",
"team": "player",
"pos": [1, 4]
},
{
"unit_id": "guo_jia_ch10",
"officer_id": "guo_jia",
"team": "player",
"requires_joined": true,
"pos": [2, 4]
},
{
"unit_id": "xiahou_dun_ch10",
"officer_id": "xiahou_dun",
"team": "player",
"pos": [1, 5]
},
{
"unit_id": "dian_wei_ch10",
"officer_id": "dian_wei",
"team": "player",
"requires_joined": true,
"pos": [2, 5]
},
{
"unit_id": "xiahou_yuan_ch10",
"officer_id": "xiahou_yuan",
"team": "player",
"requires_joined": true,
"pos": [2, 3]
},
{
"unit_id": "cao_ren_ch10",
"officer_id": "cao_ren",
"team": "player",
"requires_joined": true,
"pos": [3, 3]
},
{
"unit_id": "yan_liang_vanguard",
"name": "안량 선봉",
"class_id": "elite_cavalry",
"team": "enemy",
"level": 10,
"pos": [11, 4],
"base": { "hp": 62, "atk": 20, "def": 11, "agi": 13 }
},
{
"unit_id": "yuan_shao_spear_line",
"name": "원소 창병대",
"class_id": "infantry",
"team": "enemy",
"level": 9,
"pos": [9, 4],
"base": { "hp": 50, "atk": 16, "def": 10 }
},
{
"unit_id": "yuan_shao_guard",
"name": "원소 수비대",
"class_id": "infantry",
"team": "enemy",
"level": 9,
"pos": [10, 5],
"base": { "hp": 48, "atk": 15, "def": 11 }
},
{
"unit_id": "white_horse_archer_north",
"name": "백마 궁병",
"class_id": "archer",
"team": "enemy",
"level": 9,
"pos": [10, 2],
"base": { "hp": 34, "atk": 14, "def": 6 }
},
{
"unit_id": "white_horse_archer_south",
"name": "백마 궁병",
"class_id": "archer",
"team": "enemy",
"level": 9,
"pos": [12, 6],
"base": { "hp": 34, "atk": 14, "def": 6 }
},
{
"unit_id": "yuan_shao_advisor",
"name": "원소 책사",
"class_id": "strategist",
"team": "enemy",
"level": 9,
"pos": [12, 5],
"skills": ["blaze"],
"base": { "hp": 38, "mp": 22, "atk": 6, "def": 6, "int": 14 }
},
{
"unit_id": "white_horse_spear_support",
"name": "백마 창병",
"class_id": "infantry",
"team": "enemy",
"level": 9,
"pos": [8, 3],
"base": { "hp": 44, "atk": 15, "def": 9 }
},
{
"unit_id": "white_horse_rider_screen",
"name": "백마 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 9,
"pos": [9, 6],
"base": { "hp": 42, "atk": 16, "def": 8, "agi": 11 }
},
{
"unit_id": "yuan_scout_archer",
"name": "원소 척후궁병",
"class_id": "archer",
"team": "enemy",
"level": 9,
"pos": [11, 7],
"base": { "hp": 34, "atk": 14, "def": 6 }
}
],
"events": [
{
"id": "opening",
"once": true,
"when": { "type": "battle_start" },
"actions": [
{ "type": "log", "text": "원소의 선봉이 백마 나루로 밀고 들어온다." }
]
},
{
"id": "opening_dialogue",
"once": true,
"when": { "type": "battle_begin" },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "안량은 물러나는 깃발을 따라올 만큼 용맹합니다. 그 문을 우리가 열어 주는 것입니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 중군은 딱 필요한 만큼만 물러난다. 그의 양익이 벌어지면 그때 베어 낸다." },
{ "speaker": "Xiahou Dun", "text": "거짓 퇴각이라 해도 패한 얼굴을 할 병사가 필요합니다." }
]
}
]
},
{
"id": "turn_2_yan_liang_push",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 2 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Yan Liang", "text": "조조의 전열이 벌써 휘어진다. 길 한복판으로 그대로 밀어붙여라!" },
{ "speaker": "Guo Jia", "text": "미끼를 물었습니다. 두 번째 신호가 오기까지 붙드십시오." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "yan_liang_rider_north",
"name": "안량 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 9,
"pos": [8, 2],
"base": { "hp": 42, "atk": 15, "def": 8, "agi": 11 }
},
{
"unit_id": "yan_liang_rider_south",
"name": "안량 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 9,
"pos": [8, 6],
"base": { "hp": 42, "atk": 15, "def": 8, "agi": 11 }
}
]
}
]
},
{
"id": "turn_3_decoy_line",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 3 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Cao", "text": "반격 신호를 올려라. 안량이 엄호보다 앞서 달렸다." },
{ "speaker": "Guo Jia", "text": "선봉이 고립되었습니다. 먼저 말을 치고, 그다음 창진을 꺾으십시오." }
]
},
{
"type": "set_objective",
"victory": "백마 유인선을 붙들고 원소군의 본대 압박을 기다려라.",
"defeat": "조조가 퇴각하거나 제18군령이 시작되면 패한다."
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "decoy_cutoff_guard",
"name": "차단 보병",
"class_id": "infantry",
"team": "enemy",
"level": 9,
"pos": [7, 4],
"base": { "hp": 44, "atk": 15, "def": 9 }
},
{
"unit_id": "decoy_cutoff_archer",
"name": "차단 궁병",
"class_id": "archer",
"team": "enemy",
"level": 9,
"pos": [7, 5],
"base": { "hp": 32, "atk": 13, "def": 5 }
}
]
}
]
},
{
"id": "yan_liang_vanguard_defeated",
"once": true,
"when": { "type": "unit_defeated", "unit_ids": ["yan_liang_vanguard"] },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "안량의 깃발이 내려갔습니다. 원소가 답하기 전에 그의 기병들이 먼저 흔들릴 것입니다." },
{ "speaker": "Cao Cao", "text": "고립된 선봉을 밀어붙여 백마가 다시 숨 쉬게 하라." }
]
}
]
},
{
"id": "xu_province_reserve",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 4, "campaign_flags": { "integrated_xu_province": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Ren", "text": "서주의 길은 조용합니다. 예비 수레가 때맞춰 들어왔습니다." },
{ "speaker": "Cao Cao", "text": "질서와 군량은 칼이 닿기 전에 이미 승패를 가른다." }
]
}
]
},
{
"id": "northern_pressure",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 4, "campaign_flags": { "pressed_northern_campaign": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Yuan Scout", "text": "조조가 너무 빨리 왔다. 저들이 진을 굳히기 전에 후방 기병을 보내라!" },
{ "speaker": "Xiahou Yuan", "text": "동쪽에서 기병이 더 옵니다. 우리의 빠른 행군을 벌하려는 셈입니다." }
]
},
{
"type": "spawn_deployment",
"deployment": {
"unit_id": "yuan_rear_rider",
"name": "원소 후방 기병",
"class_id": "cavalry",
"team": "enemy",
"level": 9,
"pos": [5, 8],
"base": { "hp": 40, "atk": 15, "def": 8, "agi": 11 }
}
}
]
},
{
"id": "turn_6_finish_vanguard",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 6 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "안량의 진형은 더는 군대가 아닙니다. 놀란 병사들이 흩어진 모양일 뿐입니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 깨끗이 끝내라. 백마를 위협 아래 남겨 둘 수 없다." }
]
}
]
},
{
"id": "turn_6_yuan_wings_close",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 6 },
"actions": [
{ "type": "log", "text": "원소군 양익이 백마 유인선의 가장자리로 밀려든다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Yuan Scout", "display_speaker": "원소 척후", "text": "안량 장군의 선봉이 너무 깊습니다. 양익을 좁혀 조조의 중군을 물어라!" },
{ "speaker": "Xiahou Dun", "display_speaker": "하후돈", "text": "거짓 퇴각이 참패로 보일 만큼만 흔들린다. 더는 내주지 마라." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "yuan_wing_rider",
"name": "원소 양익기병",
"class_id": "cavalry",
"team": "enemy",
"level": 9,
"pos": [6, 1],
"base": { "hp": 42, "atk": 16, "def": 8, "agi": 11 }
},
{
"unit_id": "yuan_wing_guard",
"name": "원소 양익창병",
"class_id": "infantry",
"team": "enemy",
"level": 9,
"pos": [6, 8],
"base": { "hp": 44, "atk": 15, "def": 9 }
},
{
"unit_id": "yuan_wing_archer",
"name": "원소 양익궁병",
"class_id": "archer",
"team": "enemy",
"level": 9,
"pos": [9, 8],
"base": { "hp": 34, "atk": 14, "def": 6 }
}
]
},
{
"type": "set_ai_target_priority",
"unit_id": "xiahou_dun_ch10",
"priority": 10,
"text": "원소 양익이 하후돈의 거짓 퇴각선을 노린다."
}
]
},
{
"id": "turn_9_yuan_main_pressure",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 9 },
"actions": [
{
"type": "set_objective",
"victory": "백마 유인선을 붙들고 원소군의 최종 압박을 격파하라.",
"defeat": "조조가 퇴각하거나 제18군령이 시작되면 패한다."
},
{ "type": "log", "text": "원소군 본대의 압박이 백마 나루로 밀려든다." },
{
"type": "dialogue",
"lines": [
{ "speaker": "Yan Liang", "display_speaker": "안량", "text": "조조의 물러섬은 겁이 아니었나. 그렇다면 힘으로 그 꾀까지 부숴 주겠다!" },
{ "speaker": "Guo Jia", "display_speaker": "곽가", "text": "이제 안량은 돌아갈 엄호보다 앞에 있습니다. 유인선이 닫히는 순간입니다." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "yuan_main_rider",
"name": "원소 본대기병",
"class_id": "cavalry",
"team": "enemy",
"level": 10,
"pos": [13, 3],
"base": { "hp": 48, "atk": 17, "def": 8, "agi": 12 }
},
{
"unit_id": "yuan_main_guard",
"name": "원소 본대창병",
"class_id": "infantry",
"team": "enemy",
"level": 10,
"pos": [13, 5],
"base": { "hp": 48, "atk": 16, "def": 10 }
},
{
"unit_id": "yuan_main_archer",
"name": "원소 본대궁병",
"class_id": "archer",
"team": "enemy",
"level": 10,
"pos": [13, 7],
"base": { "hp": 36, "atk": 14, "def": 6 }
}
]
},
{
"type": "set_ai_target_priority",
"unit_ids": ["cao_cao_ch10", "xiahou_dun_ch10"],
"priority": 13,
"text": "원소군 본대가 조조와 하후돈을 함께 노린다."
}
]
}
],
"rewards": {
"gold": 1500,
"items": ["bean", "wine", "iron_armor"]
},
"post_battle_dialogue": [
{ "speaker": "Xiahou Dun", "text": "안량의 돌격은 곽가가 말한 바로 그 자리에서 꺾였습니다." },
{ "speaker": "Guo Jia", "text": "용맹은 쓸모가 있습니다. 다만 읽히는 용맹은 길 표식과 다르지 않습니다." },
{ "speaker": "Cao Cao", "text": "백마는 풀렸다. 이제 원소는 숫자만으로 답할 수 없을 것이다." }
],
"post_battle_choices": [
{
"id": "fortify_white_horse",
"label": "백마 요새화",
"description": "조조가 관도 대전에 앞서 백마 나루의 방비를 굳힌다.",
"set_flags": { "fortified_white_horse": true, "raided_yuan_supplies": false },
"gold": 150,
"items": ["iron_armor"]
},
{
"id": "raid_yuan_supplies",
"label": "원소 군량 기습",
"description": "무너진 선봉의 빈틈을 타 원소의 보급 수레를 괴롭힌다.",
"set_flags": { "fortified_white_horse": false, "raided_yuan_supplies": true },
"gold": 100,
"items": ["wine", "training_spear"]
}
]
}