1122 lines
36 KiB
TypeScript
1122 lines
36 KiB
TypeScript
import {
|
|
firstBattleBonds,
|
|
fifteenthBattleBonds,
|
|
fifteenthBattleMap,
|
|
fifteenthBattleUnits,
|
|
fifteenthBattleVictoryPages,
|
|
fourteenthBattleBonds,
|
|
fourteenthBattleMap,
|
|
fourteenthBattleUnits,
|
|
fourteenthBattleVictoryPages,
|
|
eighthBattleBonds,
|
|
eighthBattleMap,
|
|
eighthBattleUnits,
|
|
eighthBattleVictoryPages,
|
|
eighteenthBattleBonds,
|
|
eighteenthBattleMap,
|
|
eighteenthBattleUnits,
|
|
eighteenthBattleVictoryPages,
|
|
eleventhBattleBonds,
|
|
eleventhBattleMap,
|
|
eleventhBattleUnits,
|
|
eleventhBattleVictoryPages,
|
|
firstBattleMap,
|
|
firstBattleUnits,
|
|
firstBattleVictoryPages,
|
|
ninthBattleBonds,
|
|
ninthBattleMap,
|
|
ninthBattleUnits,
|
|
ninthBattleVictoryPages,
|
|
tenthBattleBonds,
|
|
tenthBattleMap,
|
|
tenthBattleUnits,
|
|
tenthBattleVictoryPages,
|
|
thirteenthBattleBonds,
|
|
thirteenthBattleMap,
|
|
thirteenthBattleUnits,
|
|
thirteenthBattleVictoryPages,
|
|
twelfthBattleBonds,
|
|
twelfthBattleMap,
|
|
twelfthBattleUnits,
|
|
twelfthBattleVictoryPages,
|
|
fifthBattleBonds,
|
|
fifthBattleMap,
|
|
fifthBattleUnits,
|
|
fifthBattleVictoryPages,
|
|
secondBattleBonds,
|
|
secondBattleMap,
|
|
secondBattleUnits,
|
|
secondBattleVictoryPages,
|
|
seventhBattleBonds,
|
|
seventhBattleMap,
|
|
seventhBattleUnits,
|
|
seventhBattleVictoryPages,
|
|
sixthBattleBonds,
|
|
sixthBattleMap,
|
|
sixthBattleUnits,
|
|
sixthBattleVictoryPages,
|
|
thirdBattleBonds,
|
|
fourthBattleBonds,
|
|
fourthBattleMap,
|
|
fourthBattleUnits,
|
|
fourthBattleVictoryPages,
|
|
sixteenthBattleBonds,
|
|
sixteenthBattleMap,
|
|
sixteenthBattleUnits,
|
|
sixteenthBattleVictoryPages,
|
|
seventeenthBattleBonds,
|
|
seventeenthBattleMap,
|
|
seventeenthBattleUnits,
|
|
seventeenthBattleVictoryPages,
|
|
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'
|
|
| 'third-battle-guangzong-road'
|
|
| 'fourth-battle-guangzong-camp'
|
|
| 'fifth-battle-sishui-vanguard'
|
|
| 'sixth-battle-jieqiao-relief'
|
|
| 'seventh-battle-xuzhou-rescue'
|
|
| 'eighth-battle-xiaopei-supply-road'
|
|
| 'ninth-battle-xuzhou-gate-night-raid'
|
|
| 'tenth-battle-xuzhou-breakout'
|
|
| 'eleventh-battle-xudu-refuge-road'
|
|
| 'twelfth-battle-xiapi-outer-siege'
|
|
| 'thirteenth-battle-xiapi-final'
|
|
| 'fourteenth-battle-cao-break'
|
|
| 'fifteenth-battle-yuan-refuge-road'
|
|
| 'sixteenth-battle-liu-biao-refuge'
|
|
| 'seventeenth-battle-wolong-visit-road'
|
|
| 'eighteenth-battle-bowang-ambush';
|
|
|
|
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
|
|
|
|
export type BattleObjectiveDefinition = {
|
|
id: string;
|
|
kind: BattleObjectiveKind;
|
|
label: string;
|
|
rewardGold: number;
|
|
unitId?: string;
|
|
terrain?: string;
|
|
maxTurn?: number;
|
|
};
|
|
|
|
export type BattleDefeatConditionDefinition = {
|
|
kind: 'unit-defeated';
|
|
unitId: string;
|
|
};
|
|
|
|
export type BattleScenarioDefinition = {
|
|
id: BattleScenarioId;
|
|
title: string;
|
|
victoryConditionLabel: string;
|
|
defeatConditionLabel: string;
|
|
openingObjectiveLines: string[];
|
|
map: BattleMap;
|
|
units: UnitData[];
|
|
bonds: BattleBond[];
|
|
mapTextureKey: string;
|
|
leaderUnitId: string;
|
|
quickVictoryTurnLimit: number;
|
|
baseVictoryGold: number;
|
|
objectives: BattleObjectiveDefinition[];
|
|
defeatConditions: BattleDefeatConditionDefinition[];
|
|
itemRewards: string[];
|
|
victoryPages: StoryPage[];
|
|
nextCampScene: string;
|
|
};
|
|
|
|
export const firstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'first-battle-zhuo-commandery',
|
|
title: '탁현의 전투',
|
|
victoryConditionLabel: '두령 한석 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'두령 한석을 격파하면 황건적의 전열이 무너집니다.',
|
|
'유비가 퇴각하면 의용군은 전투를 지속할 수 없습니다.',
|
|
'마을을 확보하고 8턴 안에 승리하면 추가 보상이 붙습니다.'
|
|
],
|
|
map: firstBattleMap,
|
|
units: firstBattleUnits,
|
|
bonds: firstBattleBonds,
|
|
mapTextureKey: 'battle-map-first',
|
|
leaderUnitId: 'rebel-leader',
|
|
quickVictoryTurnLimit: 8,
|
|
baseVictoryGold: 300,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '황건 두령 격파',
|
|
rewardGold: 200,
|
|
unitId: 'rebel-leader'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 100,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '마을 확보',
|
|
rewardGold: 150,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '8턴 안에 승리',
|
|
rewardGold: 120,
|
|
maxTurn: 8
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 1', '탁주 1', '의용군 명성 +1'],
|
|
victoryPages: firstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const secondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'second-battle-yellow-turban-pursuit',
|
|
title: '황건 잔당 추격',
|
|
victoryConditionLabel: '두령 한석 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'황건 잔당이 북쪽 마을로 달아났습니다. 두령 한석을 격파하면 적의 퇴로가 무너집니다.',
|
|
'마을 주변에 적 위협이 남아 있으면 보상이 줄어듭니다. 길목의 습격조를 먼저 정리하십시오.',
|
|
'12턴 이내에 승리하면 의용군의 추격전 명성이 오릅니다.'
|
|
],
|
|
map: secondBattleMap,
|
|
units: secondBattleUnits,
|
|
bonds: secondBattleBonds,
|
|
mapTextureKey: 'battle-map-second',
|
|
leaderUnitId: 'pursuit-leader-han-seok',
|
|
quickVictoryTurnLimit: 12,
|
|
baseVictoryGold: 420,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '두령 한석 격파',
|
|
rewardGold: 260,
|
|
unitId: 'pursuit-leader-han-seok'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 120,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '북쪽 마을 확보',
|
|
rewardGold: 180,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '12턴 이내 승리',
|
|
rewardGold: 150,
|
|
maxTurn: 12
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '탁주 1', '의용군 명성 +2'],
|
|
victoryPages: secondBattleVictoryPages,
|
|
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 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 fifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifth-battle-sishui-vanguard',
|
|
title: '사수관 전초전',
|
|
victoryConditionLabel: '호진 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'반동탁 연합으로 향하는 길목을 동탁군 장수 호진이 막고 있습니다. 호진을 격파하면 사수관 앞 전초 진지가 흔들립니다.',
|
|
'중앙 길은 빠르지만 궁병과 기병의 반격을 받기 쉽습니다. 숲길 척후를 처리하고 요새 주변을 차근히 압박하십시오.',
|
|
'14턴 이내에 승리하면 공손찬 진영에서 세 형제의 무공이 더 크게 알려집니다.'
|
|
],
|
|
map: fifthBattleMap,
|
|
units: fifthBattleUnits,
|
|
bonds: fifthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifth',
|
|
leaderUnitId: 'sishui-leader-hu-zhen',
|
|
quickVictoryTurnLimit: 14,
|
|
baseVictoryGold: 760,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '호진 격파',
|
|
rewardGold: 460,
|
|
unitId: 'sishui-leader-hu-zhen'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 190,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'fort',
|
|
kind: 'secure-terrain',
|
|
label: '사수관 전초 요새 확보',
|
|
rewardGold: 280,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '14턴 이내 승리',
|
|
rewardGold: 230,
|
|
maxTurn: 14
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 1', '탁주 1', '반동탁 공적 +1'],
|
|
victoryPages: fifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixth-battle-jieqiao-relief',
|
|
title: '계교 원군로',
|
|
victoryConditionLabel: '곡의 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'공손찬의 보급로를 원소군 교위 곡의가 끊으려 합니다. 곡의를 격파하면 계교로 향하는 길을 다시 열 수 있습니다.',
|
|
'강가의 궁병과 측면 기병이 동시에 압박합니다. 숲길 척후를 먼저 밀어내고 중앙 길을 확보하십시오.',
|
|
'15턴 이내에 승리하면 공손찬 진영에서 세 형제의 신뢰가 커집니다.'
|
|
],
|
|
map: sixthBattleMap,
|
|
units: sixthBattleUnits,
|
|
bonds: sixthBattleBonds,
|
|
mapTextureKey: 'battle-map-sixth',
|
|
leaderUnitId: 'jieqiao-leader-qu-yi',
|
|
quickVictoryTurnLimit: 15,
|
|
baseVictoryGold: 860,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '곡의 격파',
|
|
rewardGold: 520,
|
|
unitId: 'jieqiao-leader-qu-yi'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 210,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '계교 보급촌 확보',
|
|
rewardGold: 300,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '15턴 이내 승리',
|
|
rewardGold: 250,
|
|
maxTurn: 15
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 2', '탁주 1', '공손찬 신뢰 +1'],
|
|
victoryPages: sixthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const seventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'seventh-battle-xuzhou-rescue',
|
|
title: '서주 구원전',
|
|
victoryConditionLabel: '하후돈 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조군 선봉 하후돈이 서주 피난로와 마을을 압박하고 있습니다. 하후돈을 격파하면 서주 성문까지 길을 열 수 있습니다.',
|
|
'강가 궁병은 자리를 지키고, 기병은 길을 따라 빠르게 추격합니다. 마을을 확보하며 선봉을 단계적으로 끊어 내십시오.',
|
|
'16턴 이내에 승리하면 도겸과 서주 백성의 신뢰가 크게 오릅니다.'
|
|
],
|
|
map: seventhBattleMap,
|
|
units: seventhBattleUnits,
|
|
bonds: seventhBattleBonds,
|
|
mapTextureKey: 'battle-map-seventh',
|
|
leaderUnitId: 'xuzhou-leader-xiahou-dun',
|
|
quickVictoryTurnLimit: 16,
|
|
baseVictoryGold: 960,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '하후돈 격파',
|
|
rewardGold: 580,
|
|
unitId: 'xuzhou-leader-xiahou-dun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 230,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '서주 피난촌 확보',
|
|
rewardGold: 330,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '16턴 이내 승리',
|
|
rewardGold: 270,
|
|
maxTurn: 16
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 2', '탁주 1', '서주 민심 +1'],
|
|
victoryPages: seventhBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const eighthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'eighth-battle-xiaopei-supply-road',
|
|
title: '소패 보급로 방위전',
|
|
victoryConditionLabel: '고순 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'여포군의 척후와 습격병이 소패 보급로를 흔들고 있습니다. 고순을 격파하면 서주의 첫 방위선을 지킬 수 있습니다.',
|
|
'기병은 길을 타고 빠르게 파고들고, 궁병은 강 건너와 언덕에서 사거리를 잡습니다. 마을과 창고 지형을 이용해 버티십시오.',
|
|
'18턴 이내 승리하면 서주 보급망과 새 합류 무장의 명성이 크게 오릅니다.'
|
|
],
|
|
map: eighthBattleMap,
|
|
units: eighthBattleUnits,
|
|
bonds: eighthBattleBonds,
|
|
mapTextureKey: 'battle-map-eighth',
|
|
leaderUnitId: 'xiaopei-leader-gao-shun',
|
|
quickVictoryTurnLimit: 18,
|
|
baseVictoryGold: 1080,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '고순 격파',
|
|
rewardGold: 640,
|
|
unitId: 'xiaopei-leader-gao-shun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 250,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '소패 보급촌 확보',
|
|
rewardGold: 360,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 300,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 3', '상처약 2', '탁주 1', '서주 보급망 +1'],
|
|
victoryPages: eighthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const ninthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'ninth-battle-xuzhou-gate-night-raid',
|
|
title: '서주 성문 야습',
|
|
victoryConditionLabel: '조표 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조표가 성문 수비병을 움직이고 여포군 기병이 밤길을 타고 접근합니다. 조표를 격파하면 성문을 다시 장악할 수 있습니다.',
|
|
'성벽 궁병은 높은 곳을 지키고, 여포군 기병은 길을 따라 빠르게 파고듭니다. 마을과 성문 지형을 이용해 전열을 끊어야 합니다.',
|
|
'18턴 이내 성문을 안정시키면 서주 내부 불안을 잠시나마 눌러 둘 수 있습니다.'
|
|
],
|
|
map: ninthBattleMap,
|
|
units: ninthBattleUnits,
|
|
bonds: ninthBattleBonds,
|
|
mapTextureKey: 'battle-map-ninth',
|
|
leaderUnitId: 'xuzhou-leader-cao-bao',
|
|
quickVictoryTurnLimit: 18,
|
|
baseVictoryGold: 1160,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조표 격파',
|
|
rewardGold: 700,
|
|
unitId: 'xuzhou-leader-cao-bao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 280,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'fort',
|
|
kind: 'secure-terrain',
|
|
label: '서주 성문 확보',
|
|
rewardGold: 400,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 320,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 3', '상처약 2', '탁주 1', '서주 성문 수비 +1'],
|
|
victoryPages: ninthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const tenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'tenth-battle-xuzhou-breakout',
|
|
title: '서주 탈출전',
|
|
victoryConditionLabel: '송헌 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'서주는 여포에게 넘어갔고, 유비군은 성 밖으로 빠져나갈 길을 열어야 합니다. 송헌을 격파하면 추격대의 지휘가 무너집니다.',
|
|
'여포군 기병은 길을 따라 빠르게 압박하고, 성내 배반병은 숲과 마을 근처에서 퇴로를 끊으려 합니다.',
|
|
'서쪽 진영과 마을을 확보한 채 20턴 안에 돌파하면 조조 의탁으로 이어질 병력과 보급을 더 많이 보존합니다.'
|
|
],
|
|
map: tenthBattleMap,
|
|
units: tenthBattleUnits,
|
|
bonds: tenthBattleBonds,
|
|
mapTextureKey: 'battle-map-tenth',
|
|
leaderUnitId: 'xuzhou-escape-leader-song-xian',
|
|
quickVictoryTurnLimit: 20,
|
|
baseVictoryGold: 1240,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '송헌 격파',
|
|
rewardGold: 760,
|
|
unitId: 'xuzhou-escape-leader-song-xian'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 300,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '피난 마을 확보',
|
|
rewardGold: 420,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '20턴 이내 돌파',
|
|
rewardGold: 340,
|
|
maxTurn: 20
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 4', '상처약 2', '탁주 1', '서주 피난민 보호 +1'],
|
|
victoryPages: tenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const eleventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'eleventh-battle-xudu-refuge-road',
|
|
title: '허도 입성로',
|
|
victoryConditionLabel: '기령 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조는 유비군을 받아들이는 대신 허도 입성로를 어지럽히는 원술 잔군을 치라는 명을 내립니다. 기령을 격파하면 길이 열립니다.',
|
|
'원술군 기병은 길을 따라 돌파하고, 약탈병은 숲과 마을을 끼고 보급을 노립니다. 조조군의 감시 속에서 군율을 증명해야 합니다.',
|
|
'마을을 확보하고 18턴 안에 승리하면 조조 의탁 이후에도 병력과 민심을 더 많이 보존합니다.'
|
|
],
|
|
map: eleventhBattleMap,
|
|
units: eleventhBattleUnits,
|
|
bonds: eleventhBattleBonds,
|
|
mapTextureKey: 'battle-map-eleventh',
|
|
leaderUnitId: 'xudu-road-leader-ji-ling',
|
|
quickVictoryTurnLimit: 18,
|
|
baseVictoryGold: 1320,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '기령 격파',
|
|
rewardGold: 820,
|
|
unitId: 'xudu-road-leader-ji-ling'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 320,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'village',
|
|
kind: 'secure-terrain',
|
|
label: '허도 길목 마을 확보',
|
|
rewardGold: 460,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 360,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 4', '상처약 3', '탁주 1', '조조군 군문 통행 +1'],
|
|
victoryPages: eleventhBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twelfthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twelfth-battle-xiapi-outer-siege',
|
|
title: '하비 외곽전',
|
|
victoryConditionLabel: '장료 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조는 하비 포위망의 남쪽 둑길을 유비군에게 맡깁니다. 장료를 격파하면 여포군 선봉은 성 안으로 물러납니다.',
|
|
'강줄기와 둑길이 전장을 나눕니다. 여포군 기병은 길을 타고 돌파하고, 성루 궁병과 진궁은 후방에서 압박합니다.',
|
|
'둑길 진영을 확보하고 20턴 안에 승리하면 조조 휘하에서의 공적과 유비군의 독자 보급을 함께 지킬 수 있습니다.'
|
|
],
|
|
map: twelfthBattleMap,
|
|
units: twelfthBattleUnits,
|
|
bonds: twelfthBattleBonds,
|
|
mapTextureKey: 'battle-map-twelfth',
|
|
leaderUnitId: 'xiapi-leader-zhang-liao',
|
|
quickVictoryTurnLimit: 20,
|
|
baseVictoryGold: 1440,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '장료 격파',
|
|
rewardGold: 900,
|
|
unitId: 'xiapi-leader-zhang-liao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 340,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'camp',
|
|
kind: 'secure-terrain',
|
|
label: '하비 둑길 진영 확보',
|
|
rewardGold: 500,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '20턴 이내 승리',
|
|
rewardGold: 390,
|
|
maxTurn: 20
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 4', '상처약 3', '탁주 2', '하비 포위 공적 +1'],
|
|
victoryPages: twelfthBattleVictoryPages,
|
|
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 fourteenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fourteenth-battle-cao-break',
|
|
title: '서주 재기',
|
|
victoryConditionLabel: '차주 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조의 감시대가 서주 관문과 역참을 틀어쥐고 있습니다. 차주를 격파하면 유비군은 조조 휘하를 벗어날 첫 발판을 세웁니다.',
|
|
'조조군 기병은 길을 따라 추격하고, 궁병은 관문 뒤에서 사거리를 잡습니다. 손건의 문서와 간옹의 말로 민심을 흔들며 길목을 열어야 합니다.',
|
|
'서주 관문을 확보하고 22턴 안에 승리하면 원소 진영으로 향할 명분과 보급을 더 많이 보존합니다.'
|
|
],
|
|
map: fourteenthBattleMap,
|
|
units: fourteenthBattleUnits,
|
|
bonds: fourteenthBattleBonds,
|
|
mapTextureKey: 'battle-map-fourteenth',
|
|
leaderUnitId: 'cao-break-leader-che-zhou',
|
|
quickVictoryTurnLimit: 22,
|
|
baseVictoryGold: 1660,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '차주 격파',
|
|
rewardGold: 1040,
|
|
unitId: 'cao-break-leader-che-zhou'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 380,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'gate',
|
|
kind: 'secure-terrain',
|
|
label: '서주 관문 확보',
|
|
rewardGold: 600,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '22턴 이내 승리',
|
|
rewardGold: 460,
|
|
maxTurn: 22
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 5', '상처약 3', '탁주 2', '손건 문서 +1'],
|
|
victoryPages: fourteenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fifteenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifteenth-battle-yuan-refuge-road',
|
|
title: '원소 의탁로',
|
|
victoryConditionLabel: '채양 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'유비군은 조조의 추격을 피해 원소 진영으로 향합니다. 채양을 격파하면 북상로의 압박을 끊고 접선지로 나아갈 수 있습니다.',
|
|
'강줄기와 고갯길 사이로 추격 기병이 파고들고, 궁병은 접선지를 향한 길을 끊으려 합니다. 전열을 세우면서도 손건과 간옹의 책략 지원을 살려야 합니다.',
|
|
'원소 사자가 기다리는 북동쪽 접선지를 확보하고 24턴 안에 승리하면 다음 의탁 장을 더 유리하게 시작합니다.'
|
|
],
|
|
map: fifteenthBattleMap,
|
|
units: fifteenthBattleUnits,
|
|
bonds: fifteenthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifteenth',
|
|
leaderUnitId: 'yuan-refuge-leader-cai-yang',
|
|
quickVictoryTurnLimit: 24,
|
|
baseVictoryGold: 1760,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '채양 격파',
|
|
rewardGold: 1120,
|
|
unitId: 'yuan-refuge-leader-cai-yang'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 400,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'rendezvous',
|
|
kind: 'secure-terrain',
|
|
label: '원소 사자 접선지 확보',
|
|
rewardGold: 640,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '24턴 이내 승리',
|
|
rewardGold: 500,
|
|
maxTurn: 24
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 6', '상처약 3', '탁주 2', '원소 접선 문서 +1'],
|
|
victoryPages: fifteenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixteenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixteenth-battle-liu-biao-refuge',
|
|
title: '유표 의탁로',
|
|
victoryConditionLabel: '조인 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'원소 진영을 떠난 유비군은 형주의 유표에게 의탁하기 위해 남쪽 길을 엽니다. 조운이 합류했지만 조조군 추격대도 형주 관문 앞에 따라붙었습니다.',
|
|
'중앙 강줄기와 숲길은 행군을 늦추고, 동쪽 관문은 수비병과 궁병이 지키고 있습니다. 조운의 기동력과 책사들의 지원을 함께 활용하십시오.',
|
|
'조인을 격파하고 형주 관문을 확보하십시오. 25턴 안에 승리하면 유비군의 의탁 명분과 군자금을 더 단단히 챙길 수 있습니다.'
|
|
],
|
|
map: sixteenthBattleMap,
|
|
units: sixteenthBattleUnits,
|
|
bonds: sixteenthBattleBonds,
|
|
mapTextureKey: 'battle-map-sixteenth',
|
|
leaderUnitId: 'liu-biao-road-leader-cao-ren',
|
|
quickVictoryTurnLimit: 25,
|
|
baseVictoryGold: 1880,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조인 격파',
|
|
rewardGold: 1200,
|
|
unitId: 'liu-biao-road-leader-cao-ren'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 420,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'jingzhou-gate',
|
|
kind: 'secure-terrain',
|
|
label: '형주 관문 확보',
|
|
rewardGold: 680,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '25턴 이내 승리',
|
|
rewardGold: 540,
|
|
maxTurn: 25
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 6', '상처약 4', '탁주 2', '형주 접선 문서 +1'],
|
|
victoryPages: sixteenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const seventeenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'seventeenth-battle-wolong-visit-road',
|
|
title: '융중 방문로',
|
|
victoryConditionLabel: '채순 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'형주에서 모은 와룡의 단서를 따라 유비군은 융중으로 향합니다. 그러나 산길에는 채씨 가병이 먼저 길목을 잡고 있습니다.',
|
|
'숲과 언덕, 좁은 물길이 많은 전장입니다. 조운의 기동력과 책사들의 후원을 살려 산길의 궁병과 감시병을 끊어 내십시오.',
|
|
'채순을 격파하고 융중 초가로 향하는 길을 확보하십시오. 26턴 안에 승리하면 제갈량 영입의 명분과 보급을 더 단단히 챙길 수 있습니다.'
|
|
],
|
|
map: seventeenthBattleMap,
|
|
units: seventeenthBattleUnits,
|
|
bonds: seventeenthBattleBonds,
|
|
mapTextureKey: 'battle-map-seventeenth',
|
|
leaderUnitId: 'wolong-road-leader-cai-xun',
|
|
quickVictoryTurnLimit: 26,
|
|
baseVictoryGold: 1960,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '채순 격파',
|
|
rewardGold: 1260,
|
|
unitId: 'wolong-road-leader-cai-xun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 440,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'longzhong-cottage',
|
|
kind: 'secure-terrain',
|
|
label: '융중 초가 길 확보',
|
|
rewardGold: 720,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '26턴 이내 승리',
|
|
rewardGold: 560,
|
|
maxTurn: 26
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 6', '상처약 4', '탁주 2', '와룡의 서찰 +1'],
|
|
victoryPages: seventeenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const eighteenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'eighteenth-battle-bowang-ambush',
|
|
title: '박망파 매복전',
|
|
victoryConditionLabel: '하후돈 퇴각',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조군 선봉 하후돈이 신야로 향합니다. 제갈량은 박망파의 숲길과 좁은 물길을 이용해 적의 속도를 끊으려 합니다.',
|
|
'숲길 궁병과 기병이 동시에 압박하지만, 강줄기와 매복 지형을 이용하면 조조군 전열을 갈라낼 수 있습니다. 제갈량의 책략과 조운의 기동을 함께 활용하십시오.',
|
|
'하후돈을 퇴각시키고 박망파의 길목을 지키십시오. 27턴 안에 승리하면 강동과 손잡을 시간을 더 벌 수 있습니다.'
|
|
],
|
|
map: eighteenthBattleMap,
|
|
units: eighteenthBattleUnits,
|
|
bonds: eighteenthBattleBonds,
|
|
mapTextureKey: 'battle-map-eighteenth',
|
|
leaderUnitId: 'bowang-leader-xiahou-dun',
|
|
quickVictoryTurnLimit: 27,
|
|
baseVictoryGold: 2080,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '하후돈 퇴각',
|
|
rewardGold: 1340,
|
|
unitId: 'bowang-leader-xiahou-dun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 460,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'ambush-village',
|
|
kind: 'secure-terrain',
|
|
label: '박망파 매복지 확보',
|
|
rewardGold: 760,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '27턴 이내 승리',
|
|
rewardGold: 600,
|
|
maxTurn: 27
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 7', '상처약 4', '탁주 2', '강동 풍문 +1'],
|
|
victoryPages: eighteenthBattleVictoryPages,
|
|
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,
|
|
'fourth-battle-guangzong-camp': fourthBattleScenario,
|
|
'fifth-battle-sishui-vanguard': fifthBattleScenario,
|
|
'sixth-battle-jieqiao-relief': sixthBattleScenario,
|
|
'seventh-battle-xuzhou-rescue': seventhBattleScenario,
|
|
'eighth-battle-xiaopei-supply-road': eighthBattleScenario,
|
|
'ninth-battle-xuzhou-gate-night-raid': ninthBattleScenario,
|
|
'tenth-battle-xuzhou-breakout': tenthBattleScenario,
|
|
'eleventh-battle-xudu-refuge-road': eleventhBattleScenario,
|
|
'twelfth-battle-xiapi-outer-siege': twelfthBattleScenario,
|
|
'thirteenth-battle-xiapi-final': thirteenthBattleScenario,
|
|
'fourteenth-battle-cao-break': fourteenthBattleScenario,
|
|
'fifteenth-battle-yuan-refuge-road': fifteenthBattleScenario,
|
|
'sixteenth-battle-liu-biao-refuge': sixteenthBattleScenario,
|
|
'seventeenth-battle-wolong-visit-road': seventeenthBattleScenario,
|
|
'eighteenth-battle-bowang-ambush': eighteenthBattleScenario
|
|
};
|
|
|
|
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
|
|
|
|
export function getBattleScenario(id: string | undefined) {
|
|
if (id && id in battleScenarios) {
|
|
return battleScenarios[id as BattleScenarioId];
|
|
}
|
|
return defaultBattleScenario;
|
|
}
|