Add Fu Pass entry chapter

This commit is contained in:
2026-06-23 09:14:41 +09:00
parent 17cbaab55d
commit 8349d1044f
11 changed files with 1260 additions and 34 deletions

View File

@@ -31,6 +31,10 @@ import {
nineteenthBattleMap,
nineteenthBattleUnits,
nineteenthBattleVictoryPages,
twentyEighthBattleBonds,
twentyEighthBattleMap,
twentyEighthBattleUnits,
twentyEighthBattleVictoryPages,
tenthBattleBonds,
tenthBattleMap,
tenthBattleUnits,
@@ -140,7 +144,8 @@ export type BattleScenarioId =
| 'twenty-fourth-battle-guiyang-persuasion'
| 'twenty-fifth-battle-wuling-mountain-road'
| 'twenty-sixth-battle-changsha-veteran'
| 'twenty-seventh-battle-yizhou-relief-road';
| 'twenty-seventh-battle-yizhou-relief-road'
| 'twenty-eighth-battle-fu-pass-entry';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -1701,6 +1706,69 @@ export const twentySeventhBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const twentyEighthBattleScenario: BattleScenarioDefinition = {
id: 'twenty-eighth-battle-fu-pass-entry',
title: '부수관 진입전',
victoryConditionLabel: '고패 퇴각',
defeatConditionLabel: '유비 또는 제갈량 퇴각',
openingObjectiveLines: [
'익주 원군로를 연 유비군은 부수관의 첫 문 앞에 섰습니다. 고패는 좁은 협곡과 성루 궁병을 이용해 원군의 명분을 관문 앞에서 묶으려 합니다.',
'이번 전투부터 방통이 출전 후보에 들어옵니다. 와룡과 봉추를 함께 세우면 계책은 강해지지만, 전열과 보급 선택이 더 날카로워집니다.',
'유비와 제갈량을 지키며 고패를 물러나게 하면 익주 내부 인재 법정이 군영에 합류합니다.'
],
map: twentyEighthBattleMap,
units: twentyEighthBattleUnits,
bonds: twentyEighthBattleBonds,
mapTextureKey: 'battle-map-twenty-eighth',
leaderUnitId: 'fupass-leader-gao-pei',
quickVictoryTurnLimit: 37,
baseVictoryGold: 3980,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '고패 퇴각',
rewardGold: 2520,
unitId: 'fupass-leader-gao-pei'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 740,
unitId: 'liu-bei'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1020,
unitId: 'zhuge-liang'
},
{
id: 'fu-pass-village',
kind: 'secure-terrain',
label: '부수관 마을 안정',
rewardGold: 1220,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '37턴 이내 승리',
rewardGold: 960,
maxTurn: 37
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
],
itemRewards: ['콩 13', '상처약 9', '탁주 6', '부수관 보급표 +1', '법정 합류'],
victoryPages: twentyEighthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -1730,7 +1798,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'twenty-fourth-battle-guiyang-persuasion': twentyFourthBattleScenario,
'twenty-fifth-battle-wuling-mountain-road': twentyFifthBattleScenario,
'twenty-sixth-battle-changsha-veteran': twentySixthBattleScenario,
'twenty-seventh-battle-yizhou-relief-road': twentySeventhBattleScenario
'twenty-seventh-battle-yizhou-relief-road': twentySeventhBattleScenario,
'twenty-eighth-battle-fu-pass-entry': twentyEighthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];