Refine Fu Pass entry battle flow

This commit is contained in:
2026-07-04 19:30:29 +09:00
parent 2905c6b6cd
commit 11bfc2ef93
4 changed files with 137 additions and 17 deletions

View File

@@ -3935,15 +3935,82 @@ export const twentyEighthBattleScenario: BattleScenarioDefinition = {
defeatConditionLabel: '유비 또는 제갈량 퇴각',
openingObjectiveLines: [
'익주 원군로를 연 유비군은 부수관의 첫 문 앞에 섰습니다. 고패는 좁은 협곡과 성루 궁병을 이용해 원군의 명분을 관문 앞에서 묶으려 합니다.',
'이번 전투부터 방통이 출전 후보에 들어옵니다. 와룡과 봉추를 함께 세우면 계책은 강해지지만, 전열과 보급 선택 더 날카로워집니다.',
'유비와 제갈량을 지키며 고패를 물러나게 하면 익주 내부 인재 법정이 군영에 합류합니다.'
'이번 전투부터 방통이 출전 후보에 들어옵니다. 와룡과 봉추를 함께 세우면 성루와 보급선 압박이 강해지지만, 전열과 회복 선택 더 날카로워집니다.',
'유비와 제갈량을 지키며 관문 창고를 봉인하고 고패를 물러나게 하면, 익주 내부 인재 법정이 군영에 합류합니다.'
],
tacticalGuide: {
summary:
'부수관 진입전은 방통이 처음 전장 선택지로 들어오는 관문전입니다. 관문을 무작정 부수기보다 창고를 봉인하고 성루 사격선을 꺾어 익주 내부의 의심을 낮추십시오.',
route: '서남 유비군 진영 → 협곡 척후 차단 → 부수관 마을 안정 → 성루 사격선 억제 → 고패 퇴각',
focus:
'방통은 성루와 보급선을 흔드는 기책에 강하고, 제갈량은 전체 전열을 안정시킵니다. 둘을 함께 세우면 관문 압박은 좋아지지만 전열 한 자리가 비므로 위연이나 조운으로 빈틈을 메우십시오.',
roles: [
'유비: 부수관 진입 명분과 패배 조건의 중심',
'제갈량: 협곡 전열과 보급선 압박 순서 판단',
'방통: 성루 사격선과 관문 창고를 흔드는 기책 담당',
'위연: 좁은 관문 보병 전열을 여는 돌파 역할',
'황충: 성루 궁병과 산루 궁병 견제',
'조운: 협곡 기병과 복병 차단'
],
events: {
'village-approach': {
title: '부수관 마을',
lines: [
'방통: 관문을 열어도 마을 창고를 건드리면 익주의 문은 다시 닫힐 것입니다. 먼저 보급을 봉인하십시오.',
'유비: 군량을 탐하지 마시오. 이 길은 백성을 지키러 들어가는 길이오.'
]
},
'cavalry-approach': {
title: '협곡 기병 차단',
lines: [
'조운: 협곡 기병이 후방을 끊으려 합니다. 방통 선생의 계책이 닿기 전에 길부터 지키겠습니다.',
'제갈량: 기병을 놓치면 성루 압박이 늦어집니다. 전열과 후방을 동시에 보십시오.'
]
},
'leader-wavering': {
title: '고패의 흔들림',
lines: [
'성루 사격선과 관문 창고가 동시에 묶이자 고패의 병사들이 더는 좁은 길을 믿고 버티지 못합니다.',
'법정: 창고를 봉인하고도 관문을 연다라. 익주 안쪽에도 이 소식이 닿을 것입니다.'
]
}
}
},
sortie: {
sortieLimit: 6,
requiredUnits: ['liu-bei', 'zhuge-liang'],
recommendedUnits: [
{ unitId: 'liu-bei', role: 'reserve', reason: '부수관 진입 명분이자 패배 조건의 중심입니다.' },
{ unitId: 'pang-tong', role: 'support', reason: '성루 사격선과 관문 창고를 흔드는 이번 전투의 새 기책 축입니다.' },
{ unitId: 'zhuge-liang', role: 'support', reason: '방통의 기책을 전체 전열과 보급선 판단으로 연결합니다.' },
{ unitId: 'wei-yan', role: 'front', reason: '좁은 관문 보병 전열을 빠르게 열어 책사들의 압박 시간을 벌어 줍니다.' },
{ unitId: 'huang-zhong', role: 'support', reason: '성루 궁병과 산루 궁병을 안정적으로 견제합니다.' },
{ unitId: 'zhao-yun', role: 'flank', reason: '협곡 기병과 복병을 빠르게 끊어 후방을 지킵니다.' }
],
recommendedClasses: [
{ label: '관문 명분', classKeys: ['lord'], reason: '유비가 살아 남아야 부수관 진입의 명분이 유지됩니다.' },
{ label: '와룡봉추', classKeys: ['strategist'], reason: '제갈량과 방통을 함께 세우면 관문 압박과 계책 성공률이 안정됩니다.' },
{ label: '협곡 돌파', classKeys: ['infantry', 'spearman'], reason: '위연 같은 돌파 장수가 좁은 길의 보병 전열을 열어야 합니다.' },
{ label: '기병 차단', classKeys: ['cavalry'], reason: '기동 장수가 협곡 기병과 복병을 끊어 책사를 보호합니다.' },
{ label: '성루 견제', classKeys: ['archer'], reason: '황충의 원거리 견제가 성루 궁병을 억제합니다.' }
],
deploymentSlots: [
{ x: 4, y: 32, role: 'reserve', unitId: 'liu-bei', label: '관문 명분' },
{ x: 5, y: 32, role: 'support', unitId: 'zhuge-liang', label: '전열 판단' },
{ x: 9, y: 33, role: 'support', unitId: 'pang-tong', label: '성루 기책' },
{ x: 10, y: 31, role: 'front', unitId: 'wei-yan', label: '협곡 돌파' },
{ x: 7, y: 33, role: 'support', unitId: 'huang-zhong', label: '성루 견제' },
{ x: 8, y: 32, role: 'flank', unitId: 'zhao-yun', label: '기병 차단' }
],
note:
'부수관 진입전은 방통을 처음 실전 편성으로 시험하는 전장입니다. 와룡과 봉추를 같이 세우면 관문 압박은 강해지지만, 전열과 보급 선택을 더 신중히 해야 합니다.'
},
map: twentyEighthBattleMap,
units: twentyEighthBattleUnits,
bonds: twentyEighthBattleBonds,
mapTextureKey: 'battle-map-twenty-eighth',
leaderUnitId: 'fupass-leader-gao-pei',
quickVictoryTurnLimit: 37,
quickVictoryTurnLimit: 50,
baseVictoryGold: 3980,
objectives: [
{
@@ -3972,14 +4039,43 @@ export const twentyEighthBattleScenario: BattleScenarioDefinition = {
kind: 'secure-terrain',
label: '부수관 마을 안정',
rewardGold: 1220,
terrain: 'village'
terrain: 'village',
targetTile: { x: 40, y: 19, radius: 13 },
threatRadius: 0
},
{
id: 'canyon-screen',
kind: 'secure-terrain',
label: '협곡 기병 차단',
rewardGold: 1160,
terrain: 'road',
targetTile: { x: 42, y: 24, radius: 16 },
threatRadius: 0
},
{
id: 'tower-archers',
kind: 'secure-terrain',
label: '성루 궁병 억제',
rewardGold: 1200,
terrain: 'fort',
targetTile: { x: 46, y: 17, radius: 10 },
threatRadius: 0
},
{
id: 'gate-granary',
kind: 'secure-terrain',
label: '관문 창고 봉인',
rewardGold: 1280,
terrain: 'fort',
targetTile: { x: 49, y: 18, radius: 8 },
threatRadius: 0
},
{
id: 'quick',
kind: 'quick-victory',
label: '37턴 이내 승리',
label: '50턴 이내 승리',
rewardGold: 960,
maxTurn: 37
maxTurn: 50
}
],
defeatConditions: [
@@ -3987,6 +4083,14 @@ export const twentyEighthBattleScenario: BattleScenarioDefinition = {
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
],
itemRewards: ['콩 13', '상처약 9', '탁주 6', '부수관 보급표 +1', '법정 합류'],
campaignReward: {
supplies: ['콩 13', '상처약 9', '탁주 6'],
reputation: ['부수관 보급표 +1', '와룡봉추 편성 경험 +1'],
recruits: ['fa-zheng'],
unlockBattleId: 'twenty-ninth-battle-luo-outer-wall',
unlockLabel: '낙성 외곽전 개방',
note: '부수관 창고를 봉인하고 관문을 열었습니다. 법정이 합류하고 낙성 외곽으로 향하는 길이 열립니다.'
},
victoryPages: twentyEighthBattleVictoryPages,
nextCampScene: 'CampScene'
};

View File

@@ -510,7 +510,7 @@ const sortieFlows: Record<string, SortieFlow> = {
eyebrow: '다음 전장',
title: twentyNinthBattleScenario.title,
description:
'부수관이 열리고 법정이 합류했습니다. 이제 낙성 외곽으로 들어가 장임의 방어선과 오의의 흔들리는 마음을 동시에 상대해야 합니다.',
'부수관 창고를 봉인하고 성루 압박을 넘어선 유비군에게 법정이 합류했습니다. 이제 낙성 외곽으로 들어가 장임의 방어선과 오의의 흔들리는 마음을 동시에 상대해야 합니다.',
rewardHint: `예상 보상: ${twentyNinthBattleScenario.title} 개방 / 오의 합류`,
nextBattleId: twentyNinthBattleScenario.id,
campaignStep: 'twenty-ninth-battle',

View File

@@ -2086,7 +2086,7 @@ export const twentyEighthBattleIntroPages: StoryPage[] = [
chapter: '부수관의 그림자',
background: 'story-yizhou-luo-road',
speaker: '방통',
text: '익주 원군로는 열렸으나 부수관은 아직 닫혀 있습니다. 고패가 관문 병력을 모아 길을 끊으면, 우리 명분은 산문 앞에서 멈출 것입니다.'
text: '익주 원군로는 열렸으나 부수관은 아직 닫혀 있습니다. 고패가 성루와 창고를 함께 틀어쥐면, 우리 명분은 산문 앞에서 멈출 것입니다.'
},
{
id: 'twenty-eighth-fa-zheng-message',
@@ -2102,7 +2102,7 @@ export const twentyEighthBattleIntroPages: StoryPage[] = [
chapter: '와룡과 봉추의 첫 편성',
background: 'story-yizhou-luo-road',
speaker: '마량',
text: '이번 전투부터 방통도 출전 후보가 됩니다. 책사 둘을 모두 데려가면 관문 계책은 강해지지만, 전열과 보급 중 하나가 얇아질 수 있습니다.'
text: '이번 전투부터 방통도 출전 후보가 됩니다. 와룡과 봉추를 모두 데려가면 성루와 보급선 계책은 강해지지만, 전열과 회복 중 하나가 얇아질 수 있습니다.'
},
{
id: 'twenty-eighth-fu-pass-sortie',
@@ -2111,7 +2111,7 @@ export const twentyEighthBattleIntroPages: StoryPage[] = [
background: 'story-yizhou-luo-road',
speaker: '유비',
portrait: 'liuBei',
text: '관문을 부수는 일보다 중요한 것은, 그 너머의 백성이 우리를 어떻게 기억하느냐요. 방통의 기책과 제갈량의 큰 판을 살려 부수관의 길을 열겠소.'
text: '관문을 부수는 일보다 중요한 것은, 그 너머의 백성이 우리를 어떻게 기억하느냐요. 창고를 봉인하고 성루 사격선을 꺾어 부수관의 길을 열겠소.'
}
];
@@ -2121,7 +2121,7 @@ export const twentyEighthBattleVictoryPages: StoryPage[] = [
bgm: 'militia-theme',
chapter: '부수관이 열리다',
background: 'story-yizhou-luo-road',
text: '고패의 관문 병력이 물러나고 부수관의 첫 문이 열렸습니다. 유비군은 관문 창고를 봉인하고 마을의 곡식을 지켜, 익주 내부의 의심을 조금 누그러뜨렸습니다.'
text: '고패의 관문 병력이 물러나고 부수관의 첫 문이 열렸습니다. 유비군은 성루 사격선을 꺾고 관문 창고를 봉인해, 익주 내부의 의심을 조금 누그러뜨렸습니다.'
},
{
id: 'twenty-eighth-fa-zheng-joins',

View File

@@ -1020,15 +1020,31 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
},
'twenty-eighth-battle-fu-pass-entry': {
maxUnits: 6,
requiredUnitIds: ['liu-bei', 'zhuge-liang'],
recommended: [
{ unitId: 'liu-bei', reason: '부수관 진입 명분과 패배 조건의 중심입니다.' },
{ unitId: 'pang-tong', reason: '부수관 관문을 흔드는 기책 담당이며 이번 전투의 새 선택 축입니다.' },
{ unitId: 'zhuge-liang', reason: '관문 돌파와 보급선을 함께 보는 큰 판의 핵심입니다.' },
{ unitId: 'wei-yan', reason: '좁은 관문 전열을 빠르게 흔들 돌파 역할입니다.' },
{ unitId: 'huang-zhong', reason: '성루 궁병과 산비탈 적을 안정적으로 견제합니다.' },
{ unitId: 'zhao-yun', reason: '협곡 기병과 복병을 빠르게 끊는 기동 핵심입니다.' }
{ unitId: 'pang-tong', reason: '성루 사격선과 관문 창고를 흔드는 이번 전투의 새 기책 축입니다.' },
{ unitId: 'zhuge-liang', reason: '방통의 기책을 전체 전열과 보급선 판단으로 연결합니다.' },
{ unitId: 'wei-yan', reason: '좁은 관문 보병 전열을 빠르게 열어 책사들의 압박 시간을 벌어 줍니다.' },
{ unitId: 'huang-zhong', reason: '성루 궁병과 산루 궁병을 안정적으로 견제합니다.' },
{ unitId: 'zhao-yun', reason: '협곡 기병과 복병을 빠르게 끊어 후방을 지킵니다.' }
],
note: '부수관 진입전은 열네 명 중 여섯 명만 고르는 전장입니다. 방통을 데려가면 계책은 강해지지만, 보급이나 전열 후보를 한 명 줄여야 합니다.'
recommendedClasses: [
{ label: '관문 명분', classKeys: ['lord'], reason: '유비가 살아 남아야 부수관 진입의 명분이 유지됩니다.' },
{ label: '와룡봉추', classKeys: ['strategist'], reason: '제갈량과 방통을 함께 세우면 관문 압박과 계책 성공률이 안정됩니다.' },
{ label: '협곡 돌파', classKeys: ['infantry', 'spearman'], reason: '위연 같은 돌파 장수가 좁은 길의 보병 전열을 열어야 합니다.' },
{ label: '기병 차단', classKeys: ['cavalry'], reason: '기동 장수가 협곡 기병과 복병을 끊어 책사를 보호합니다.' },
{ label: '성루 견제', classKeys: ['archer'], reason: '황충의 원거리 견제가 성루 궁병을 억제합니다.' }
],
deploymentSlots: [
{ x: 4, y: 32, role: 'reserve', unitId: 'liu-bei', label: '관문 명분' },
{ x: 5, y: 32, role: 'support', unitId: 'zhuge-liang', label: '전열 판단' },
{ x: 9, y: 33, role: 'support', unitId: 'pang-tong', label: '성루 기책' },
{ x: 10, y: 31, role: 'front', unitId: 'wei-yan', label: '협곡 돌파' },
{ x: 7, y: 33, role: 'support', unitId: 'huang-zhong', label: '성루 견제' },
{ x: 8, y: 32, role: 'flank', unitId: 'zhao-yun', label: '기병 차단' }
],
note: '부수관 진입전은 방통을 처음 실전 편성으로 시험하는 전장입니다. 와룡과 봉추를 같이 세우면 관문 압박은 강해지지만, 전열과 보급 선택을 더 신중히 해야 합니다.'
},
'twenty-ninth-battle-luo-outer-wall': {
maxUnits: 6,