2983 lines
97 KiB
TypeScript
2983 lines
97 KiB
TypeScript
import {
|
|
firstBattleBonds,
|
|
fifteenthBattleBonds,
|
|
fifteenthBattleMap,
|
|
fifteenthBattleUnits,
|
|
fifteenthBattleVictoryPages,
|
|
fourteenthBattleBonds,
|
|
fourteenthBattleMap,
|
|
fourteenthBattleUnits,
|
|
fourteenthBattleVictoryPages,
|
|
eighthBattleBonds,
|
|
eighthBattleMap,
|
|
eighthBattleUnits,
|
|
eighthBattleVictoryPages,
|
|
eighteenthBattleBonds,
|
|
eighteenthBattleMap,
|
|
eighteenthBattleUnits,
|
|
eighteenthBattleVictoryPages,
|
|
eleventhBattleBonds,
|
|
eleventhBattleMap,
|
|
eleventhBattleUnits,
|
|
eleventhBattleVictoryPages,
|
|
fortiethBattleBonds,
|
|
fortiethBattleMap,
|
|
fortiethBattleUnits,
|
|
fortiethBattleVictoryPages,
|
|
fortyFirstBattleBonds,
|
|
fortyFirstBattleMap,
|
|
fortyFirstBattleUnits,
|
|
fortyFirstBattleVictoryPages,
|
|
fortySecondBattleBonds,
|
|
fortySecondBattleMap,
|
|
fortySecondBattleUnits,
|
|
fortySecondBattleVictoryPages,
|
|
fortyThirdBattleBonds,
|
|
fortyThirdBattleMap,
|
|
fortyThirdBattleUnits,
|
|
fortyThirdBattleVictoryPages,
|
|
fortyFourthBattleBonds,
|
|
fortyFourthBattleMap,
|
|
fortyFourthBattleUnits,
|
|
fortyFourthBattleVictoryPages,
|
|
fortyFifthBattleBonds,
|
|
fortyFifthBattleMap,
|
|
fortyFifthBattleUnits,
|
|
fortyFifthBattleVictoryPages,
|
|
firstBattleMap,
|
|
firstBattleUnits,
|
|
firstBattleVictoryPages,
|
|
ninthBattleBonds,
|
|
ninthBattleMap,
|
|
ninthBattleUnits,
|
|
ninthBattleVictoryPages,
|
|
nineteenthBattleBonds,
|
|
nineteenthBattleMap,
|
|
nineteenthBattleUnits,
|
|
nineteenthBattleVictoryPages,
|
|
twentyEighthBattleBonds,
|
|
twentyEighthBattleMap,
|
|
twentyEighthBattleUnits,
|
|
twentyEighthBattleVictoryPages,
|
|
twentyNinthBattleBonds,
|
|
twentyNinthBattleMap,
|
|
twentyNinthBattleUnits,
|
|
twentyNinthBattleVictoryPages,
|
|
tenthBattleBonds,
|
|
tenthBattleMap,
|
|
tenthBattleUnits,
|
|
tenthBattleVictoryPages,
|
|
thirtyFifthBattleBonds,
|
|
thirtyFifthBattleMap,
|
|
thirtyFifthBattleUnits,
|
|
thirtyFifthBattleVictoryPages,
|
|
thirtyEighthBattleBonds,
|
|
thirtyEighthBattleMap,
|
|
thirtyEighthBattleUnits,
|
|
thirtyEighthBattleVictoryPages,
|
|
thirtyNinthBattleBonds,
|
|
thirtyNinthBattleMap,
|
|
thirtyNinthBattleUnits,
|
|
thirtyNinthBattleVictoryPages,
|
|
thirtyFourthBattleBonds,
|
|
thirtyFourthBattleMap,
|
|
thirtyFourthBattleUnits,
|
|
thirtyFourthBattleVictoryPages,
|
|
thirtyFirstBattleBonds,
|
|
thirtyFirstBattleMap,
|
|
thirtyFirstBattleUnits,
|
|
thirtyFirstBattleVictoryPages,
|
|
thirtySecondBattleBonds,
|
|
thirtySecondBattleMap,
|
|
thirtySecondBattleUnits,
|
|
thirtySecondBattleVictoryPages,
|
|
thirtyThirdBattleBonds,
|
|
thirtyThirdBattleMap,
|
|
thirtyThirdBattleUnits,
|
|
thirtyThirdBattleVictoryPages,
|
|
thirtySixthBattleBonds,
|
|
thirtySixthBattleMap,
|
|
thirtySixthBattleUnits,
|
|
thirtySixthBattleVictoryPages,
|
|
thirtySeventhBattleBonds,
|
|
thirtySeventhBattleMap,
|
|
thirtySeventhBattleUnits,
|
|
thirtySeventhBattleVictoryPages,
|
|
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,
|
|
thirtiethBattleBonds,
|
|
thirtiethBattleMap,
|
|
thirtiethBattleUnits,
|
|
thirtiethBattleVictoryPages,
|
|
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'
|
|
| 'twenty-ninth-battle-luo-outer-wall'
|
|
| 'thirtieth-battle-luofeng-ambush'
|
|
| 'thirty-first-battle-luo-main-gate'
|
|
| 'thirty-second-battle-mianzhu-gate'
|
|
| 'thirty-third-battle-chengdu-surrender'
|
|
| 'thirty-fourth-battle-jiameng-pass'
|
|
| 'thirty-fifth-battle-yangping-scout'
|
|
| 'thirty-sixth-battle-dingjun-vanguard'
|
|
| 'thirty-seventh-battle-hanzhong-decisive'
|
|
| 'thirty-eighth-battle-jing-defense'
|
|
| 'thirty-ninth-battle-fan-castle-vanguard'
|
|
| 'fortieth-battle-han-river-flood'
|
|
| 'forty-first-battle-fan-castle-siege'
|
|
| 'forty-second-battle-jing-rear-crisis'
|
|
| 'forty-third-battle-gongan-collapse'
|
|
| 'forty-fourth-battle-maicheng-isolation'
|
|
| 'forty-fifth-battle-yiling-vanguard';
|
|
|
|
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 twentyNinthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'twenty-ninth-battle-luo-outer-wall',
|
|
title: '낙성 외곽전',
|
|
victoryConditionLabel: '장임 퇴각',
|
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'부수관을 넘어선 유비군은 낙성 외곽 방어선에 도착했습니다. 장임은 성 밖 마을과 고개를 이용해 시간을 벌고 있습니다.',
|
|
'이번 전투부터 법정도 출전 후보입니다. 익주 내부 사정을 아는 법정을 데려가면 오의와 성문 장수들을 설득할 실마리가 커집니다.',
|
|
'유비와 제갈량을 지키며 장임을 물러나게 하십시오. 마을을 안정시키면 오의가 낙성으로 향하는 길을 열 수 있습니다.'
|
|
],
|
|
map: twentyNinthBattleMap,
|
|
units: twentyNinthBattleUnits,
|
|
bonds: twentyNinthBattleBonds,
|
|
mapTextureKey: 'battle-map-twenty-ninth',
|
|
leaderUnitId: 'luo-leader-zhang-ren',
|
|
quickVictoryTurnLimit: 38,
|
|
baseVictoryGold: 4200,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '장임 퇴각',
|
|
rewardGold: 2640,
|
|
unitId: 'luo-leader-zhang-ren'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 780,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 1080,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'luo-village',
|
|
kind: 'secure-terrain',
|
|
label: '낙성 외곽 마을 안정',
|
|
rewardGold: 1280,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '38턴 이내 승리',
|
|
rewardGold: 1000,
|
|
maxTurn: 38
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
|
],
|
|
itemRewards: ['콩 14', '상처약 10', '탁주 6', '낙성 외곽 지도 +1', '오의 합류'],
|
|
victoryPages: twentyNinthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtiethBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirtieth-battle-luofeng-ambush',
|
|
title: '낙봉파 매복전',
|
|
victoryConditionLabel: '장임 매복 격파',
|
|
defeatConditionLabel: '유비 또는 방통 퇴각',
|
|
openingObjectiveLines: [
|
|
'낙성 본성으로 가는 빠른 길인 낙봉파에 장임의 매복이 숨어 있습니다. 좁은 길과 고지 궁병을 동시에 살피며 진군해야 합니다.',
|
|
'오의가 새로 출전 후보에 들어왔습니다. 낙성의 길을 아는 오의를 데려가면 매복 위치를 읽기 쉽지만, 여섯 명 제한은 더 빡빡해집니다.',
|
|
'유비와 방통을 지키며 장임의 매복을 격파하십시오. 낙봉파를 넘으면 낙성 본성 공략이 열립니다.'
|
|
],
|
|
map: thirtiethBattleMap,
|
|
units: thirtiethBattleUnits,
|
|
bonds: thirtiethBattleBonds,
|
|
mapTextureKey: 'battle-map-thirtieth',
|
|
leaderUnitId: 'luofeng-leader-zhang-ren',
|
|
quickVictoryTurnLimit: 39,
|
|
baseVictoryGold: 4440,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '장임 매복 격파',
|
|
rewardGold: 2760,
|
|
unitId: 'luofeng-leader-zhang-ren'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 820,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'pang-tong',
|
|
kind: 'keep-unit-alive',
|
|
label: '방통 생존',
|
|
rewardGold: 1180,
|
|
unitId: 'pang-tong'
|
|
},
|
|
{
|
|
id: 'luofeng-village',
|
|
kind: 'secure-terrain',
|
|
label: '낙봉파 길목 확보',
|
|
rewardGold: 1320,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '39턴 이내 승리',
|
|
rewardGold: 1040,
|
|
maxTurn: 39
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'pang-tong' }
|
|
],
|
|
itemRewards: ['콩 15', '상처약 11', '탁주 6', '낙봉파 정찰표 +1', '봉추 생환 +1'],
|
|
victoryPages: thirtiethBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyFirstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-first-battle-luo-main-gate',
|
|
title: '낙성 본성 공략',
|
|
victoryConditionLabel: '장임 본성 격파',
|
|
defeatConditionLabel: '유비 또는 방통 퇴각',
|
|
openingObjectiveLines: [
|
|
'낙성 본성은 높은 성벽과 좁은 성문으로 버티고 있습니다. 성문을 무너뜨리되 백성 피해를 줄여야 다음 익주 진입이 쉬워집니다.',
|
|
'엄안이 성 안의 노장으로 버티고 있습니다. 황충, 법정, 오의를 데려가면 성벽 궁병과 항복 설득을 함께 압박하기 좋습니다.',
|
|
'유비와 방통을 지키며 장임을 격파하십시오. 낙성이 열리면 익주 심부와 성도 압박으로 나아갑니다.'
|
|
],
|
|
map: thirtyFirstBattleMap,
|
|
units: thirtyFirstBattleUnits,
|
|
bonds: thirtyFirstBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-first',
|
|
leaderUnitId: 'luo-main-leader-zhang-ren',
|
|
quickVictoryTurnLimit: 42,
|
|
baseVictoryGold: 4720,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '장임 본성 격파',
|
|
rewardGold: 2920,
|
|
unitId: 'luo-main-leader-zhang-ren'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 900,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'pang-tong',
|
|
kind: 'keep-unit-alive',
|
|
label: '방통 생존',
|
|
rewardGold: 1220,
|
|
unitId: 'pang-tong'
|
|
},
|
|
{
|
|
id: 'main-gate',
|
|
kind: 'secure-terrain',
|
|
label: '낙성 성문 확보',
|
|
rewardGold: 1480,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '42턴 이내 승리',
|
|
rewardGold: 1120,
|
|
maxTurn: 42
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'pang-tong' }
|
|
],
|
|
itemRewards: ['콩 16', '상처약 12', '탁주 7', '낙성 항복 권고문 +1', '엄안 합류'],
|
|
victoryPages: thirtyFirstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtySecondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-second-battle-mianzhu-gate',
|
|
title: '면죽관 압박전',
|
|
victoryConditionLabel: '이엄 수비선 격파',
|
|
defeatConditionLabel: '유비 또는 엄안 퇴각',
|
|
openingObjectiveLines: [
|
|
'면죽관은 성도 앞 마지막 완충 지대입니다. 관문을 장악하면 유장의 항복 권고가 현실적인 압박으로 바뀝니다.',
|
|
'엄안은 익주 장수들의 마음을 흔드는 첫 증거입니다. 엄안을 지키며 이엄에게 유비군의 군율과 예우를 보여 주십시오.',
|
|
'이엄을 격파하되 마을과 창고를 안정시키면 성도 항복 권고의 명분이 강해집니다.'
|
|
],
|
|
map: thirtySecondBattleMap,
|
|
units: thirtySecondBattleUnits,
|
|
bonds: thirtySecondBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-second',
|
|
leaderUnitId: 'chengdu-leader-li-yan',
|
|
quickVictoryTurnLimit: 45,
|
|
baseVictoryGold: 5040,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '이엄 수비선 격파',
|
|
rewardGold: 3120,
|
|
unitId: 'chengdu-leader-li-yan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 960,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'yan-yan',
|
|
kind: 'keep-unit-alive',
|
|
label: '엄안 생존',
|
|
rewardGold: 1260,
|
|
unitId: 'yan-yan'
|
|
},
|
|
{
|
|
id: 'mianzhu-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '면죽관 창고 확보',
|
|
rewardGold: 1540,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '45턴 이내 승리',
|
|
rewardGold: 1180,
|
|
maxTurn: 45
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'yan-yan' }
|
|
],
|
|
itemRewards: ['콩 18', '상처약 13', '탁주 7', '성도 항복 권고문 +1', '이엄 합류'],
|
|
victoryPages: thirtySecondBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyThirdBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-third-battle-chengdu-surrender',
|
|
title: '성도 항복 권고전',
|
|
victoryConditionLabel: '황권 방어선 격파',
|
|
defeatConditionLabel: '유비 또는 이엄 퇴각',
|
|
openingObjectiveLines: [
|
|
'성도 외곽의 마지막 방어선입니다. 황권을 물리치면 유장의 항복 권고가 실제 선택지로 바뀝니다.',
|
|
'이엄은 방금 합류한 익주 장수로, 이번 전장에서 유비군의 군율을 증언하는 핵심 인물입니다. 이엄을 반드시 지키십시오.',
|
|
'성도 창고와 마을을 안정시키면 항복 조건에 대한 신뢰가 커지고, 익주 확보 이후의 수습이 쉬워집니다.'
|
|
],
|
|
map: thirtyThirdBattleMap,
|
|
units: thirtyThirdBattleUnits,
|
|
bonds: thirtyThirdBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-third',
|
|
leaderUnitId: 'chengdu-final-leader-huang-quan',
|
|
quickVictoryTurnLimit: 48,
|
|
baseVictoryGold: 5340,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '황권 방어선 격파',
|
|
rewardGold: 3360,
|
|
unitId: 'chengdu-final-leader-huang-quan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 980,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'li-yan',
|
|
kind: 'keep-unit-alive',
|
|
label: '이엄 생존',
|
|
rewardGold: 1320,
|
|
unitId: 'li-yan'
|
|
},
|
|
{
|
|
id: 'chengdu-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '성도 창고 확보',
|
|
rewardGold: 1620,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '48턴 이내 승리',
|
|
rewardGold: 1240,
|
|
maxTurn: 48
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'li-yan' }
|
|
],
|
|
itemRewards: ['콩 20', '상처약 15', '탁주 8', '익주 안정문 +1', '황권 합류'],
|
|
victoryPages: thirtyThirdBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyFourthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-fourth-battle-jiameng-pass',
|
|
title: '가맹관 마초 대면전',
|
|
victoryConditionLabel: '마초 돌격 저지',
|
|
defeatConditionLabel: '유비 또는 황권 퇴각',
|
|
openingObjectiveLines: [
|
|
'가맹관은 익주와 한중을 잇는 목입니다. 이 길을 열면 촉한 건국 이후 북방 전선의 첫 기반이 마련됩니다.',
|
|
'황권은 이번 전장이 첫 출전입니다. 한중 길과 익주 내정의 균형을 잡으려면 황권을 지켜야 합니다.',
|
|
'마초의 돌격을 받아내고 방덕의 친위대를 제압하면, 서량 기병을 유비군으로 끌어들일 말길이 열립니다.'
|
|
],
|
|
map: thirtyFourthBattleMap,
|
|
units: thirtyFourthBattleUnits,
|
|
bonds: thirtyFourthBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-fourth',
|
|
leaderUnitId: 'jiameng-leader-ma-chao',
|
|
quickVictoryTurnLimit: 50,
|
|
baseVictoryGold: 5660,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '마초 돌격 저지',
|
|
rewardGold: 3560,
|
|
unitId: 'jiameng-leader-ma-chao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1000,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'huang-quan',
|
|
kind: 'keep-unit-alive',
|
|
label: '황권 생존',
|
|
rewardGold: 1360,
|
|
unitId: 'huang-quan'
|
|
},
|
|
{
|
|
id: 'jiameng-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '가맹관 보급 창고 확보',
|
|
rewardGold: 1680,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '50턴 이내 승리',
|
|
rewardGold: 1300,
|
|
maxTurn: 50
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'huang-quan' }
|
|
],
|
|
itemRewards: ['콩 22', '상처약 16', '탁주 8', '서량 기병 전술서 +1', '마초 합류'],
|
|
victoryPages: thirtyFourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyFifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-fifth-battle-yangping-scout',
|
|
title: '양평관 정찰전',
|
|
victoryConditionLabel: '양평관 선봉 격파',
|
|
defeatConditionLabel: '유비 또는 마초 퇴각',
|
|
openingObjectiveLines: [
|
|
'양평관은 한중 전선으로 들어가는 첫 관문입니다. 관문을 빼앗기보다 지형과 보급로를 확인하는 것이 목표입니다.',
|
|
'마초는 이번 전장이 합류 후 첫 출전입니다. 서량 기병의 속도를 활용하되 유비군의 전열과 너무 멀어지지 않게 해야 합니다.',
|
|
'장위의 선봉과 염포의 책략대를 물리치고 관문 창고를 확보하면, 흩어진 서량 기병과 마대가 합류할 길이 열립니다.'
|
|
],
|
|
map: thirtyFifthBattleMap,
|
|
units: thirtyFifthBattleUnits,
|
|
bonds: thirtyFifthBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-fifth',
|
|
leaderUnitId: 'yangping-leader-zhang-wei',
|
|
quickVictoryTurnLimit: 52,
|
|
baseVictoryGold: 5900,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '양평관 선봉 격파',
|
|
rewardGold: 3720,
|
|
unitId: 'yangping-leader-zhang-wei'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1000,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'ma-chao',
|
|
kind: 'keep-unit-alive',
|
|
label: '마초 생존',
|
|
rewardGold: 1500,
|
|
unitId: 'ma-chao'
|
|
},
|
|
{
|
|
id: 'yangping-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '양평관 창고 확보',
|
|
rewardGold: 1760,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '52턴 이내 승리',
|
|
rewardGold: 1360,
|
|
maxTurn: 52
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'ma-chao' }
|
|
],
|
|
itemRewards: ['콩 24', '상처약 18', '탁주 8', '서량장창 +1', '마대 합류'],
|
|
victoryPages: thirtyFifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtySixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-sixth-battle-dingjun-vanguard',
|
|
title: '정군산 전초전',
|
|
victoryConditionLabel: '하후연 선봉 격파',
|
|
defeatConditionLabel: '유비 또는 황충 퇴각',
|
|
openingObjectiveLines: [
|
|
'정군산은 한중 전선의 고지입니다. 능선을 장악하면 한중 본전의 주도권을 유비군이 가져올 수 있습니다.',
|
|
'황충과 법정의 계책이 이번 전투의 중심입니다. 황충이 무너지면 정군산의 기세도 꺾입니다.',
|
|
'마초와 마대는 서쪽 능선을 흔들고, 왕평을 설득할 실마리를 찾아 한중 산길의 마음을 유비군 쪽으로 돌리십시오.'
|
|
],
|
|
map: thirtySixthBattleMap,
|
|
units: thirtySixthBattleUnits,
|
|
bonds: thirtySixthBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-sixth',
|
|
leaderUnitId: 'dingjun-leader-xiahou-yuan',
|
|
quickVictoryTurnLimit: 54,
|
|
baseVictoryGold: 6240,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '하후연 선봉 격파',
|
|
rewardGold: 3920,
|
|
unitId: 'dingjun-leader-xiahou-yuan'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1000,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'huang-zhong',
|
|
kind: 'keep-unit-alive',
|
|
label: '황충 생존',
|
|
rewardGold: 1640,
|
|
unitId: 'huang-zhong'
|
|
},
|
|
{
|
|
id: 'dingjun-ridge-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '정군산 보급 창고 확보',
|
|
rewardGold: 1860,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '54턴 이내 승리',
|
|
rewardGold: 1440,
|
|
maxTurn: 54
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'huang-zhong' }
|
|
],
|
|
itemRewards: ['콩 26', '상처약 20', '탁주 9', '산악 지형도 +1', '왕평 합류'],
|
|
victoryPages: thirtySixthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtySeventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-seventh-battle-hanzhong-decisive',
|
|
title: '한중 결전',
|
|
victoryConditionLabel: '조조 본진 격파',
|
|
defeatConditionLabel: '유비 또는 왕평 퇴각',
|
|
openingObjectiveLines: [
|
|
'한중 결전은 정군산 이후 북문 전체를 안정시키는 싸움입니다. 조조군 본진을 흔들어 한중의 주도권을 완전히 가져오십시오.',
|
|
'왕평은 이번 전장의 길잡이입니다. 왕평이 무너지면 산길과 보급로를 잇는 계획도 무너집니다.',
|
|
'황충과 법정은 정군산의 여세를 이어 고지를 누르고, 마초와 마대는 조조군 기병의 퇴로를 끊어 한중을 유비군의 깃발 아래 묶으십시오.'
|
|
],
|
|
map: thirtySeventhBattleMap,
|
|
units: thirtySeventhBattleUnits,
|
|
bonds: thirtySeventhBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-seventh',
|
|
leaderUnitId: 'hanzhong-leader-cao-cao',
|
|
quickVictoryTurnLimit: 58,
|
|
baseVictoryGold: 6840,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조조 본진 격파',
|
|
rewardGold: 4320,
|
|
unitId: 'hanzhong-leader-cao-cao'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1120,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'wang-ping',
|
|
kind: 'keep-unit-alive',
|
|
label: '왕평 생존',
|
|
rewardGold: 1680,
|
|
unitId: 'wang-ping'
|
|
},
|
|
{
|
|
id: 'hanzhong-storehouse',
|
|
kind: 'secure-terrain',
|
|
label: '한중 보급 창고 확보',
|
|
rewardGold: 2040,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '58턴 이내 승리',
|
|
rewardGold: 1560,
|
|
maxTurn: 58
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'wang-ping' }
|
|
],
|
|
itemRewards: ['콩 30', '상처약 22', '탁주 10', '한중 병법서 1', '한중왕 즉위 준비'],
|
|
victoryPages: thirtySeventhBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyEighthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-eighth-battle-jing-defense',
|
|
title: '형주 방위 전초전',
|
|
victoryConditionLabel: '여몽 정찰대 격파',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'촉한 건국 직후 형주는 위와 오의 시선이 동시에 모이는 전선이 되었습니다. 봉화대와 나루를 지켜 형주의 불안을 먼저 누르십시오.',
|
|
'관우는 이번 전투의 핵심입니다. 관우가 무너지면 형주의 방위 명분도 함께 흔들립니다.',
|
|
'강변 마을을 확보하고 오군의 정찰선을 몰아내면, 번성으로 이어질 다음 전선의 숨통을 열 수 있습니다.'
|
|
],
|
|
map: thirtyEighthBattleMap,
|
|
units: thirtyEighthBattleUnits,
|
|
bonds: thirtyEighthBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-eighth',
|
|
leaderUnitId: 'jing-defense-leader-lu-meng',
|
|
quickVictoryTurnLimit: 60,
|
|
baseVictoryGold: 7280,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '여몽 정찰대 격파',
|
|
rewardGold: 4580,
|
|
unitId: 'jing-defense-leader-lu-meng'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1160,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 1820,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'jing-beacon',
|
|
kind: 'secure-terrain',
|
|
label: '형주 봉화대 확보',
|
|
rewardGold: 2180,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '60턴 이내 승리',
|
|
rewardGold: 1640,
|
|
maxTurn: 60
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 32', '상처약 24', '탁주 10', '형주 봉화도 1', '번성 전선 준비'],
|
|
victoryPages: thirtyEighthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirtyNinthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'thirty-ninth-battle-fan-castle-vanguard',
|
|
title: '번성 외곽 압박전',
|
|
victoryConditionLabel: '방덕 선봉 격파',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'형주 방위가 안정된 사이 관우는 번성 외곽으로 북상했습니다. 조조군의 보루와 나루를 먼저 장악해야 다음 결전을 열 수 있습니다.',
|
|
'이번 전투는 관우가 핵심입니다. 관우가 무너지면 번성 전선의 사기가 흔들리니, 유비와 관우를 함께 지키며 전선을 밀어 올리십시오.',
|
|
'성채 안쪽의 조인, 수로를 보는 우금, 기병을 이끄는 방덕이 서로 다른 방식으로 버틸 것입니다. 기동대와 책사를 골고루 출전시키면 공명과 성장 기회가 커집니다.'
|
|
],
|
|
map: thirtyNinthBattleMap,
|
|
units: thirtyNinthBattleUnits,
|
|
bonds: thirtyNinthBattleBonds,
|
|
mapTextureKey: 'battle-map-thirty-ninth',
|
|
leaderUnitId: 'fan-castle-leader-pang-de',
|
|
quickVictoryTurnLimit: 62,
|
|
baseVictoryGold: 7600,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '방덕 선봉 격파',
|
|
rewardGold: 4800,
|
|
unitId: 'fan-castle-leader-pang-de'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1200,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 1900,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'outer-fort',
|
|
kind: 'secure-terrain',
|
|
label: '번성 외곽 보루 확보',
|
|
rewardGold: 2320,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '62턴 이내 승리',
|
|
rewardGold: 1720,
|
|
maxTurn: 62
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 34', '상처약 25', '탁주 10', '번성 외곽도 1', '한수 수공 준비'],
|
|
victoryPages: thirtyNinthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortiethBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fortieth-battle-han-river-flood',
|
|
title: '한수 수공',
|
|
victoryConditionLabel: '우금 본대 격파',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'한수의 수위가 오르며 번성 외곽이 진흙과 물길로 갈라졌습니다. 우금의 본대를 강과 둑 사이에 묶어 칠군을 흔드십시오.',
|
|
'관우는 이번 전투의 중심입니다. 관우가 전선을 잃으면 수공의 명분과 병사의 사기가 함께 무너집니다.',
|
|
'우금은 본진을 지키고, 방덕은 기병으로 돌파를 시도합니다. 법정, 마량, 황권 같은 참모와 기동대를 함께 운용하면 물길을 장악하기 쉽습니다.'
|
|
],
|
|
map: fortiethBattleMap,
|
|
units: fortiethBattleUnits,
|
|
bonds: fortiethBattleBonds,
|
|
mapTextureKey: 'battle-map-fortieth',
|
|
leaderUnitId: 'han-river-leader-yu-jin',
|
|
quickVictoryTurnLimit: 64,
|
|
baseVictoryGold: 7920,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '우금 본대 격파',
|
|
rewardGold: 5060,
|
|
unitId: 'han-river-leader-yu-jin'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1240,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 1960,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'river-bank',
|
|
kind: 'secure-terrain',
|
|
label: '한수 둑길 확보',
|
|
rewardGold: 2440,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '64턴 이내 승리',
|
|
rewardGold: 1800,
|
|
maxTurn: 64
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 36', '상처약 26', '탁주 11', '한수 수위표 1', '칠군 항복문 1'],
|
|
victoryPages: fortiethBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortyFirstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'forty-first-battle-fan-castle-siege',
|
|
title: '번성 공성전',
|
|
victoryConditionLabel: '조인 성문 방어선 격파',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'한수 수공으로 칠군은 무너졌지만 번성 성문은 아직 버티고 있습니다. 외성 보루와 수문을 끊어 조인의 방어선을 흔드십시오.',
|
|
'관우는 성문 압박의 핵심입니다. 관우가 무너지면 번성 포위의 명분과 형주 전선의 사기가 함께 꺾입니다.',
|
|
'방덕의 결사 기병은 정면 돌파를 노리고, 강동 정찰대는 뒤의 나루를 살핍니다. 성벽 압박과 후방 경계를 함께 맡을 무장을 고르십시오.'
|
|
],
|
|
map: fortyFirstBattleMap,
|
|
units: fortyFirstBattleUnits,
|
|
bonds: fortyFirstBattleBonds,
|
|
mapTextureKey: 'battle-map-forty-first',
|
|
leaderUnitId: 'fan-siege-leader-cao-ren',
|
|
quickVictoryTurnLimit: 66,
|
|
baseVictoryGold: 8240,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '조인 성문 방어선 격파',
|
|
rewardGold: 5320,
|
|
unitId: 'fan-siege-leader-cao-ren'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1280,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 2020,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'outer-wall',
|
|
kind: 'secure-terrain',
|
|
label: '번성 외성 보루 확보',
|
|
rewardGold: 2560,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '66턴 이내 승리',
|
|
rewardGold: 1880,
|
|
maxTurn: 66
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 38', '상처약 28', '탁주 12', '번성 성문도 1', '방덕 결사문 1'],
|
|
victoryPages: fortyFirstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortySecondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'forty-second-battle-jing-rear-crisis',
|
|
title: '강릉 나루 경계전',
|
|
victoryConditionLabel: '여몽 정찰대 격퇴',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'번성의 성문은 흔들렸지만 강릉 나루에는 강동의 작은 배가 늘었습니다. 상선으로 위장한 정찰대를 몰아내 후방의 창고를 지키십시오.',
|
|
'관우가 번성 전선과 형주 후방을 함께 붙잡아야 합니다. 관우가 쓰러지면 전선의 승세와 후방의 민심이 동시에 흔들립니다.',
|
|
'여몽은 정찰대를 깊숙이 보내고, 육손은 부드러운 말로 빈틈을 살핍니다. 마량과 미축 같은 후방 담당을 데려가면 균열을 읽고 창고를 지키기 쉽습니다.'
|
|
],
|
|
map: fortySecondBattleMap,
|
|
units: fortySecondBattleUnits,
|
|
bonds: fortySecondBattleBonds,
|
|
mapTextureKey: 'battle-map-forty-second',
|
|
leaderUnitId: 'jing-rear-leader-lu-meng',
|
|
quickVictoryTurnLimit: 68,
|
|
baseVictoryGold: 8520,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '여몽 정찰대 격퇴',
|
|
rewardGold: 5560,
|
|
unitId: 'jing-rear-leader-lu-meng'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1320,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 2080,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'warehouse',
|
|
kind: 'secure-terrain',
|
|
label: '강릉 창고 확보',
|
|
rewardGold: 2680,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '68턴 이내 승리',
|
|
rewardGold: 1960,
|
|
maxTurn: 68
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 40', '상처약 30', '탁주 12', '강동 정찰 기록 1', '강릉 창고 장부 1'],
|
|
victoryPages: fortySecondBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortyThirdBattleScenario: BattleScenarioDefinition = {
|
|
id: 'forty-third-battle-gongan-collapse',
|
|
title: '공안 성문 변고',
|
|
victoryConditionLabel: '여몽 본대 저지',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'강릉 나루의 정찰대는 물러났지만 공안 성문에는 더 큰 균열이 생겼습니다. 강동 본대가 성문 안쪽의 흔들림을 이용하기 전에 여몽을 저지하십시오.',
|
|
'부사인과 미방의 병사들은 아직 완전히 돌아서지 않았습니다. 성문과 창고를 지키면 후방의 신뢰를 조금이라도 붙들 수 있습니다.',
|
|
'마량, 미축, 황권, 왕평 같은 후방 수습 담당을 데려가면 장부와 지형, 성문 병사들의 흔들림을 읽기 좋습니다.'
|
|
],
|
|
map: fortyThirdBattleMap,
|
|
units: fortyThirdBattleUnits,
|
|
bonds: fortyThirdBattleBonds,
|
|
mapTextureKey: 'battle-map-forty-third',
|
|
leaderUnitId: 'jing-collapse-leader-lu-meng',
|
|
quickVictoryTurnLimit: 70,
|
|
baseVictoryGold: 8920,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '여몽 본대 저지',
|
|
rewardGold: 5840,
|
|
unitId: 'jing-collapse-leader-lu-meng'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1380,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 2160,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'gongan-gate',
|
|
kind: 'secure-terrain',
|
|
label: '공안 성문 확보',
|
|
rewardGold: 2820,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '70턴 이내 승리',
|
|
rewardGold: 2040,
|
|
maxTurn: 70
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 42', '상처약 32', '탁주 13', '공안 성문 기록 1', '부사인 군령서 1'],
|
|
victoryPages: fortyThirdBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortyFourthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'forty-fourth-battle-maicheng-isolation',
|
|
title: '맥성 고립전',
|
|
victoryConditionLabel: '맥성 포위망 돌파',
|
|
defeatConditionLabel: '유비 또는 관우 퇴각',
|
|
openingObjectiveLines: [
|
|
'공안 성문을 잠시 붙들었지만 후방 소식은 끊겼습니다. 맥성 북문으로 빠지는 좁은 길을 열어 관우 전선의 잔병을 수습하십시오.',
|
|
'강동군은 숲길과 갈대 물목을 막고, 위군 추격대는 북쪽 길을 압박합니다. 포위망의 한쪽만 밀어서는 길이 다시 닫힙니다.',
|
|
'왕평, 조운, 마대, 황충처럼 지형 판단과 기동, 고지 견제에 강한 장수를 데려가면 맥성의 좁은 퇴로를 지키기 좋습니다.'
|
|
],
|
|
map: fortyFourthBattleMap,
|
|
units: fortyFourthBattleUnits,
|
|
bonds: fortyFourthBattleBonds,
|
|
mapTextureKey: 'battle-map-forty-fourth',
|
|
leaderUnitId: 'maicheng-leader-lu-meng',
|
|
quickVictoryTurnLimit: 72,
|
|
baseVictoryGold: 9280,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '여몽 봉쇄선 돌파',
|
|
rewardGold: 6120,
|
|
unitId: 'maicheng-leader-lu-meng'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1440,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'guan-yu',
|
|
kind: 'keep-unit-alive',
|
|
label: '관우 생존',
|
|
rewardGold: 2260,
|
|
unitId: 'guan-yu'
|
|
},
|
|
{
|
|
id: 'maicheng-gate',
|
|
kind: 'secure-terrain',
|
|
label: '맥성 북문 확보',
|
|
rewardGold: 2960,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '72턴 이내 승리',
|
|
rewardGold: 2120,
|
|
maxTurn: 72
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'guan-yu' }
|
|
],
|
|
itemRewards: ['콩 44', '상처약 34', '탁주 14', '맥성 북문 지도 1', '갈대 물목 표식 1'],
|
|
victoryPages: fortyFourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fortyFifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'forty-fifth-battle-yiling-vanguard',
|
|
title: '이릉 진격로',
|
|
victoryConditionLabel: '육손 전초선 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'형주 상실의 비보가 촉한 군영을 뒤흔들었습니다. 유비는 오군을 향해 동진하며 이릉으로 향하는 첫 길을 열고자 합니다.',
|
|
'오군은 정면 결전을 피하고 숲길, 강변, 나루에 전초선을 깔았습니다. 길게 늘어선 진영이 끊기지 않게 강변 보급로를 확보하십시오.',
|
|
'장비, 조운, 마초처럼 돌파와 기동에 강한 장수로 선봉을 밀고, 제갈량과 황권처럼 보급과 화계를 읽는 참모를 곁에 두면 안정적입니다.'
|
|
],
|
|
map: fortyFifthBattleMap,
|
|
units: fortyFifthBattleUnits,
|
|
bonds: fortyFifthBattleBonds,
|
|
mapTextureKey: 'battle-map-forty-fifth',
|
|
leaderUnitId: 'yiling-leader-lu-xun',
|
|
quickVictoryTurnLimit: 74,
|
|
baseVictoryGold: 9560,
|
|
objectives: [
|
|
{
|
|
id: 'leader',
|
|
kind: 'defeat-leader',
|
|
label: '육손 전초선 격파',
|
|
rewardGold: 6360,
|
|
unitId: 'yiling-leader-lu-xun'
|
|
},
|
|
{
|
|
id: 'liu-bei',
|
|
kind: 'keep-unit-alive',
|
|
label: '유비 생존',
|
|
rewardGold: 1600,
|
|
unitId: 'liu-bei'
|
|
},
|
|
{
|
|
id: 'river-camp',
|
|
kind: 'secure-terrain',
|
|
label: '강변 진영 확보',
|
|
rewardGold: 3120,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'yiling-road',
|
|
kind: 'secure-terrain',
|
|
label: '동진로 보급점 확보',
|
|
rewardGold: 2480,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '74턴 이내 승리',
|
|
rewardGold: 2200,
|
|
maxTurn: 74
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 46', '상처약 36', '탁주 15', '이릉 동진 지도 1', '강변 진영 말뚝 1'],
|
|
victoryPages: fortyFifthBattleVictoryPages,
|
|
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,
|
|
'twenty-ninth-battle-luo-outer-wall': twentyNinthBattleScenario,
|
|
'thirtieth-battle-luofeng-ambush': thirtiethBattleScenario,
|
|
'thirty-first-battle-luo-main-gate': thirtyFirstBattleScenario,
|
|
'thirty-second-battle-mianzhu-gate': thirtySecondBattleScenario,
|
|
'thirty-third-battle-chengdu-surrender': thirtyThirdBattleScenario,
|
|
'thirty-fourth-battle-jiameng-pass': thirtyFourthBattleScenario,
|
|
'thirty-fifth-battle-yangping-scout': thirtyFifthBattleScenario,
|
|
'thirty-sixth-battle-dingjun-vanguard': thirtySixthBattleScenario,
|
|
'thirty-seventh-battle-hanzhong-decisive': thirtySeventhBattleScenario,
|
|
'thirty-eighth-battle-jing-defense': thirtyEighthBattleScenario,
|
|
'thirty-ninth-battle-fan-castle-vanguard': thirtyNinthBattleScenario,
|
|
'fortieth-battle-han-river-flood': fortiethBattleScenario,
|
|
'forty-first-battle-fan-castle-siege': fortyFirstBattleScenario,
|
|
'forty-second-battle-jing-rear-crisis': fortySecondBattleScenario,
|
|
'forty-third-battle-gongan-collapse': fortyThirdBattleScenario,
|
|
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario,
|
|
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario
|
|
};
|
|
|
|
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
|
|
|
|
export function getBattleScenario(id: string | undefined) {
|
|
if (id && id in battleScenarios) {
|
|
return battleScenarios[id as BattleScenarioId];
|
|
}
|
|
return defaultBattleScenario;
|
|
}
|