Add Xiapi final sortie chapter

This commit is contained in:
2026-06-23 03:43:53 +09:00
parent 450842bd28
commit 3cdbbe8d5a
12 changed files with 905 additions and 23 deletions

View File

@@ -19,6 +19,10 @@ import {
tenthBattleMap,
tenthBattleUnits,
tenthBattleVictoryPages,
thirteenthBattleBonds,
thirteenthBattleMap,
thirteenthBattleUnits,
thirteenthBattleVictoryPages,
twelfthBattleBonds,
twelfthBattleMap,
twelfthBattleUnits,
@@ -65,7 +69,8 @@ export type BattleScenarioId =
| 'ninth-battle-xuzhou-gate-night-raid'
| 'tenth-battle-xuzhou-breakout'
| 'eleventh-battle-xudu-refuge-road'
| 'twelfth-battle-xiapi-outer-siege';
| 'twelfth-battle-xiapi-outer-siege'
| 'thirteenth-battle-xiapi-final';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -740,6 +745,59 @@ export const twelfthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirteenthBattleScenario: BattleScenarioDefinition = {
id: 'thirteenth-battle-xiapi-final',
title: '하비 결전',
victoryConditionLabel: '여포 격파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'여포가 하비 성 안에서 마지막 돌파를 준비합니다. 여포를 격파하면 서주를 뒤흔든 난전도 끝을 맞습니다.',
'진궁은 성루 궁병과 수문 수비를 이용해 접근로를 끊으려 합니다. 기병 돌파대와 성문 수비대를 나누어 상대하십시오.',
'성문 요새를 확보하고 22턴 안에 승리하면 조조 휘하에서도 유비군의 전공과 독자 보급 명분을 모두 남길 수 있습니다.'
],
map: thirteenthBattleMap,
units: thirteenthBattleUnits,
bonds: thirteenthBattleBonds,
mapTextureKey: 'battle-map-thirteenth',
leaderUnitId: 'xiapi-final-leader-lu-bu',
quickVictoryTurnLimit: 22,
baseVictoryGold: 1560,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '여포 격파',
rewardGold: 980,
unitId: 'xiapi-final-leader-lu-bu'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 360,
unitId: 'liu-bei'
},
{
id: 'gate',
kind: 'secure-terrain',
label: '하비 성문 확보',
rewardGold: 560,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '22턴 이내 승리',
rewardGold: 420,
maxTurn: 22
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 5', '상처약 3', '탁주 2', '하비 결전 공적 +1'],
victoryPages: thirteenthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -754,7 +812,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'ninth-battle-xuzhou-gate-night-raid': ninthBattleScenario,
'tenth-battle-xuzhou-breakout': tenthBattleScenario,
'eleventh-battle-xudu-refuge-road': eleventhBattleScenario,
'twelfth-battle-xiapi-outer-siege': twelfthBattleScenario
'twelfth-battle-xiapi-outer-siege': twelfthBattleScenario,
'thirteenth-battle-xiapi-final': thirteenthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];