1813 lines
58 KiB
TypeScript
1813 lines
58 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,
|
|
nineteenthBattleBonds,
|
|
nineteenthBattleMap,
|
|
nineteenthBattleUnits,
|
|
nineteenthBattleVictoryPages,
|
|
twentyEighthBattleBonds,
|
|
twentyEighthBattleMap,
|
|
twentyEighthBattleUnits,
|
|
twentyEighthBattleVictoryPages,
|
|
tenthBattleBonds,
|
|
tenthBattleMap,
|
|
tenthBattleUnits,
|
|
tenthBattleVictoryPages,
|
|
thirteenthBattleBonds,
|
|
thirteenthBattleMap,
|
|
thirteenthBattleUnits,
|
|
thirteenthBattleVictoryPages,
|
|
twentyFirstBattleBonds,
|
|
twentyFirstBattleMap,
|
|
twentyFirstBattleUnits,
|
|
twentyFirstBattleVictoryPages,
|
|
twentySecondBattleBonds,
|
|
twentySecondBattleMap,
|
|
twentySecondBattleUnits,
|
|
twentySecondBattleVictoryPages,
|
|
twentyThirdBattleBonds,
|
|
twentyThirdBattleMap,
|
|
twentyThirdBattleUnits,
|
|
twentyThirdBattleVictoryPages,
|
|
twentyFourthBattleBonds,
|
|
twentyFourthBattleMap,
|
|
twentyFourthBattleUnits,
|
|
twentyFourthBattleVictoryPages,
|
|
twentyFifthBattleBonds,
|
|
twentyFifthBattleMap,
|
|
twentyFifthBattleUnits,
|
|
twentyFifthBattleVictoryPages,
|
|
twentySixthBattleBonds,
|
|
twentySixthBattleMap,
|
|
twentySixthBattleUnits,
|
|
twentySixthBattleVictoryPages,
|
|
twentySeventhBattleBonds,
|
|
twentySeventhBattleMap,
|
|
twentySeventhBattleUnits,
|
|
twentySeventhBattleVictoryPages,
|
|
twentiethBattleBonds,
|
|
twentiethBattleMap,
|
|
twentiethBattleUnits,
|
|
twentiethBattleVictoryPages,
|
|
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'
|
|
| 'nineteenth-battle-changban-refuge'
|
|
| 'twentieth-battle-jiangdong-envoy'
|
|
| 'twenty-first-battle-red-cliffs-vanguard'
|
|
| 'twenty-second-battle-red-cliffs-fire'
|
|
| 'twenty-third-battle-jingzhou-south-entry'
|
|
| 'twenty-fourth-battle-guiyang-persuasion'
|
|
| 'twenty-fifth-battle-wuling-mountain-road'
|
|
| 'twenty-sixth-battle-changsha-veteran'
|
|
| 'twenty-seventh-battle-yizhou-relief-road'
|
|
| 'twenty-eighth-battle-fu-pass-entry';
|
|
|
|
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 nineteenthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'nineteenth-battle-changban-refuge',
|
|
title: '장판파 피난로',
|
|
victoryConditionLabel: '조순 퇴각',
|
|
defeatConditionLabel: '유비 또는 조운 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조군 호표기가 피난 행렬을 따라 장판파로 들이칩니다. 백성을 버리지 않으려면 남쪽 피난로와 다리목을 동시에 지켜야 합니다.',
|
|
'조운은 넓은 길을 오가며 흩어진 병력을 모을 수 있고, 장비는 다리목을 막아 추격 기병을 늦추기 좋습니다. 제갈량과 손건은 전후 강동 사절 명분을 정리합니다.',
|
|
'조순을 퇴각시키고 유비와 조운을 지키십시오. 피난민 마을을 확보하면 다음 강동 사절 준비가 안정됩니다.'
|
|
],
|
|
map: nineteenthBattleMap,
|
|
units: nineteenthBattleUnits,
|
|
bonds: nineteenthBattleBonds,
|
|
mapTextureKey: 'battle-map-nineteenth',
|
|
leaderUnitId: 'changban-leader-cao-chun',
|
|
quickVictoryTurnLimit: 28,
|
|
baseVictoryGold: 2220,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조순 퇴각',
|
|
rewardGold: 1440,
|
|
unitId: 'changban-leader-cao-chun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 480,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhao-yun',
|
|
kind: 'keep-unit-alive',
|
|
label: '조운 생존',
|
|
rewardGold: 620,
|
|
unitId: 'zhao-yun'
|
|
},
|
|
{
|
|
id: 'refugee-village',
|
|
kind: 'secure-terrain',
|
|
label: '피난민 마을 확보',
|
|
rewardGold: 820,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '28턴 이내 승리',
|
|
rewardGold: 620,
|
|
maxTurn: 28
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhao-yun' }
|
|
],
|
|
itemRewards: ['콩 7', '상처약 5', '탁주 2', '피난로 지도 +1', '강동 풍문 +1'],
|
|
victoryPages: nineteenthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentiethBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twentieth-battle-jiangdong-envoy',
|
|
title: '강동 사절로',
|
|
victoryConditionLabel: '문빙 퇴각',
|
|
defeatConditionLabel: '유비, 제갈량 또는 손건 퇴각',
|
|
openingObjectiveLines: [
|
|
'장판파를 벗어난 유비군은 강동과 손잡을 사절을 보내야 합니다. 문빙의 추격대가 강나루를 닫기 전에 길을 열어야 합니다.',
|
|
'이번 전투는 제갈량과 손건을 지키는 것이 핵심입니다. 전열이 다리목을 붙들고, 기동 장수가 추격 기병을 끊어야 사절 문서가 강동으로 향할 수 있습니다.',
|
|
'문빙을 퇴각시키고 강나루를 확보하십시오. 제갈량과 손건이 살아남으면 적벽대전으로 향할 외교 명분이 완성됩니다.'
|
|
],
|
|
map: twentiethBattleMap,
|
|
units: twentiethBattleUnits,
|
|
bonds: twentiethBattleBonds,
|
|
mapTextureKey: 'battle-map-twentieth',
|
|
leaderUnitId: 'envoy-road-leader-wen-pin',
|
|
quickVictoryTurnLimit: 29,
|
|
baseVictoryGold: 2380,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '문빙 퇴각',
|
|
rewardGold: 1540,
|
|
unitId: 'envoy-road-leader-wen-pin'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 760,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'sun-qian',
|
|
kind: 'keep-unit-alive',
|
|
label: '손건 생존',
|
|
rewardGold: 620,
|
|
unitId: 'sun-qian'
|
|
},
|
|
{
|
|
id: 'river-port',
|
|
kind: 'secure-terrain',
|
|
label: '강나루 확보',
|
|
rewardGold: 860,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '29턴 이내 승리',
|
|
rewardGold: 640,
|
|
maxTurn: 29
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' },
|
|
{ kind: 'unit-defeated', unitId: 'sun-qian' }
|
|
],
|
|
itemRewards: ['콩 8', '상처약 5', '탁주 3', '강동 사절 문서 +1', '화공 논의 +1'],
|
|
victoryPages: twentiethBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentyFirstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-first-battle-red-cliffs-vanguard',
|
|
title: '적벽 전초전',
|
|
victoryConditionLabel: '채모 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'강동 회담이 결전으로 기울자 조조군 수군 선봉이 적벽 포구를 시험합니다. 첫 전선을 빼앗기면 손유 동맹의 사기가 크게 흔들립니다.',
|
|
'강 위의 전장은 강줄기와 배다리가 길을 나눕니다. 기동 장수로 강안 기병을 끊고, 전열 장수로 포구 수비대를 밀어내야 합니다.',
|
|
'채모를 퇴각시키고 제갈량을 지키십시오. 강동 포구를 확보하면 화공을 논할 발판이 마련됩니다.'
|
|
],
|
|
map: twentyFirstBattleMap,
|
|
units: twentyFirstBattleUnits,
|
|
bonds: twentyFirstBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-first',
|
|
leaderUnitId: 'redcliff-vanguard-leader-cai-mao',
|
|
quickVictoryTurnLimit: 30,
|
|
baseVictoryGold: 2540,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '채모 퇴각',
|
|
rewardGold: 1660,
|
|
unitId: 'redcliff-vanguard-leader-cai-mao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 520,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 800,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'red-cliffs-port',
|
|
kind: 'secure-terrain',
|
|
label: '강동 포구 확보',
|
|
rewardGold: 900,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '30턴 이내 승리',
|
|
rewardGold: 680,
|
|
maxTurn: 30
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 8', '상처약 6', '탁주 3', '화공 논의 +1', '동맹 군의 기록 +1'],
|
|
victoryPages: twentyFirstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentySecondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-second-battle-red-cliffs-fire',
|
|
title: '적벽 화공전',
|
|
victoryConditionLabel: '조조 본선 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'황개의 거짓 항복선이 조조 함대로 향합니다. 조조군 감시선이 화선을 알아차리면 적벽의 불길은 시작되기도 전에 꺼집니다.',
|
|
'강 위에는 연환선과 배다리가 얽혀 있습니다. 전열 장수로 갑판 보병을 묶고, 기동 장수로 강안 기병을 끊어 화선 접안로를 열어야 합니다.',
|
|
'제갈량을 지키고 조조 본선을 퇴각시키십시오. 화선 준비 지점을 확보하면 적벽대전의 결정적 승리를 얻을 수 있습니다.'
|
|
],
|
|
map: twentySecondBattleMap,
|
|
units: twentySecondBattleUnits,
|
|
bonds: twentySecondBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-second',
|
|
leaderUnitId: 'redcliff-fire-leader-cao-cao',
|
|
quickVictoryTurnLimit: 31,
|
|
baseVictoryGold: 2840,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조조 본선 퇴각',
|
|
rewardGold: 1900,
|
|
unitId: 'redcliff-fire-leader-cao-cao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 560,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 860,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'fire-ship-landing',
|
|
kind: 'secure-terrain',
|
|
label: '화선 접안로 확보',
|
|
rewardGold: 980,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '31턴 이내 승리',
|
|
rewardGold: 720,
|
|
maxTurn: 31
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 9', '상처약 6', '탁주 4', '화공 전과 +1', '동남풍 기록 +1'],
|
|
victoryPages: twentySecondBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentyThirdBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-third-battle-jingzhou-south-entry',
|
|
title: '형주 남부 진입전',
|
|
victoryConditionLabel: '형도영 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'적벽의 불길로 조조의 기세가 꺾인 지금, 유비군은 형주 남부의 길과 민심을 열어야 합니다.',
|
|
'형도영의 가병은 영릉으로 이어지는 길목과 마을을 붙잡고 있습니다. 성채만 몰아치면 마을이 흔들리니 보급 거점을 함께 지키십시오.',
|
|
'유비와 제갈량을 지키며 형도영을 물리치고, 남부 마을을 안정시키면 마량이 군영에 합류합니다.'
|
|
],
|
|
map: twentyThirdBattleMap,
|
|
units: twentyThirdBattleUnits,
|
|
bonds: twentyThirdBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-third',
|
|
leaderUnitId: 'jing-south-leader-xing-daorong',
|
|
quickVictoryTurnLimit: 32,
|
|
baseVictoryGold: 3020,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '형도영 퇴각',
|
|
rewardGold: 2000,
|
|
unitId: 'jing-south-leader-xing-daorong'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 600,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 900,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'southern-village',
|
|
kind: 'secure-terrain',
|
|
label: '남부 마을 안정',
|
|
rewardGold: 980,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '32턴 이내 승리',
|
|
rewardGold: 760,
|
|
maxTurn: 32
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 9', '상처약 7', '탁주 4', '형주 진입 문서 +1', '마량 합류'],
|
|
victoryPages: twentyThirdBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentyFourthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-fourth-battle-guiyang-persuasion',
|
|
title: '계양 설득전',
|
|
victoryConditionLabel: '조범 항복',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'형주 남부의 첫 길목을 연 유비군은 계양으로 향합니다. 이번 전투는 성채를 불태우는 싸움이 아니라 조범의 마음을 굽히는 싸움입니다.',
|
|
'마량의 서신과 제갈량의 계책이 맞물리려면 마을을 안정시키고, 성채 주변 친위대를 물리쳐야 합니다.',
|
|
'유비와 제갈량을 지키며 조범을 항복시키면, 형주의 문사 이적이 군영에 합류합니다.'
|
|
],
|
|
map: twentyFourthBattleMap,
|
|
units: twentyFourthBattleUnits,
|
|
bonds: twentyFourthBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-fourth',
|
|
leaderUnitId: 'guiyang-leader-zhao-fan',
|
|
quickVictoryTurnLimit: 33,
|
|
baseVictoryGold: 3180,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조범 항복',
|
|
rewardGold: 2100,
|
|
unitId: 'guiyang-leader-zhao-fan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 620,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 880,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'guiyang-village',
|
|
kind: 'secure-terrain',
|
|
label: '계양 마을 안정',
|
|
rewardGold: 1040,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '33턴 이내 승리',
|
|
rewardGold: 800,
|
|
maxTurn: 33
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 10', '상처약 7', '탁주 4', '계양 설득 문서 +1', '이적 합류'],
|
|
victoryPages: twentyFourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentyFifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-fifth-battle-wuling-mountain-road',
|
|
title: '무릉 산길 확보전',
|
|
victoryConditionLabel: '김선 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'계양이 열린 뒤 유비군은 무릉의 산길로 들어섭니다. 좁은 길과 흩어진 마을 때문에 단순 돌파만으로는 근거지를 얻을 수 없습니다.',
|
|
'마량과 이적은 무릉의 내부 동요를 읽고, 김선 아래 장수 공지가 백성 피해를 염려한다고 보고합니다.',
|
|
'유비와 제갈량을 지키며 김선을 물러나게 하고 산길 마을을 안정시키면, 공지가 군영에 합류합니다.'
|
|
],
|
|
map: twentyFifthBattleMap,
|
|
units: twentyFifthBattleUnits,
|
|
bonds: twentyFifthBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-fifth',
|
|
leaderUnitId: 'wuling-leader-jin-xuan',
|
|
quickVictoryTurnLimit: 34,
|
|
baseVictoryGold: 3360,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '김선 퇴각',
|
|
rewardGold: 2200,
|
|
unitId: 'wuling-leader-jin-xuan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 640,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 900,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'wuling-village',
|
|
kind: 'secure-terrain',
|
|
label: '무릉 마을 안정',
|
|
rewardGold: 1080,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '34턴 이내 승리',
|
|
rewardGold: 840,
|
|
maxTurn: 34
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 11', '상처약 8', '탁주 4', '무릉 산길 지도 +1', '공지 합류'],
|
|
victoryPages: twentyFifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentySixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-sixth-battle-changsha-veteran',
|
|
title: '장사 노장 대면전',
|
|
victoryConditionLabel: '한현 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'무릉 산길을 연 유비군은 장사로 향합니다. 장사에는 노장 황충과 의심 많은 태수 한현이 버티고 있습니다.',
|
|
'이번 전투는 황충을 욕보이지 않고 한현의 의심을 꺾어야 합니다. 마을을 안정시키고 성문 전열을 흔들어 장사 내부의 길을 여십시오.',
|
|
'유비와 제갈량을 지키며 한현을 물러나게 하면 황충과 위연이 군영에 합류합니다.'
|
|
],
|
|
map: twentySixthBattleMap,
|
|
units: twentySixthBattleUnits,
|
|
bonds: twentySixthBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-sixth',
|
|
leaderUnitId: 'changsha-leader-han-xuan',
|
|
quickVictoryTurnLimit: 35,
|
|
baseVictoryGold: 3560,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '한현 퇴각',
|
|
rewardGold: 2320,
|
|
unitId: 'changsha-leader-han-xuan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 660,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 940,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'changsha-village',
|
|
kind: 'secure-terrain',
|
|
label: '장사 마을 안정',
|
|
rewardGold: 1120,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '35턴 이내 승리',
|
|
rewardGold: 880,
|
|
maxTurn: 35
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 12', '상처약 8', '탁주 5', '장사 사절 문서 +1', '황충 합류', '위연 합류'],
|
|
victoryPages: twentySixthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const twentySeventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-seventh-battle-yizhou-relief-road',
|
|
title: '익주 원군로',
|
|
victoryConditionLabel: '양회 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'장사까지 안정시킨 유비군은 유장의 원군 요청을 따라 익주로 향합니다. 원군로에는 양회의 전초 병력이 관문과 마을을 함께 틀어쥐고 있습니다.',
|
|
'이번 전투는 길목의 마을을 지키면서 관문 전열을 무너뜨려야 합니다. 황충과 위연까지 합류한 큰 로스터에서 산길, 돌파, 책략 역할을 직접 골라 출전하십시오.',
|
|
'유비와 제갈량을 지키며 양회를 물러나게 하면 봉추 방통이 군영에 합류합니다.'
|
|
],
|
|
map: twentySeventhBattleMap,
|
|
units: twentySeventhBattleUnits,
|
|
bonds: twentySeventhBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-seventh',
|
|
leaderUnitId: 'yizhou-leader-yang-huai',
|
|
quickVictoryTurnLimit: 36,
|
|
baseVictoryGold: 3760,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '양회 퇴각',
|
|
rewardGold: 2420,
|
|
unitId: 'yizhou-leader-yang-huai'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 700,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 980,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'yizhou-village',
|
|
kind: 'secure-terrain',
|
|
label: '익주 마을 안정',
|
|
rewardGold: 1160,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '36턴 이내 승리',
|
|
rewardGold: 920,
|
|
maxTurn: 36
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 12', '상처약 9', '탁주 5', '익주 길목 지도 +1', '방통 합류'],
|
|
victoryPages: twentySeventhBattleVictoryPages,
|
|
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> = {
|
|
'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,
|
|
'nineteenth-battle-changban-refuge': nineteenthBattleScenario,
|
|
'twentieth-battle-jiangdong-envoy': twentiethBattleScenario,
|
|
'twenty-first-battle-red-cliffs-vanguard': twentyFirstBattleScenario,
|
|
'twenty-second-battle-red-cliffs-fire': twentySecondBattleScenario,
|
|
'twenty-third-battle-jingzhou-south-entry': twentyThirdBattleScenario,
|
|
'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-eighth-battle-fu-pass-entry': twentyEighthBattleScenario
|
|
};
|
|
|
|
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
|
|
|
|
export function getBattleScenario(id: string | undefined) {
|
|
if (id && id in battleScenarios) {
|
|
return battleScenarios[id as BattleScenarioId];
|
|
}
|
|
return defaultBattleScenario;
|
|
}
|