diff --git a/src/game/data/battles.ts b/src/game/data/battles.ts index deb91e0..31f8aab 100644 --- a/src/game/data/battles.ts +++ b/src/game/data/battles.ts @@ -7367,6 +7367,82 @@ export const fiftyFirstBattleScenario: BattleScenarioDefinition = { '오돌골의 등갑병과 독천 제사장들이 화덕 주변을 지키고 있습니다. 화덕 요새를 제압하되 마을과 포로장을 지켜, 촉한군의 약속이 전투 중에도 지켜진다는 것을 보여야 합니다.', '제갈량은 반드시 생존해야 합니다. 마량으로 호족 문서를 전하고, 황권과 왕평으로 장부와 퇴로를 지키며, 마초와 마대로 추격선을 조절하십시오.' ], + tacticalGuide: { + summary: + '칠종칠금 4차전은 세 번째 생포 뒤 생긴 회유 퇴로를 실제 전장 목표로 지키는 전투입니다. 화덕 요새와 등갑병을 제압하되, 물러설 호족이 빠져나갈 길과 포로장 보증을 함께 보존해야 합니다.', + route: '서쪽 보증 장부 정렬 -> 중앙 회유 퇴로 확보 -> 포로장 보증 유지 -> 동쪽 화덕 요새 제압 -> 등갑병 추격선 조절 -> 맹획 네 번째 생포', + focus: + '화덕 요새를 먼저 밀어도 회유 퇴로가 막히면 호족들은 촉한군의 약속을 믿지 않습니다. 도로와 포로장을 지키며 오돌골의 등갑병을 끊어야 다음 전투의 강경파 분리 흐름이 자연스럽게 이어집니다.', + roles: [ + '제갈량: 네 번째 생포와 회유 퇴로 유지의 기준을 세웁니다. 추격선을 넘지 않게 전장을 조율해야 합니다.', + '마량: 호족 설득문을 이어 전하고, 물러설 자에게 남길 말을 정리합니다.', + '황권: 보증 장부와 포로 귀환 약속을 지켜 회유 퇴로의 신뢰를 만듭니다.', + '왕평: 산길과 독천 우회로를 읽어 호족 퇴로가 매복에 끊기지 않게 합니다.', + '마초/마대: 빠른 기동으로 등갑병과 맹수대의 추격선을 조절합니다.', + '조운: 회유로 중심을 지키며 등갑병 돌파가 포로장으로 번지지 않게 막습니다.' + ], + events: { + 'ally-danger': { + title: '회유 퇴로', + lines: [ + '마량: 물러설 뜻이 있는 호족까지 몰아붙이면 지난 세 번의 석방이 모두 헛말이 됩니다.', + '제갈량: 길을 열어 두십시오. 오늘 지켜 낸 퇴로가 다음 회유의 증거가 됩니다.' + ] + }, + 'village-approach': { + title: '보증 장부', + lines: [ + '황권: 돌아간 자와 끝까지 싸운 자의 이름을 나눠 적겠습니다. 장부가 흐트러지면 약속도 흐트러집니다.', + '왕평: 독천 옆길로 감시병이 돌아듭니다. 퇴로 뒤를 먼저 끊겠습니다.' + ] + }, + 'enemy-posture': { + title: '화덕 요새', + lines: [ + '마초: 등갑병이 화덕을 끼고 버티면 길이 막힌다. 빠르게 흔들겠다.', + '마대: 추격은 제가 끊겠습니다. 퇴로 안쪽까지 밀고 들어가지는 않겠습니다.' + ] + }, + 'leader-wavering': { + title: '네 번째 생포', + lines: [ + '맹획: 길을 열어 둔 것이 자비라면, 왜 또 내 앞길을 막느냐!', + '제갈량: 사람을 베지 않기 위해 길을 열었고, 남중을 태우지 않기 위해 당신을 다시 잡습니다.' + ] + } + } + }, + sortie: { + sortieLimit: 7, + requiredUnits: ['zhuge-liang'], + recommendedUnits: [ + { unitId: 'zhuge-liang', role: 'support', reason: '네 번째 생포와 회유 퇴로 유지의 필수 지휘관입니다.' }, + { unitId: 'ma-liang', role: 'support', reason: '세 번째 생포 뒤 만든 호족 설득문을 전장 안에서 이어 갑니다.' }, + { unitId: 'huang-quan', role: 'support', reason: '보증 장부로 회유 퇴로와 포로 귀환 약속을 지킵니다.' }, + { unitId: 'wang-ping', role: 'flank', reason: '열어 둔 산길과 독천 우회로를 읽어 호족 퇴로를 확보합니다.' }, + { unitId: 'zhao-yun', role: 'front', reason: '등갑병과 맹수대가 회유로를 덮치지 못하게 중심을 지킵니다.' }, + { unitId: 'ma-chao', role: 'front', reason: '남만 기병을 강하게 압박하되 추격선을 넘지 않게 합니다.' }, + { unitId: 'ma-dai', role: 'flank', reason: '마초와 함께 회유 퇴로 주변의 빠른 차단과 회수를 맡습니다.' } + ], + recommendedClasses: [ + { label: '회유 퇴로 지휘', classKeys: ['strategist'], reason: '물러설 호족에게 남길 말과 길을 유지합니다.' }, + { label: '보증 장부', classKeys: ['strategist'], reason: '포로 귀환과 회유 퇴로 약속을 기록으로 지킵니다.' }, + { label: '독천 우회로', classKeys: ['infantry', 'spearman'], reason: '퇴로 뒤 매복과 감시병을 끊습니다.' }, + { label: '등갑 추격선', classKeys: ['cavalry'], reason: '등갑병과 맹수대의 추격을 빠르게 조절합니다.' }, + { label: '화덕 견제', classKeys: ['archer'], reason: '화덕 요새 주변 제사장과 궁병을 안전하게 누릅니다.' } + ], + deploymentSlots: [ + { x: 13, y: 60, role: 'support', unitId: 'zhuge-liang', label: '퇴로 지휘' }, + { x: 17, y: 57, role: 'support', unitId: 'ma-liang', label: '호족 문서' }, + { x: 10, y: 58, role: 'support', unitId: 'huang-quan', label: '보증 장부' }, + { x: 29, y: 56, role: 'flank', unitId: 'wang-ping', label: '독천 우회' }, + { x: 24, y: 60, role: 'front', unitId: 'zhao-yun', label: '퇴로 중심' }, + { x: 39, y: 60, role: 'front', unitId: 'ma-chao', label: '등갑 압박' }, + { x: 42, y: 65, role: 'flank', unitId: 'ma-dai', label: '추격선 회수' } + ], + note: + '칠종칠금 4차전은 생포만큼이나 회유 퇴로와 보증 장부가 중요합니다. 화덕 요새를 누르되 퇴로를 막지 않는 편성을 고르십시오.' + }, map: fiftyFirstBattleMap, units: fiftyFirstBattleUnits, bonds: fiftyFirstBattleBonds, @@ -7394,21 +7470,27 @@ export const fiftyFirstBattleScenario: BattleScenarioDefinition = { kind: 'secure-terrain', label: '회유 퇴로 유지', rewardGold: 4140, - terrain: 'road' + terrain: 'road', + targetTile: { x: 79, y: 60, radius: 6 }, + threatRadius: 0 }, { id: 'captive-camps', kind: 'secure-terrain', label: '포로장 보증 유지', rewardGold: 3360, - terrain: 'camp' + terrain: 'camp', + targetTile: { x: 70, y: 62, radius: 5 }, + threatRadius: 0 }, { id: 'fire-forts', kind: 'secure-terrain', label: '화덕 요새 제압', rewardGold: 3640, - terrain: 'fort' + terrain: 'fort', + targetTile: { x: 86, y: 48, radius: 6 }, + threatRadius: 0 }, { id: 'quick', @@ -7420,6 +7502,14 @@ export const fiftyFirstBattleScenario: BattleScenarioDefinition = { ], defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }], itemRewards: ['콩 34', '상처약 24', '탁주 12', '호족 보증 장부 1', '회유 퇴로 표식 1'], + campaignReward: { + supplies: ['콩 34', '상처약 24', '탁주 12'], + equipment: ['호족 보증 장부 1'], + reputation: ['회유 퇴로 표식 1'], + unlockLabel: '칠종칠금 5차전', + note: + '회유 퇴로가 지켜지자 일부 호족은 맹획 본대에서 물러날 명분을 얻었습니다. 다음 전투에서는 강경파와 회유파를 분리하는 길목이 핵심 목표가 됩니다.' + }, victoryPages: fiftyFirstBattleVictoryPages, nextCampScene: 'CampScene' }; diff --git a/src/game/data/scenario.ts b/src/game/data/scenario.ts index ac3ce8f..2a2eb27 100644 --- a/src/game/data/scenario.ts +++ b/src/game/data/scenario.ts @@ -3617,7 +3617,7 @@ export const fiftyFirstBattleIntroPages: StoryPage[] = [ chapter: '회유가 전장으로', background: 'story-nanzhong-captures', speaker: '마량', - text: '호족 회의 뒤 일부 촌장은 맹획을 따르되 끝까지 싸우지는 않겠다고 속내를 보였습니다. 그들이 물러날 길을 남겨 두면 다음 전투는 섬멸보다 설득에 가까워질 것입니다.' + text: '호족 회의 뒤 일부 촌장은 맹획을 따르되 끝까지 싸우지는 않겠다고 속내를 보였습니다. 그들이 물러날 길과 보증 장부를 남겨 두면, 다음 전투는 섬멸보다 설득에 가까워질 것입니다.' }, { id: 'fifty-first-fourth-capture-plan', @@ -3625,7 +3625,7 @@ export const fiftyFirstBattleIntroPages: StoryPage[] = [ chapter: '네 번째 생포', background: 'story-nanzhong-captures', speaker: '제갈량', - text: '이번에는 맹획의 본영뿐 아니라 오돌골의 등갑병과 독천 제사장들이 전장을 뒤덮을 것입니다. 화덕과 독천을 함부로 건드리지 말고, 회유 퇴로와 마을 보증을 함께 지키십시오.' + text: '이번에는 맹획의 본영뿐 아니라 오돌골의 등갑병과 독천 제사장들이 전장을 뒤덮을 것입니다. 화덕 요새를 제압하되, 회유 퇴로와 포로장 보증이 끊기지 않게 지키십시오.' }, { id: 'fifty-first-sortie', @@ -3633,7 +3633,7 @@ export const fiftyFirstBattleIntroPages: StoryPage[] = [ chapter: '칠종칠금 4차전', background: 'story-nanzhong-captures', speaker: '왕평', - text: '숲길은 더 좁고 강물은 더 깊습니다. 마량이 호족의 말을 붙잡고, 황권이 보증 장부를 지키며, 왕평과 마대가 열어 둔 산길을 따라 맹획을 네 번째 생포해야 합니다.' + text: '숲길은 더 좁고 강물은 더 깊습니다. 마량이 호족의 말을 붙잡고, 황권이 보증 장부를 지키며, 왕평과 마대가 독천 우회로와 추격선을 조절해야 맹획을 네 번째로 생포할 수 있습니다.' } ]; @@ -3643,7 +3643,7 @@ export const fiftyFirstBattleVictoryPages: StoryPage[] = [ bgm: 'militia-theme', chapter: '네 번째 생포', background: 'story-nanzhong-captures', - text: '맹획은 네 번째로 포위되었고, 등갑병의 화덕과 독천 제사장들은 마을까지 밀려오지 못했습니다. 회유 퇴로로 물러난 호족들은 촉한군이 약속한 길을 지켰다는 사실을 직접 보았습니다.' + text: '맹획은 네 번째로 포위되었고, 등갑병의 화덕 요새와 독천 제사장들은 마을까지 밀려오지 못했습니다. 회유 퇴로로 물러난 호족들은 촉한군이 약속한 길을 지켰다는 사실을 직접 보았습니다.' }, { id: 'fifty-first-victory-amnesty-route', diff --git a/src/game/scenes/CampScene.ts b/src/game/scenes/CampScene.ts index 2e402dd..414a80d 100644 --- a/src/game/scenes/CampScene.ts +++ b/src/game/scenes/CampScene.ts @@ -1702,7 +1702,23 @@ const sortieRulesByBattleId: Partial