Add Guangzong camp battle and camp events

This commit is contained in:
2026-06-22 23:44:05 +09:00
parent 97f8efc2e1
commit 421b95011e
10 changed files with 803 additions and 57 deletions

View File

@@ -8,6 +8,10 @@ import {
secondBattleUnits,
secondBattleVictoryPages,
thirdBattleBonds,
fourthBattleBonds,
fourthBattleMap,
fourthBattleUnits,
fourthBattleVictoryPages,
thirdBattleMap,
thirdBattleUnits,
thirdBattleVictoryPages,
@@ -17,7 +21,11 @@ import {
type UnitData
} from './scenario';
export type BattleScenarioId = 'first-battle-zhuo-commandery' | 'second-battle-yellow-turban-pursuit' | 'third-battle-guangzong-road';
export type BattleScenarioId =
| 'first-battle-zhuo-commandery'
| 'second-battle-yellow-turban-pursuit'
| 'third-battle-guangzong-road'
| 'fourth-battle-guangzong-camp';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -215,12 +223,66 @@ export const thirdBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fourthBattleScenario: BattleScenarioDefinition = {
id: 'fourth-battle-guangzong-camp',
title: '광종 본영전',
victoryConditionLabel: '장각 격파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'황건 본영의 중심에는 장각이 있습니다. 장각을 격파하면 광종의 황건 세력은 무너집니다.',
'요새와 숲의 궁병이 진입로를 막고 있습니다. 측면의 기병과 중앙 수비병을 나누어 상대하십시오.',
'16턴 이내에 승리하면 황건적 토벌의 공적이 크게 오릅니다.'
],
map: fourthBattleMap,
units: fourthBattleUnits,
bonds: fourthBattleBonds,
mapTextureKey: 'battle-map-fourth',
leaderUnitId: 'guangzong-main-leader-zhang-jue',
quickVictoryTurnLimit: 16,
baseVictoryGold: 700,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '장각 격파',
rewardGold: 420,
unitId: 'guangzong-main-leader-zhang-jue'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 180,
unitId: 'liu-bei'
},
{
id: 'fort',
kind: 'secure-terrain',
label: '광종 본영 확보',
rewardGold: 260,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '16턴 이내 승리',
rewardGold: 220,
maxTurn: 16
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 2', '상처약 1', '탁주 1', '황건 토벌 공적 +1'],
victoryPages: fourthBattleVictoryPages,
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,
'third-battle-guangzong-road': thirdBattleScenario
'third-battle-guangzong-road': thirdBattleScenario,
'fourth-battle-guangzong-camp': fourthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];