Add third campaign battle path

This commit is contained in:
2026-06-22 23:22:51 +09:00
parent e06b8dab58
commit 68e1b10cb4
10 changed files with 650 additions and 23 deletions

View File

@@ -7,13 +7,17 @@ import {
secondBattleMap,
secondBattleUnits,
secondBattleVictoryPages,
thirdBattleBonds,
thirdBattleMap,
thirdBattleUnits,
thirdBattleVictoryPages,
type BattleBond,
type BattleMap,
type StoryPage,
type UnitData
} from './scenario';
export type BattleScenarioId = 'first-battle-zhuo-commandery' | 'second-battle-yellow-turban-pursuit';
export type BattleScenarioId = 'first-battle-zhuo-commandery' | 'second-battle-yellow-turban-pursuit' | 'third-battle-guangzong-road';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -158,11 +162,65 @@ export const secondBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirdBattleScenario: BattleScenarioDefinition = {
id: 'third-battle-guangzong-road',
title: '광종 구원로',
victoryConditionLabel: '전령 마원 격파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'황건 전령 마원이 광종 본대로 향하고 있습니다. 마원을 격파하면 적의 연락망이 끊어집니다.',
'강가 길목과 요새 주변의 궁병을 방치하면 전선이 오래 묶입니다. 지형 보정을 살펴 진군하십시오.',
'14턴 이내에 승리하면 광종 구원로 확보 명성이 오릅니다.'
],
map: thirdBattleMap,
units: thirdBattleUnits,
bonds: thirdBattleBonds,
mapTextureKey: 'battle-map-third',
leaderUnitId: 'guangzong-leader-ma-yuan',
quickVictoryTurnLimit: 14,
baseVictoryGold: 520,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '전령 마원 격파',
rewardGold: 320,
unitId: 'guangzong-leader-ma-yuan'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 140,
unitId: 'liu-bei'
},
{
id: 'fort',
kind: 'secure-terrain',
label: '강가 요새 확보',
rewardGold: 220,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '14턴 이내 승리',
rewardGold: 180,
maxTurn: 14
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 2', '상처약 1', '의용군 명성 +3'],
victoryPages: thirdBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
'first-battle-zhuo-commandery': firstBattleScenario,
'second-battle-yellow-turban-pursuit': secondBattleScenario
'second-battle-yellow-turban-pursuit': secondBattleScenario,
'third-battle-guangzong-road': thirdBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];