Files
heros/data/scenarios/012_guandu_showdown.json

500 lines
16 KiB
JSON

{
"id": "012_guandu_showdown",
"name": "관도 결전",
"objectives": {
"victory": "원소군 본대가 전열을 펼친 뒤 주공세를 격파하라.",
"defeat": "조조가 퇴각하거나 제13군령에 이른다."
},
"conditions": {
"victory": { "type": "all_units_defeated", "team": "enemy", "after_event": "turn_4_yuan_main_assault" },
"defeat": [
{ "type": "any_officer_defeated", "team": "player", "officer_ids": ["cao_cao"] },
{ "type": "turn_reached", "turn": 13, "team": "player" }
]
},
"briefing": {
"title": "관도 결전",
"location": "관도, 건안 5년",
"lines": [
"원소의 대군이 숫자로 조조의 얇은 방비선을 누를 수 있다 믿고 관도로 밀려든다.",
"곽가는 조급함을 경계한다. 영채를 지키고, 원소 지휘의 박자를 드러내며, 군량의 상처를 찾아야 한다."
],
"conditional_lines": [
{
"campaign_flags": { "secured_guandu_line": true },
"lines": [
"연진 뒤에 다져 둔 방어 영채가 전열을 꺾이지 않고 휘어질 여유를 준다."
]
},
{
"campaign_flags": { "scouted_wuchao_depots": true },
"lines": [
"연진에서 보낸 척후가 오소로 향하는 수레가 지나치게 많다고 알렸다. 원소의 군량은 깃발만큼 단단히 지켜지지 않을지 모른다."
]
}
],
"camp_conversations": [
{
"id": "guandu_main_line_council",
"group": "officer",
"officer_id": "cao_cao",
"label": "조조 - 본영 방비",
"speaker": "Cao Cao",
"summary": "원소의 전군을 맞아 관도를 지킬 박자를 정한다.",
"lines": [
{
"speaker": "Cao Cao",
"side": "left",
"text": "원소는 숫자를 폭풍으로 삼으려 한다. 그러나 서야 할 까닭을 아는 성벽은 폭풍도 부순다."
},
{
"speaker": "Xiahou Dun",
"side": "right",
"text": "그렇다면 앞줄은 혈기가 아니라 명수로 버티겠습니다. 명이 있기 전에는 한 걸음도 물리지 않겠습니다."
}
]
},
{
"id": "guandu_guo_jia_supply_wound",
"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": "guandu_secured_line_medicine",
"campaign_flags": { "secured_guandu_line": 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": "방비선 약재로 전장 물자에 만능약 1점을 더했다."
}
]
},
{
"id": "guandu_wuchao_scout_wine",
"campaign_flags": { "scouted_wuchao_depots": true },
"group": "topic",
"label": "오소 척후 술",
"summary": "오소로 향한 원소의 군량 흐름을 짚어 낸 척후에게 술을 내린다.",
"lines": [
{
"speaker": "Xiahou Yuan",
"side": "right",
"text": "척후가 군량 자국을 따라 오소의 이름까지 짚어 냈습니다. 말들이 거친 숨을 몰아쉬며 돌아왔습니다."
},
{
"speaker": "Guo Jia",
"side": "left",
"text": "술과 새 명을 내려라. 군량을 찾아낸 지친 척후 하나가 이미 한 군대를 움직인 셈이다."
}
],
"effects": [
{
"type": "grant_item",
"item_id": "wine",
"count": 1,
"text": "오소 척후에게 내린 술 중 일부를 전장 물자에 더했다."
}
]
}
]
},
"shop": {
"items": [
"bean",
"wine",
"iron_sword",
"training_spear",
"short_bow",
"hand_axe",
"war_axe",
"leather_armor",
"iron_armor"
],
"conditional_items": [
{
"campaign_flags": { "secured_guandu_line": true },
"items": ["panacea"]
},
{
"campaign_flags": { "scouted_wuchao_depots": true },
"items": ["antidote"]
}
],
"merchant": {
"name": "관도 영채 야상",
"lines": [
"원소의 깃발이 길을 덮기 전에 사 두십시오. 주공세가 시작되면 콩 한 알도 호위를 붙여야 합니다.",
"전열에는 헐거운 짐을 둘 수 없습니다. 약, 술, 손에 맞춘 병장, 한숨에 묶을 수 있는 갑옷뿐입니다."
]
}
},
"roster": {
"max_units": 6,
"required_officers": ["cao_cao", "guo_jia"]
},
"formation": {
"cells": [[1, 3], [1, 4], [1, 5], [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 3], [3, 4]]
},
"map": {
"width": 17,
"height": 11,
"background": "res://art/backgrounds/guandu_defensive_camps.png",
"terrain": [
"GGGGGHHGGGGHHGGGG",
"GGFFGHHGGFFHHGFFG",
"GGFFRRRRRRRRRFFGG",
"GGGGGRGGGGRGGGGGG",
"RRRRRRRRRRRRRRRRR",
"GGGGGRGGGGRGGGGGG",
"GGHHGFFFGGWWWGGGG",
"GGHHGFFFGGWWWGGGG",
"GGGGGGFFGGWWWGGGG",
"GGFFGGGGGGGGGFFGG",
"GGGGGGGGGGGGGGGGG"
]
},
"deployments": [
{
"unit_id": "cao_cao_ch12",
"officer_id": "cao_cao",
"team": "player",
"pos": [1, 4]
},
{
"unit_id": "guo_jia_ch12",
"officer_id": "guo_jia",
"team": "player",
"requires_joined": true,
"pos": [2, 4]
},
{
"unit_id": "xiahou_dun_ch12",
"officer_id": "xiahou_dun",
"team": "player",
"pos": [1, 5]
},
{
"unit_id": "dian_wei_ch12",
"officer_id": "dian_wei",
"team": "player",
"requires_joined": true,
"pos": [2, 5]
},
{
"unit_id": "xiahou_yuan_ch12",
"officer_id": "xiahou_yuan",
"team": "player",
"requires_joined": true,
"pos": [2, 3]
},
{
"unit_id": "cao_ren_ch12",
"officer_id": "cao_ren",
"team": "player",
"requires_joined": true,
"pos": [3, 3]
},
{
"unit_id": "yuan_shao_main_body",
"name": "원소 본대",
"class_id": "commander",
"team": "enemy",
"level": 12,
"pos": [14, 4],
"base": { "hp": 70, "mp": 16, "atk": 19, "def": 13, "int": 13, "agi": 10 }
},
{
"unit_id": "ju_shou_advisor",
"name": "저수 군사",
"class_id": "military_advisor",
"team": "enemy",
"level": 12,
"pos": [13, 5],
"skills": ["blaze", "great_mend"],
"base": { "hp": 46, "mp": 32, "atk": 7, "def": 8, "int": 17, "agi": 10 }
},
{
"unit_id": "zhang_he_vanguard",
"name": "장합 선봉",
"class_id": "elite_cavalry",
"team": "enemy",
"level": 12,
"pos": [11, 4],
"base": { "hp": 60, "atk": 20, "def": 12, "agi": 15 }
},
{
"unit_id": "yuan_center_guard",
"name": "원소군 중앙위",
"class_id": "guard_captain",
"team": "enemy",
"level": 11,
"pos": [10, 4],
"base": { "hp": 56, "atk": 17, "def": 14 }
},
{
"unit_id": "yuan_north_guard",
"name": "원소군 북위",
"class_id": "infantry",
"team": "enemy",
"level": 11,
"pos": [11, 3],
"base": { "hp": 50, "atk": 16, "def": 11 }
},
{
"unit_id": "yuan_south_guard",
"name": "원소군 남위",
"class_id": "infantry",
"team": "enemy",
"level": 11,
"pos": [11, 5],
"base": { "hp": 50, "atk": 16, "def": 11 }
},
{
"unit_id": "guandu_archer_north",
"name": "관도 궁병",
"class_id": "marksman",
"team": "enemy",
"level": 11,
"pos": [12, 2],
"base": { "hp": 40, "atk": 16, "def": 7, "agi": 14 }
},
{
"unit_id": "guandu_archer_south",
"name": "관도 궁병",
"class_id": "marksman",
"team": "enemy",
"level": 11,
"pos": [13, 6],
"base": { "hp": 40, "atk": 16, "def": 7, "agi": 14 }
}
],
"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": "Cao Cao", "text": "원소가 전장이 감당할 수 없을 만큼 많은 깃발을 끌고 왔다." },
{ "speaker": "Guo Jia", "text": "그렇다면 깃발마다 먹이고, 알리고, 지켜야 할 것이 있습니다. 대군일수록 틈도 큽니다." },
{ "speaker": "Xiahou Dun", "text": "그 틈이 보일 때까지 앞줄을 버티라는 말씀이군요. 알겠습니다." }
]
}
]
},
{
"id": "turn_2_siege_pressure",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 2 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Yuan Shao", "text": "양익에서 영채를 압박하라. 조조가 모든 곳에 답할 수는 없다." },
{ "speaker": "Ju Shou", "text": "차분히 누르셔야 합니다, 주공. 저 작은 전열이 박자를 고르게 두지 마십시오." }
]
}
]
},
{
"id": "secured_line_holds",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 3, "campaign_flags": { "secured_guandu_line": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Cao Ren", "text": "보강한 영채가 버티고 있습니다. 저들의 첫 밀물은 목책과 흙벽에 힘을 쏟았습니다." },
{ "speaker": "Cao Cao", "text": "좋다. 원소가 한 걸음마다 값을 치르게 하라." }
]
}
]
},
{
"id": "wuchao_traces_found",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 3, "campaign_flags": { "scouted_wuchao_depots": true } },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "군량 자국이 연진 보고와 맞아떨어집니다. 오소가 이 공세 전체를 먹이고 있습니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 이 싸움은 성벽만이 아니다. 저들의 군량고를 가리키는 등불이다." }
]
}
]
},
{
"id": "turn_4_yuan_main_assault",
"once": true,
"when": { "type": "turn_start", "team": "enemy", "turn": 4 },
"actions": [
{
"type": "set_objective",
"victory": "원소 본대와 투입된 공세 부대를 모두 격파하라.",
"defeat": "조조가 퇴각하거나 제13군령에 이른다."
},
{
"type": "dialogue",
"lines": [
{ "speaker": "Zhang He", "text": "중앙이 아직 버티고 있다. 후열 기병을 들여보내라. 저들이 자리 잡기 전에 꺾어야 한다." },
{ "speaker": "Guo Jia", "text": "이제 주력이 들어왔습니다. 이것을 버티면 원소는 반드시 군량을 드러내게 됩니다." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "yuan_rear_cavalry",
"name": "원소군 후열기병",
"class_id": "cavalry",
"team": "enemy",
"level": 11,
"pos": [15, 4],
"base": { "hp": 46, "atk": 17, "def": 9, "agi": 12 }
},
{
"unit_id": "yuan_north_crossbow",
"name": "원소군 쇠뇌병",
"class_id": "archer",
"team": "enemy",
"level": 11,
"pos": [16, 3],
"base": { "hp": 36, "atk": 15, "def": 6, "agi": 12 }
},
{
"unit_id": "yuan_south_crossbow",
"name": "원소군 쇠뇌병",
"class_id": "archer",
"team": "enemy",
"level": 11,
"pos": [16, 5],
"base": { "hp": 36, "atk": 15, "def": 6, "agi": 12 }
}
]
}
]
},
{
"id": "center_countertrap",
"once": true,
"when": { "type": "unit_reaches_tile", "team": "player", "officer_ids": ["cao_cao"], "pos": [9, 4] },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Yuan Guard", "text": "조조가 중앙으로 들어왔다! 그를 둘러싸라!" },
{ "speaker": "Dian Wei", "text": "둘러싼다고? 그렇다면 너희도 나를 둘러싼 셈이다." }
]
},
{
"type": "spawn_deployments",
"deployments": [
{
"unit_id": "yuan_center_spearman",
"name": "원소군 중앙창병",
"class_id": "infantry",
"team": "enemy",
"level": 11,
"pos": [8, 3],
"base": { "hp": 48, "atk": 16, "def": 10 }
},
{
"unit_id": "yuan_center_archer",
"name": "원소군 중앙궁병",
"class_id": "archer",
"team": "enemy",
"level": 11,
"pos": [8, 5],
"base": { "hp": 36, "atk": 15, "def": 6, "agi": 12 }
}
]
}
]
},
{
"id": "turn_7_guandu_holds",
"once": true,
"when": { "type": "turn_start", "team": "player", "turn": 7 },
"actions": [
{
"type": "dialogue",
"lines": [
{ "speaker": "Guo Jia", "text": "저들의 공세는 더 이상 한 군대로 움직이지 않습니다. 서로 다른 말다툼처럼 움직입니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 말다툼마다 쇠붙이로 답하라. 관도는 버틸 것이다." }
]
}
]
}
],
"rewards": {
"gold": 1900,
"items": ["bean", "wine", "imperial_seal", "yitian_sword"]
},
"post_battle_dialogue": [
{ "speaker": "Xiahou Dun", "text": "원소의 첫 큰 공세는 꺾였으나, 그의 영채는 아직 지평을 메우고 있습니다." },
{ "speaker": "Guo Jia", "text": "지평을 메운 군대는 군량을 먹습니다. 이제 오소는 눈앞의 깃발보다 중요합니다." },
{ "speaker": "Cao Cao", "text": "그렇다면 다음 물결이 오기 전에 군량을 칠지, 성벽을 더 굳힐지 정해야 한다." }
],
"post_battle_choices": [
{
"id": "prepare_wuchao_raid",
"label": "오소 기습을 준비한다",
"description": "조조가 척후와 빠른 병력을 원소의 드러난 군량고로 보낸다.",
"set_flags": { "prepared_wuchao_raid": true, "strengthened_guandu_defense": false },
"gold": 100,
"items": ["wine", "war_drum"]
},
{
"id": "strengthen_guandu_defense",
"label": "관도 방비를 더한다",
"description": "더 깊은 기습을 꾀하기 전에 군이 관도 영채를 보강한다.",
"set_flags": { "prepared_wuchao_raid": false, "strengthened_guandu_defense": true },
"gold": 250,
"items": ["iron_armor"]
}
]
}