diff --git a/src/game/data/battles.ts b/src/game/data/battles.ts index 9951525..d5c5824 100644 --- a/src/game/data/battles.ts +++ b/src/game/data/battles.ts @@ -5070,6 +5070,73 @@ export const thirtyFifthBattleScenario: BattleScenarioDefinition = { '마초는 이번 전장이 합류 후 첫 출전입니다. 서량 기병의 속도를 활용하되 유비군의 전열과 너무 멀어지지 않게 해야 합니다.', '장위의 선봉과 염포의 책략대를 물리치고 관문 창고를 확보하면, 흩어진 서량 기병과 마대가 합류할 길이 열립니다.' ], + tacticalGuide: { + summary: + '양평관 정찰전은 한중을 빼앗기 위한 본전이 아니라, 마초가 유비군의 선봉으로 처음 달리며 양평관의 지형과 보급 창고를 확인하는 전장입니다. 장위를 밀어내되 마초를 깊이 고립시키지 않고, 황권이 창고와 산길을 기록할 시간을 벌어야 합니다.', + route: '서남 유비군 진영 → 서쪽 척후선 정리 → 마초 선봉 돌파 → 관문 창고 확인 → 염포 책략대 억제 → 장위 선봉 격파', + focus: + '마초는 새로 합류한 돌파 카드이지만 아직 유비군 전열과 호흡을 맞추는 단계입니다. 황권은 창고와 산길을 기록하고, 조운과 법정은 마초가 너무 깊이 들어가지 않게 후속을 잡아 줍니다.', + roles: [ + '유비: 한중 정찰 명분과 패배 조건의 중심', + '마초: 첫 아군 출전이자 서쪽 선봉 돌파 담당', + '황권: 양평관 창고와 산길을 기록하는 현지 참모', + '제갈량: 한중 본전으로 이어질 전선 설계', + '조운: 마초의 돌격 뒤를 회수하는 기동 후속', + '법정: 장로군의 동요와 염포 책략 판단' + ], + events: { + 'village-approach': { + title: '양평관 창고', + lines: [ + '황권: 저 창고는 군량보다 말먹이가 중요합니다. 마초의 기병이 한중 길에서 오래 버티려면 반드시 기록해 두어야 합니다.', + '마초: 길만 뚫고 지나가면 다시 흩어질 뿐입니다. 이번에는 창고와 귀환로를 남기고 달리겠습니다.' + ] + }, + 'cavalry-approach': { + title: '선봉 기병 접촉', + lines: [ + '조운: 마초 장군의 돌격이 빠릅니다. 후속 기병과 보병이 끊어지지 않게 중앙 길을 비워 두겠습니다.', + '법정: 장로군은 추격을 유도합니다. 깊이 들어간 창은 강하지만, 돌아올 길이 있어야 다음 전투가 됩니다.' + ] + }, + 'leader-wavering': { + title: '장위의 선봉이 흔들리다', + lines: [ + '창고와 산길이 유비군 손에 기록되자 장위의 선봉은 더 이상 양평관 전체를 가릴 수 없습니다.', + '장위: 마초가 유비군 깃발 아래서 달린다고? 그렇다면 한중 길도 예전처럼 막기 어렵겠군.' + ] + } + } + }, + sortie: { + sortieLimit: 6, + requiredUnits: ['liu-bei', 'ma-chao'], + recommendedUnits: [ + { unitId: 'liu-bei', role: 'reserve', reason: '한중 정찰 명분과 패배 조건의 중심입니다.' }, + { unitId: 'ma-chao', role: 'flank', reason: '마초의 첫 아군 출전입니다. 서량 기병으로 양평관 선봉을 흔듭니다.' }, + { unitId: 'huang-quan', role: 'support', reason: '양평관 지형과 창고 확보 목표를 읽는 현지 참모입니다.' }, + { unitId: 'zhuge-liang', role: 'support', reason: '한중 본전으로 이어질 전선 설계와 적 책사 견제를 맡습니다.' }, + { unitId: 'zhao-yun', role: 'flank', reason: '마초가 너무 깊게 들어가지 않도록 기병 후속을 안정시킵니다.' }, + { unitId: 'fa-zheng', role: 'support', reason: '장로군의 내부 동요와 염포의 책략을 읽는 데 강합니다.' } + ], + recommendedClasses: [ + { label: '정찰 명분', classKeys: ['lord'], reason: '유비가 살아 있어야 한중 정찰이 다음 전선으로 이어집니다.' }, + { label: '서량 선봉', classKeys: ['cavalry'], reason: '마초와 조운이 돌파와 회수를 나누면 기병 운용이 안정됩니다.' }, + { label: '창고 기록', classKeys: ['strategist'], reason: '황권과 제갈량, 법정이 창고와 산길 정보를 전장 보상으로 연결합니다.' }, + { label: '관문 압박', classKeys: ['infantry', 'spearman'], reason: '보병 전열이 관문 앞에서 기병이 돌아올 시간을 벌어 줍니다.' }, + { label: '고지 견제', classKeys: ['archer'], reason: '궁병은 관문 궁병과 창고 주변 사격선을 억제합니다.' } + ], + deploymentSlots: [ + { x: 4, y: 46, role: 'reserve', unitId: 'liu-bei', label: '정찰 명분' }, + { x: 13, y: 42, role: 'flank', unitId: 'ma-chao', label: '서량 선봉' }, + { x: 14, y: 46, role: 'support', unitId: 'huang-quan', label: '창고 기록' }, + { x: 6, y: 44, role: 'support', unitId: 'zhuge-liang', label: '전선 설계' }, + { x: 8, y: 45, role: 'flank', unitId: 'zhao-yun', label: '기병 회수' }, + { x: 11, y: 45, role: 'support', unitId: 'fa-zheng', label: '책략 판단' } + ], + note: + '양평관 정찰전은 마초가 처음 아군 선봉으로 나서는 전투입니다. 마초를 앞세우되 황권이 창고와 산길을 기록할 시간을 벌어, 마대 합류와 한중 본전 준비로 연결하십시오.' + }, map: thirtyFifthBattleMap, units: thirtyFifthBattleUnits, bonds: thirtyFifthBattleBonds, @@ -5104,7 +5171,9 @@ export const thirtyFifthBattleScenario: BattleScenarioDefinition = { kind: 'secure-terrain', label: '양평관 창고 확보', rewardGold: 1760, - terrain: 'village' + terrain: 'village', + targetTile: { x: 62, y: 28, radius: 6 }, + threatRadius: 0 }, { id: 'quick', @@ -5119,6 +5188,14 @@ export const thirtyFifthBattleScenario: BattleScenarioDefinition = { { kind: 'unit-defeated', unitId: 'ma-chao' } ], itemRewards: ['콩 24', '상처약 18', '탁주 8', '서량장창 +1', '마대 합류'], + campaignReward: { + supplies: ['콩 24', '상처약 18', '탁주 8'], + equipment: ['서량장창 +1'], + recruits: ['ma-dai'], + unlockBattleId: 'thirty-sixth-battle-dingjun-vanguard', + unlockLabel: '정군산 전초전 개방', + note: '양평관 창고와 산길을 확인하고 마대가 합류했습니다. 이제 마초와 마대의 기병 운용을 정군산 전초전에서 시험할 수 있습니다.' + }, victoryPages: thirtyFifthBattleVictoryPages, nextCampScene: 'CampScene' }; diff --git a/src/game/data/scenario.ts b/src/game/data/scenario.ts index 7f8594e..2088f9f 100644 --- a/src/game/data/scenario.ts +++ b/src/game/data/scenario.ts @@ -2520,7 +2520,7 @@ export const thirtyFifthBattleIntroPages: StoryPage[] = [ chapter: '한중 전선의 첫 정찰', background: 'story-northern', speaker: '제갈량', - text: '마초가 합류하자 가맹관 너머의 길이 열렸습니다. 그러나 양평관은 장로의 군세가 한중으로 드나드는 목으로, 먼저 길과 병력을 살펴야 합니다.' + text: '마초가 합류하자 가맹관 너머의 길이 열렸습니다. 그러나 양평관은 장로의 군세가 한중으로 드나드는 목입니다. 먼저 창고와 산길, 적 선봉의 배치를 기록해야 합니다.' }, { id: 'thirty-fifth-ma-chao-first-sortie', @@ -2528,7 +2528,7 @@ export const thirtyFifthBattleIntroPages: StoryPage[] = [ chapter: '마초의 첫 출전', background: 'story-northern', speaker: '마초', - text: '양평관의 말길은 거칠지만 서량 기병이 숨을 맞추면 뚫을 수 있습니다. 이번에는 제가 앞에서 달리며 유비군의 깃발을 보이겠습니다.' + text: '양평관의 말길은 거칠지만 서량 기병이 숨을 맞추면 뚫을 수 있습니다. 이번에는 앞에서 달리되, 돌아올 길과 창고를 함께 남기겠습니다.' }, { id: 'thirty-fifth-huang-quan-map', @@ -2536,7 +2536,7 @@ export const thirtyFifthBattleIntroPages: StoryPage[] = [ chapter: '황권의 길잡이', background: 'story-northern', speaker: '황권', - text: '적을 모두 몰아내는 것보다 관문 창고와 강변 길을 잡는 것이 중요합니다. 한중을 향한 첫 정찰은 병력보다 지형을 얻는 싸움입니다.' + text: '적을 모두 몰아내는 것보다 관문 창고와 강변 길을 기록하는 것이 중요합니다. 한중을 향한 첫 정찰은 병력보다 지형을 얻는 싸움입니다.' }, { id: 'thirty-fifth-sortie', @@ -2545,7 +2545,7 @@ export const thirtyFifthBattleIntroPages: StoryPage[] = [ background: 'story-northern', speaker: '유비', portrait: 'liuBei', - text: '마초는 선봉을 맡고, 황권과 법정은 길을 보시오. 이 싸움은 한중을 빼앗는 첫걸음이 아니라, 한중을 얻을 자격을 살피는 첫걸음이오.' + text: '마초는 선봉을 맡되 깊이 고립되지 마시오. 황권과 법정은 창고와 산길을 기록하시오. 이 싸움은 한중을 얻을 자격을 살피는 첫걸음이오.' } ]; @@ -2555,7 +2555,7 @@ export const thirtyFifthBattleVictoryPages: StoryPage[] = [ bgm: 'militia-theme', chapter: '양평관 길을 열다', background: 'story-northern', - text: '양평관의 선봉대가 물러나자 한중으로 향하는 길목과 보급 창고가 유비군의 눈앞에 드러났습니다. 마초의 첫 돌격은 이제 유비군의 돌격이 되었습니다.' + text: '양평관의 선봉대가 물러나자 한중으로 향하는 길목과 보급 창고가 유비군의 장부에 적혔습니다. 마초의 첫 돌격은 이제 유비군의 돌격이 되었습니다.' }, { id: 'thirty-fifth-ma-dai-joins', @@ -2563,7 +2563,7 @@ export const thirtyFifthBattleVictoryPages: StoryPage[] = [ chapter: '마대의 합류', background: 'story-northern', speaker: '마대', - text: '서량의 흩어진 기병을 거두어 마초 형님의 깃발 아래로 데려왔습니다. 유비공께서 허락하신다면 저도 한중 길을 여는 창이 되겠습니다.' + text: '양평관 창고와 말길을 보니 흩어진 서량 기병도 오래 버틸 자리를 찾았습니다. 유비공께서 허락하신다면 저도 한중 길을 여는 창이 되겠습니다.' }, { id: 'thirty-fifth-next-hanzhong', diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index 5a1a8e0..529810e 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -1216,6 +1216,7 @@ const sortieRulesByBattleId: Partial