Refine Xiapi final battle flow

This commit is contained in:
2026-07-04 16:36:35 +09:00
parent 47527c53f5
commit d2d4be605e
4 changed files with 112 additions and 22 deletions

View File

@@ -1688,16 +1688,85 @@ export const thirteenthBattleScenario: BattleScenarioDefinition = {
victoryConditionLabel: '여포 격파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'여포가 하비 성 안에서 마지막 돌파를 준비합니다. 여포를 격파하면 서주를 뒤흔든 난전도 끝을 맞습니다.',
'진궁은 성루 궁병과 수문 수비를 이용해 접근로를 끊으려 합니다. 기병 돌파대와 성문 수비대를 나누어 상대하십시오.',
'성문 요새를 확보하고 22턴 안에 승리하면 조조 휘하에서도 유비군의 전공과 독자 보급 명분을 모두 남길 수 있습니다.'
'여포가 하비 성 안에서 마지막 돌파를 준비합니다. 성문 전열을 밀어내고 수문 쪽 포위망을 닫아야 비장군의 기동을 묶을 수 있습니다.',
'진궁은 성루 궁병과 수문 수비 접근로를 끊으려 합니다. 관우가 성문을 누르고 장비가 기병 돌파를 끊는 동안, 책사와 보급 장수가 전열을 붙잡아야 합니다.',
'성문과 수문 포위망을 확보하고 35턴 안에 승리하면 조조 휘하에서도 유비군의 전공, 보급 명분, 새 인맥을 모두 남길 수 있습니다.'
],
tacticalGuide: {
summary: '서남 진영에서 성문 전열을 밀고, 수문 쪽 포위망을 닫은 뒤 여포의 마지막 돌격을 고립시키는 결전입니다.',
route: '서남 진영 → 수문 둑길 → 하비 성문 → 여포 본진',
focus:
'성문만 바라보면 여포 기병이 남쪽 길로 빠져나옵니다. 관우는 중앙 요새를 누르고, 장비는 수문 둑길의 기병을 끊으며, 간옹과 미축은 진궁의 책략과 회복선을 동시에 관리해야 합니다.',
roles: [
'유비: 후방 지휘와 조조군 앞 명분 유지',
'관우: 성문 요새 정면 돌파',
'장비: 남쪽 수문 둑길 기병 차단',
'간옹: 진궁 책략 견제와 전황 보고',
'미축: 회복품 운용과 포위망 보급 유지'
],
events: {
'village-approach': {
title: '하비 포위망 접근',
lines: [
'성문과 수문 주변을 나누어 누르면 여포군의 돌파로가 좁아집니다.',
'이 길목을 잡아 두면 진궁의 궁병과 기병을 따로 떼어 상대할 수 있습니다.'
]
},
'enemy-posture': {
title: '하비 성내 진형',
lines: [
'성루 궁병은 중앙 길을 겨누고, 진궁은 수문 쪽 퇴로와 요새 수비를 함께 묶고 있습니다.',
'관우가 성문을 압박하는 동안 장비가 남쪽 기병을 막으면 여포가 돌파할 공간이 줄어듭니다.'
]
},
'cavalry-approach': {
title: '여포군 최후 돌격',
lines: [
'여포군 기병이 성 안쪽 길을 타고 포위망의 빈틈을 찾습니다.',
'장비를 둑길에 세우고 미축의 회복선을 유지하면 돌격을 받아친 뒤 성문으로 역압박할 수 있습니다.'
]
},
'leader-wavering': {
title: '여포 본진 고립',
lines: [
'성문과 수문이 흔들리자 여포의 돌파로가 좁아지고 있습니다.',
'유비를 무리하게 앞세우지 말고 관우와 장비가 양쪽 길을 닫으면 결전의 끝이 보입니다.'
]
}
}
},
sortie: {
sortieLimit: 5,
requiredUnits: ['liu-bei'],
recommendedUnits: [
{ unitId: 'liu-bei', role: 'support', reason: '조조 앞에서 여포의 끝을 두고 말해야 할 주장입니다. 후방 지휘와 생존을 맡깁니다.' },
{ unitId: 'guan-yu', role: 'front', reason: '하비 성문 요새를 정면에서 밀어낼 핵심 전열입니다.' },
{ unitId: 'zhang-fei', role: 'flank', reason: '수문 둑길로 빠지는 여포군 기병 돌파를 끊는 측면 차단 역할입니다.' },
{ unitId: 'jian-yong', role: 'support', reason: '진궁의 책략과 조조군 시선을 동시에 살피며 전황 보고를 정리합니다.' },
{ unitId: 'mi-zhu', role: 'reserve', reason: '회복품과 보급선을 맡아 성문 앞 장기전을 안정시킵니다.' }
],
recommendedClasses: [
{ label: '후방 지휘', classKeys: ['lord'], reason: '유비 생존과 전후 명분이 다음 조조 이탈 흐름을 좌우합니다.' },
{ label: '성문 전열', classKeys: ['infantry'], reason: '요새 수비병과 여포 본진 사이를 안정적으로 밀어낼 수 있습니다.' },
{ label: '기병 차단', classKeys: ['spearman'], reason: '수문 둑길과 성내 도로를 타고 돌파하는 기병을 받아치기 좋습니다.' },
{ label: '책략 견제', classKeys: ['strategist'], reason: '진궁과 성루 궁병의 압박을 늦추면 성문 확보가 쉬워집니다.' },
{ label: '보급 유지', classKeys: ['quartermaster'], reason: '결전은 피해 누적이 크므로 회복품 배정과 보급 유지가 전열을 살립니다.' }
],
deploymentSlots: [
{ role: 'support', unitId: 'liu-bei', x: 3, y: 19, label: '후방 지휘' },
{ role: 'front', unitId: 'guan-yu', x: 4, y: 18, label: '성문 전열' },
{ role: 'flank', unitId: 'zhang-fei', x: 4, y: 20, label: '수문 차단' },
{ role: 'support', unitId: 'jian-yong', x: 5, y: 19, label: '책략 견제' },
{ role: 'reserve', unitId: 'mi-zhu', x: 3, y: 21, label: '보급 유지' }
],
note: '하비 결전은 성문 돌파와 수문 차단을 동시에 보는 전투입니다. 추천 배치는 관우가 중앙을 누르고 장비가 남쪽 기병을 끊으며, 유비와 책사/보급 장수가 뒤에서 전열을 지키는 형태입니다.'
},
map: thirteenthBattleMap,
units: thirteenthBattleUnits,
bonds: thirteenthBattleBonds,
mapTextureKey: 'battle-map-thirteenth',
leaderUnitId: 'xiapi-final-leader-lu-bu',
quickVictoryTurnLimit: 22,
quickVictoryTurnLimit: 35,
baseVictoryGold: 1560,
objectives: [
{
@@ -1717,20 +1786,40 @@ export const thirteenthBattleScenario: BattleScenarioDefinition = {
{
id: 'gate',
kind: 'secure-terrain',
label: '하비 성문 확보',
label: '하비 성문 돌파',
rewardGold: 560,
terrain: 'fort'
terrain: 'fort',
targetTile: { x: 27, y: 12, radius: 3 },
threatRadius: 1
},
{
id: 'sluice',
kind: 'secure-terrain',
label: '수문 포위망 장악',
rewardGold: 520,
terrain: 'fort',
targetTile: { x: 26, y: 15, radius: 3 },
threatRadius: 1
},
{
id: 'quick',
kind: 'quick-victory',
label: '22턴 이내 승리',
label: '35턴 이내 승리',
rewardGold: 420,
maxTurn: 22
maxTurn: 35
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 5', '상처약 3', '탁주 2', '하비 결전 공적 +1'],
campaignReward: {
supplies: ['콩 5', '상처약 3', '탁주 2'],
equipment: ['하비 군령패 1'],
reputation: ['하비 결전 공적 +1', '여포 토벌 명성 +1'],
recruits: ['sun-qian'],
unlockBattleId: 'fourteenth-battle-cao-break',
unlockLabel: '서주 재기 개방',
note: '성문과 수문 포위망을 함께 장악해 여포의 마지막 돌파를 꺾고, 손건이 조조의 감시망을 벗어날 문서와 길을 준비합니다.'
},
victoryPages: thirteenthBattleVictoryPages,
nextCampScene: 'CampScene'
};

View File

@@ -345,7 +345,7 @@ const sortieFlows: Record<string, SortieFlow> = {
eyebrow: '다음 전장',
title: fourteenthBattleScenario.title,
description:
'여포 무너진 뒤 조조의 경계는 더 깊어졌습니다. 손건이 합류해 서주 길목의 문서와 민심을 준비하고, 유비군은 조조의 장막 밖으로 나갈 첫 전투를 맞습니다.',
'하비 성문과 수문 포위망이 닫히며 여포 무너졌지만, 조조의 경계는 더 깊어졌습니다. 손건이 합류해 서주 길목의 문서와 민심을 준비하고, 유비군은 조조의 장막 밖으로 나갈 첫 전투를 맞습니다.',
rewardHint: `예상 보상: ${fourteenthBattleScenario.title} 개방 / 손건 합류`,
nextBattleId: fourteenthBattleScenario.id,
campaignStep: 'fourteenth-battle',

View File

@@ -1134,16 +1134,16 @@ export const thirteenthBattleIntroPages: StoryPage[] = [
bgm: 'story-dark',
chapter: '하비 결전의 명',
background: 'story-wandering',
text: '하비 외곽이 무너지자 조조는 마지막 총공세를 명했다. 성 안의 여포는 아직 강했고, 진궁은 남은 성루와 수문을 엮어 마지막 반격을 준비하고 있었다.'
text: '하비 외곽의 둑길이 무너지자 조조는 마지막 총공세를 명했다. 성 안의 여포는 성문 뒤에 기병을 모았고, 진궁은 수문 둑길과 성루 궁병을 엮어 돌파로를 남겨 두었다.'
},
{
id: 'thirteenth-brothers-before-final',
bgm: 'militia-theme',
chapter: '여포를 앞두고',
chapter: '성문과 수문',
background: 'story-wandering',
speaker: '관우',
portrait: 'guanYu',
text: '형님, 여포는 용맹하나 믿음이 얕습니다. 다만 그 칼끝이 어지러운 세상의 그림자라면, 오늘 싸움 뒤에 우리 길도 더 뚜렷해질 것입니다.'
text: '형님, 성문을 곧장 치면 여포의 기병이 수문 길로 빠져나옵니다. 제가 성문 전열을 누르겠습니다. 장비가 남쪽 둑길을 막으면 여포는 안에서 돌 길밖에 없습니다.'
},
{
id: 'thirteenth-liu-bei-resolve',
@@ -1152,7 +1152,7 @@ export const thirteenthBattleIntroPages: StoryPage[] = [
background: 'story-wandering',
speaker: '유비',
portrait: 'liuBei',
text: '조조의 명으로 싸우되, 백성의 원망을 덜고 난세의 사슬을 끊기 위해 싸운다. 여포의 끝을 보더라도 우리의 뜻까지 맡기지는 말자.'
text: '조조의 명으로 싸우되, 오늘의 칼은 백성의 원망을 덜기 위한 칼이어야 한다. 성문과 수문을 함께 닫아 피해를 줄이고, 여포의 끝을 보더라도 우리의 뜻까지 맡기지는 말자.'
},
{
id: 'thirteenth-xiapi-final-sortie',
@@ -1161,7 +1161,7 @@ export const thirteenthBattleIntroPages: StoryPage[] = [
background: 'story-wandering',
speaker: '장비',
portrait: 'zhangFei',
text: '좋습니다, 형님. 이번엔 성문을 열고 여포의 깃발까지 밀고 들어가겠습니다. 누가 함께 나설지 정해 주십시오. 대기한 자도 다음 싸움을 위해 힘을 아껴야 합니다.'
text: '좋습니다, 형님. 관우 형님이 성문을 붙들면 저는 수문 둑길을 막겠습니다. 간옹은 진궁의 수를 보게 하고, 미축은 회복품을 챙기게 하십시오. 준비되면 여포의 깃발까지 밀고 들어가겠습니다.'
}
];
@@ -1171,7 +1171,7 @@ export const thirteenthBattleVictoryPages: StoryPage[] = [
bgm: 'militia-theme',
chapter: '무너진 여포',
background: 'story-wandering',
text: '하비 성내의 마지막 저항이 꺾이고 여포의 깃발이 내려갔다. 뛰어난 무용도 믿음을 잃으면 성 하나를 지키지 못한다는 소문이 병사들 사이에 퍼졌다.'
text: '성문 전열이 무너지고 수문 둑길이 막히자 여포의 마지막 기병도 흩어졌다. 하비 성내의 저항은 꺾였고, 뛰어난 무용도 믿음을 잃으면 성 하나를 지키지 못한다는 소문이 병사들 사이에 퍼졌다.'
},
{
id: 'thirteenth-cao-cao-weighs-liu-bei',
@@ -1179,7 +1179,7 @@ export const thirteenthBattleVictoryPages: StoryPage[] = [
chapter: '칭찬과 경계',
background: 'story-wandering',
speaker: '간옹',
text: '조조는 형님의 말을 들은 뒤 오래 웃지 않았네. 여포의 운명은 끝났지만, 이제부터는 조조가 우리를 어디까지 품고 어디서부터 경계할지 살펴야 하네.'
text: '조조는 형님의 말을 들은 뒤 오래 웃지 않았네. 여포의 운명은 끝났지만, 성문과 수문을 함께 닫은 전공도 조조 눈에는 또 다른 칼로 보일 걸세.'
},
{
id: 'thirteenth-road-to-cao-break',
@@ -1188,7 +1188,7 @@ export const thirteenthBattleVictoryPages: StoryPage[] = [
background: 'story-wandering',
speaker: '유비',
portrait: 'liuBei',
text: '오늘 싸움으로 빚도 공도 쌓였다. 그러나 의로 시작한 길을 남의 장부 속 숫자로 끝낼 수는 없다. 떠날 때가 오면 망설이지 않도록 마음을 단단히 하자.'
text: '오늘 싸움으로 빚도 공도 쌓였다. 손건이 서주 길목의 문서를 준비한다 하니, 떠날 때가 오면 망설이지 않도록 마음을 단단히 하자. 의로 시작한 길을 남의 장부 속 숫자로 끝낼 수는 없다.'
}
];

View File

@@ -706,12 +706,13 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
'thirteenth-battle-xiapi-final': {
maxUnits: 5,
recommended: [
{ unitId: 'liu-bei', reason: '여포의 운명을 두고 조조 앞에서 말해야 할 주장입니다.' },
{ unitId: 'guan-yu', reason: '성문 요새의 전열을 안정적으로 밀어낼 수 있습니다.' },
{ unitId: 'zhang-fei', reason: '여포군 기병의 돌파를 받아치고 반격하는 역할입니다.' },
{ unitId: 'jian-yong', reason: '여포 처분과 조조의 시선을 둘러싼 명분 조율에 필요합니다.' }
{ unitId: 'liu-bei', reason: '여포의 끝과 조조 앞 명분을 함께 짊어진 후방 지휘관입니다.' },
{ unitId: 'guan-yu', reason: '하비 성문 요새의 전열을 정면에서 밀어낼 핵심입니다.' },
{ unitId: 'zhang-fei', reason: '수문 둑길로 빠지는 여포군 기병의 돌파를 는 역할입니다.' },
{ unitId: 'jian-yong', reason: '진궁의 책략과 조조의 시선을 살피며 전황 보고를 맡습니다.' },
{ unitId: 'mi-zhu', reason: '결전 중 누적 피해를 회복품과 보급선으로 버티게 합니다.' }
],
note: '하비 결전은 전열과 돌파가 강해야 하지만, 전후 조조와의 긴장을 생각하면 책사 한 명을 챙기는 편성이 좋습니다.'
note: '하비 결전은 성문 돌파와 수문 차단을 동시에 보는 싸움입니다. 관우로 중앙을 누르고, 장비로 남쪽 기병을 막으며, 유비와 책사/보급 장수가 뒤를 받치는 편성이 안정적입니다.'
},
'fourteenth-battle-cao-break': {
maxUnits: 6,