Files
heros_web/src/game/data/battles.ts

3605 lines
119 KiB
TypeScript

import {
fiftiethBattleBonds,
fiftiethBattleMap,
fiftiethBattleUnits,
fiftiethBattleVictoryPages,
fiftyFirstBattleBonds,
fiftyFirstBattleMap,
fiftyFirstBattleUnits,
fiftyFirstBattleVictoryPages,
fiftySecondBattleBonds,
fiftySecondBattleMap,
fiftySecondBattleUnits,
fiftySecondBattleVictoryPages,
fiftyThirdBattleBonds,
fiftyThirdBattleMap,
fiftyThirdBattleUnits,
fiftyThirdBattleVictoryPages,
fiftyFourthBattleBonds,
fiftyFourthBattleMap,
fiftyFourthBattleUnits,
fiftyFourthBattleVictoryPages,
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,
fortyEighthBattleBonds,
fortyEighthBattleMap,
fortyEighthBattleUnits,
fortyEighthBattleVictoryPages,
fortyNinthBattleBonds,
fortyNinthBattleMap,
fortyNinthBattleUnits,
fortyNinthBattleVictoryPages,
fortySixthBattleBonds,
fortySixthBattleMap,
fortySixthBattleUnits,
fortySixthBattleVictoryPages,
fortySeventhBattleBonds,
fortySeventhBattleMap,
fortySeventhBattleUnits,
fortySeventhBattleVictoryPages,
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'
| 'forty-sixth-battle-yiling-fire'
| 'forty-seventh-battle-nanzhong-stabilization'
| 'forty-eighth-battle-meng-huo-main-force'
| 'forty-ninth-battle-meng-huo-second-capture'
| 'fiftieth-battle-meng-huo-third-capture'
| 'fifty-first-battle-meng-huo-fourth-capture'
| 'fifty-second-battle-meng-huo-fifth-capture'
| 'fifty-third-battle-meng-huo-sixth-capture'
| 'fifty-fourth-battle-meng-huo-final-capture';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-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 fortySixthBattleScenario: BattleScenarioDefinition = {
id: 'forty-sixth-battle-yiling-fire',
title: '이릉 화공전',
victoryConditionLabel: '오군 화공망 돌파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'육손은 긴 촉한 진영이 마른 숲과 강변 군막 사이로 늘어진 순간을 기다렸습니다. 오군의 화공이 시작되며 진영 곳곳이 끊어집니다.',
'불타는 군막을 모두 지키려 하기보다, 서쪽 협곡과 강변 물길을 열어 병사를 모아야 합니다. 마을과 군막 지점을 확보하면 퇴로가 안정됩니다.',
'황권과 제갈량은 화공의 번짐을 읽고, 조운과 왕평은 흩어진 길을 찾습니다. 누가 퇴로를 맡고 누가 불길을 뚫을지 출진 편성에서 결정하십시오.'
],
map: fortySixthBattleMap,
units: fortySixthBattleUnits,
bonds: fortySixthBattleBonds,
mapTextureKey: 'battle-map-forty-sixth',
leaderUnitId: 'yiling-fire-leader-lu-xun',
quickVictoryTurnLimit: 76,
baseVictoryGold: 9840,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '육손 화공 지휘선 돌파',
rewardGold: 6600,
unitId: 'yiling-fire-leader-lu-xun'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1700,
unitId: 'liu-bei'
},
{
id: 'fire-camps',
kind: 'secure-terrain',
label: '불타는 군막 수습',
rewardGold: 3300,
terrain: 'camp'
},
{
id: 'retreat-road',
kind: 'secure-terrain',
label: '서쪽 퇴로 확보',
rewardGold: 2600,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '76턴 이내 돌파',
rewardGold: 2280,
maxTurn: 76
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 48', '상처약 38', '탁주 16', '화공 방화선 표식 1', '백제성 퇴로 지도 1'],
victoryPages: fortySixthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fortySeventhBattleScenario: BattleScenarioDefinition = {
id: 'forty-seventh-battle-nanzhong-stabilization',
title: '남중 안정로',
victoryConditionLabel: '남중 반란 지휘선 진정',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'백제성의 유탁 뒤 촉한은 제갈량을 중심으로 다시 숨을 고르려 합니다. 그러나 남중의 반란군은 그 틈을 타 성도 남쪽 길과 창고를 흔듭니다.',
'옹개의 지휘선을 흩뜨리되 마을과 창고를 함부로 불태우지 마십시오. 남중 평정은 적을 모두 쓰러뜨리는 싸움이 아니라, 돌아설 마음을 남겨 두는 싸움입니다.',
'제갈량은 반드시 생존해야 합니다. 조운과 왕평으로 산길을 열고, 마량과 황권으로 마을과 보급을 안정시키면 다음 남만 본전의 발판이 생깁니다.'
],
map: fortySeventhBattleMap,
units: fortySeventhBattleUnits,
bonds: fortySeventhBattleBonds,
mapTextureKey: 'battle-map-forty-seventh',
leaderUnitId: 'nanzhong-leader-yong-kai',
quickVictoryTurnLimit: 78,
baseVictoryGold: 10120,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '옹개 지휘선 진정',
rewardGold: 6840,
unitId: 'nanzhong-leader-yong-kai'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1860,
unitId: 'zhuge-liang'
},
{
id: 'villages',
kind: 'secure-terrain',
label: '남중 마을 안정',
rewardGold: 3420,
terrain: 'village'
},
{
id: 'supply-camps',
kind: 'secure-terrain',
label: '남쪽 창고 확보',
rewardGold: 2720,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '78턴 이내 안정',
rewardGold: 2360,
maxTurn: 78
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 50', '상처약 40', '탁주 17', '남중 산길 지도 1', '마을 회유 문서 1'],
victoryPages: fortySeventhBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fortyEighthBattleScenario: BattleScenarioDefinition = {
id: 'forty-eighth-battle-meng-huo-main-force',
title: '맹획 본대전',
victoryConditionLabel: '맹획 본대 제압과 회유',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'남중의 첫 길은 열렸지만 맹획은 더 깊은 숲에서 호족과 맹수 기병을 모았습니다. 오늘의 승리는 적장을 베는 것이 아니라 생포해 돌려보낼 명분을 만드는 데 있습니다.',
'마을, 포로 수용소, 산채 창고를 함부로 불태우지 마십시오. 회유할 사람과 끝까지 싸울 사람을 구분해야 남중이 다시 반란으로 돌아가지 않습니다.',
'제갈량은 반드시 생존해야 합니다. 조운과 마초로 돌격을 막고, 왕평과 황권으로 포로와 산길을 정리하며, 마량으로 마을의 말을 붙잡으십시오.'
],
map: fortyEighthBattleMap,
units: fortyEighthBattleUnits,
bonds: fortyEighthBattleBonds,
mapTextureKey: 'battle-map-forty-eighth',
leaderUnitId: 'menghuo-leader',
quickVictoryTurnLimit: 82,
baseVictoryGold: 10580,
objectives: [
{
id: 'pacify-meng-huo',
kind: 'pacify-leader',
label: '맹획 생포와 회유',
rewardGold: 7200,
unitId: 'menghuo-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1900,
unitId: 'zhuge-liang'
},
{
id: 'amnesty-villages',
kind: 'secure-terrain',
label: '회유 마을 보호',
rewardGold: 3580,
terrain: 'village'
},
{
id: 'captive-camps',
kind: 'secure-terrain',
label: '포로 수용소 확보',
rewardGold: 2860,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '82턴 이내 생포',
rewardGold: 2440,
maxTurn: 82
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 54', '상처약 42', '탁주 18', '맹획 회유 서신 1', '남중 포로 명부 1'],
victoryPages: fortyEighthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fortyNinthBattleScenario: BattleScenarioDefinition = {
id: 'forty-ninth-battle-meng-huo-second-capture',
title: '칠종칠금 2차전',
victoryConditionLabel: '맹획 재생포와 마을 회유',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'맹획은 한 번 풀려났지만 곧바로 다시 산채를 모았습니다. 이번 싸움의 목적도 참수가 아니라 두 번째 생포와 더 넓은 회유 명분입니다.',
'강가 늪지와 산채 길목에 매복이 많습니다. 포로장과 마을을 지키면 맹획을 돌려보낸 뒤에도 남중 사람들이 촉한군의 군율을 기억할 것입니다.',
'제갈량은 반드시 생존해야 합니다. 왕평으로 산길을 읽고, 황권으로 포로 장부를 지키며, 조운과 황충으로 맹수 돌격과 고지 궁병을 동시에 억제하십시오.'
],
map: fortyNinthBattleMap,
units: fortyNinthBattleUnits,
bonds: fortyNinthBattleBonds,
mapTextureKey: 'battle-map-forty-ninth',
leaderUnitId: 'menghuo-second-leader',
quickVictoryTurnLimit: 86,
baseVictoryGold: 11140,
objectives: [
{
id: 'pacify-meng-huo-second',
kind: 'pacify-leader',
label: '맹획 두 번째 생포',
rewardGold: 7600,
unitId: 'menghuo-second-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1980,
unitId: 'zhuge-liang'
},
{
id: 'amnesty-villages',
kind: 'secure-terrain',
label: '회유 마을 유지',
rewardGold: 3740,
terrain: 'village'
},
{
id: 'captive-camps',
kind: 'secure-terrain',
label: '포로장 군율 유지',
rewardGold: 3020,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '86턴 이내 재생포',
rewardGold: 2520,
maxTurn: 86
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 58', '상처약 44', '탁주 19', '칠종칠금 회유문 1', '포로 안심 장부 1'],
victoryPages: fortyNinthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fiftiethBattleScenario: BattleScenarioDefinition = {
id: 'fiftieth-battle-meng-huo-third-capture',
title: '칠종칠금 3차전',
victoryConditionLabel: '맹획 세 번째 생포와 호족 회유',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'맹획이 세 번째로 군세를 모으자 남중 호족들의 마음이 갈라지고 있습니다. 이번 승리는 적장을 잡는 동시에, 지켜본 호족들이 촉한군의 질서를 인정하게 만드는 싸움입니다.',
'산채와 마을, 포로장을 함부로 짓밟지 마십시오. 회유를 받아들일 호족에게는 길을 남기고, 끝까지 선동하는 자만 생포망 안으로 몰아야 합니다.',
'제갈량은 반드시 생존해야 합니다. 마량으로 호족의 말을 붙잡고, 황권과 왕평으로 장부와 길목을 지키며, 조운과 마초로 맹수 돌파를 봉쇄하십시오.'
],
map: fiftiethBattleMap,
units: fiftiethBattleUnits,
bonds: fiftiethBattleBonds,
mapTextureKey: 'battle-map-fiftieth',
leaderUnitId: 'menghuo-third-leader',
quickVictoryTurnLimit: 90,
baseVictoryGold: 11720,
objectives: [
{
id: 'pacify-meng-huo-third',
kind: 'pacify-leader',
label: '맹획 세 번째 생포',
rewardGold: 8000,
unitId: 'menghuo-third-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 2060,
unitId: 'zhuge-liang'
},
{
id: 'clan-villages',
kind: 'secure-terrain',
label: '호족 마을 보호',
rewardGold: 3920,
terrain: 'village'
},
{
id: 'captive-camps',
kind: 'secure-terrain',
label: '포로장 신뢰 유지',
rewardGold: 3180,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '90턴 이내 세 번째 생포',
rewardGold: 2600,
maxTurn: 90
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 62', '상처약 46', '탁주 20', '남중 호족 설득문 1', '세 번째 회유 장부 1'],
victoryPages: fiftiethBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fiftyFirstBattleScenario: BattleScenarioDefinition = {
id: 'fifty-first-battle-meng-huo-fourth-capture',
title: '칠종칠금 4차전',
victoryConditionLabel: '맹획 네 번째 생포와 회유 퇴로 유지',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'세 번째 생포 뒤 호족 회의에서 열어 둔 퇴로가 이번 전장의 핵심입니다. 물러설 뜻이 있는 호족을 몰살하면 남중은 다시 모두 적이 됩니다.',
'오돌골의 등갑병과 독천 제사장들이 화덕 주변을 지키고 있습니다. 화덕 요새를 제압하되 마을과 포로장을 지켜, 촉한군의 약속이 전투 중에도 지켜진다는 것을 보여야 합니다.',
'제갈량은 반드시 생존해야 합니다. 마량으로 호족 문서를 전하고, 황권과 왕평으로 장부와 퇴로를 지키며, 마초와 마대로 추격선을 조절하십시오.'
],
map: fiftyFirstBattleMap,
units: fiftyFirstBattleUnits,
bonds: fiftyFirstBattleBonds,
mapTextureKey: 'battle-map-fifty-first',
leaderUnitId: 'menghuo-fourth-leader',
quickVictoryTurnLimit: 94,
baseVictoryGold: 12280,
objectives: [
{
id: 'pacify-meng-huo-fourth',
kind: 'pacify-leader',
label: '맹획 네 번째 생포',
rewardGold: 8420,
unitId: 'menghuo-fourth-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 2140,
unitId: 'zhuge-liang'
},
{
id: 'amnesty-route',
kind: 'secure-terrain',
label: '회유 퇴로 유지',
rewardGold: 4140,
terrain: 'road'
},
{
id: 'captive-camps',
kind: 'secure-terrain',
label: '포로장 보증 유지',
rewardGold: 3360,
terrain: 'camp'
},
{
id: 'fire-forts',
kind: 'secure-terrain',
label: '화덕 요새 제압',
rewardGold: 3640,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '94턴 이내 네 번째 생포',
rewardGold: 2780,
maxTurn: 94
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 66', '상처약 50', '탁주 22', '호족 보증 장부 1', '회유 퇴로 표식 1'],
victoryPages: fiftyFirstBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fiftySecondBattleScenario: BattleScenarioDefinition = {
id: 'fifty-second-battle-meng-huo-fifth-capture',
title: '칠종칠금 5차전',
victoryConditionLabel: '맹획 다섯 번째 생포와 강경파 분리',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'강경파 호족이 회유 퇴로를 배신이라 부르며 길목을 막고 있습니다. 맹획을 다시 생포하되, 물러설 뜻이 있는 호족이 본대와 갈라질 길을 지켜야 합니다.',
'마을 보증과 포로장 장부가 흔들리면 지난 네 번의 회유도 약해집니다. 강경파 요새를 누르고, 마을과 포로장을 지켜 남중 안의 의심을 끊으십시오.',
'제갈량은 반드시 생존해야 합니다. 마량과 황권으로 말을 남기고, 왕평과 마대로 퇴로를 열며, 조운과 황충으로 추격선을 억제하십시오.'
],
map: fiftySecondBattleMap,
units: fiftySecondBattleUnits,
bonds: fiftySecondBattleBonds,
mapTextureKey: 'battle-map-fifty-second',
leaderUnitId: 'menghuo-fifth-leader',
quickVictoryTurnLimit: 98,
baseVictoryGold: 12940,
objectives: [
{
id: 'pacify-meng-huo-fifth',
kind: 'pacify-leader',
label: '맹획 다섯 번째 생포',
rewardGold: 8780,
unitId: 'menghuo-fifth-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 2220,
unitId: 'zhuge-liang'
},
{
id: 'hardliner-separation',
kind: 'secure-terrain',
label: '강경파 분리로 확보',
rewardGold: 4380,
terrain: 'road'
},
{
id: 'clan-villages',
kind: 'secure-terrain',
label: '회유 마을 보호',
rewardGold: 4040,
terrain: 'village'
},
{
id: 'hardliner-forts',
kind: 'secure-terrain',
label: '강경파 요새 제압',
rewardGold: 3860,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '98턴 이내 다섯 번째 생포',
rewardGold: 2920,
maxTurn: 98
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 70', '상처약 54', '탁주 24', '강경파 분리 장부 1', '남중 회유 깃발 1'],
victoryPages: fiftySecondBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fiftyThirdBattleScenario: BattleScenarioDefinition = {
id: 'fifty-third-battle-meng-huo-sixth-capture',
title: '칠종칠금 6차전',
victoryConditionLabel: '맹획 여섯 번째 생포와 마을 신뢰 유지',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'맹획은 남은 자존심을 내세워 깊은 계곡의 부족들을 다시 불러 모았습니다. 이번 전투는 적 본영을 누르면서도 마을 신뢰를 깨뜨리지 않는 것이 핵심입니다.',
'강경파 잔당은 신뢰 장부와 계곡 퇴로를 동시에 흔들려 합니다. 마을, 길목, 요새를 함께 지키면 마지막 설득으로 이어질 근거가 생깁니다.',
'제갈량은 반드시 생존해야 합니다. 마량과 황권으로 말과 장부를 남기고, 왕평과 마대로 계곡 길을 지키며, 조운과 위연으로 잔당 추격을 끊으십시오.'
],
map: fiftyThirdBattleMap,
units: fiftyThirdBattleUnits,
bonds: fiftyThirdBattleBonds,
mapTextureKey: 'battle-map-fifty-third',
leaderUnitId: 'menghuo-sixth-leader',
quickVictoryTurnLimit: 102,
baseVictoryGold: 13620,
objectives: [
{
id: 'pacify-meng-huo-sixth',
kind: 'pacify-leader',
label: '맹획 여섯 번째 생포',
rewardGold: 9180,
unitId: 'menghuo-sixth-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 2320,
unitId: 'zhuge-liang'
},
{
id: 'trust-road',
kind: 'secure-terrain',
label: '신뢰 퇴로 확보',
rewardGold: 4560,
terrain: 'road'
},
{
id: 'village-trust',
kind: 'secure-terrain',
label: '마을 신뢰 유지',
rewardGold: 4240,
terrain: 'village'
},
{
id: 'hardliner-remnants',
kind: 'secure-terrain',
label: '강경파 잔당 요새 제압',
rewardGold: 4040,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '102턴 이내 여섯 번째 생포',
rewardGold: 3060,
maxTurn: 102
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 74', '상처약 58', '탁주 26', '남중 신뢰 장부 1', '계곡 회유 표식 1'],
victoryPages: fiftyThirdBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const fiftyFourthBattleScenario: BattleScenarioDefinition = {
id: 'fifty-fourth-battle-meng-huo-final-capture',
title: '칠종칠금 7차전',
victoryConditionLabel: '맹획 마지막 생포와 남중 회의장 보호',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'맹획은 일곱 번째이자 마지막 대결을 남중의 촌장들이 보는 앞에서 열었습니다. 이번 전투는 승리뿐 아니라 군율과 약속을 증명하는 자리입니다.',
'회의장과 마을, 항복로가 무너지면 맹획을 잡아도 남중의 마음은 닫힙니다. 잔당 요새를 누르고, 물러설 자의 길과 촌장들의 증언을 지키십시오.',
'제갈량은 반드시 생존해야 합니다. 황권은 약속 장부를, 마량과 왕평은 회의장과 마을길을, 조운과 마대는 항복로 차단선을 맡기 좋습니다.'
],
map: fiftyFourthBattleMap,
units: fiftyFourthBattleUnits,
bonds: fiftyFourthBattleBonds,
mapTextureKey: 'battle-map-fifty-fourth',
leaderUnitId: 'menghuo-final-leader',
quickVictoryTurnLimit: 106,
baseVictoryGold: 14360,
objectives: [
{
id: 'pacify-meng-huo-final',
kind: 'pacify-leader',
label: '맹획 일곱 번째 생포',
rewardGold: 9640,
unitId: 'menghuo-final-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 2420,
unitId: 'zhuge-liang'
},
{
id: 'council-road',
kind: 'secure-terrain',
label: '항복 회의장 길 확보',
rewardGold: 4820,
terrain: 'road'
},
{
id: 'village-witnesses',
kind: 'secure-terrain',
label: '촌장 증언 마을 보호',
rewardGold: 4480,
terrain: 'village'
},
{
id: 'final-remnant-forts',
kind: 'secure-terrain',
label: '최후 잔당 요새 제압',
rewardGold: 4260,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '106턴 이내 마지막 생포',
rewardGold: 3220,
maxTurn: 106
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 80', '상처약 64', '탁주 30', '남중 평정 장부 1', '맹획 항복 서약 1'],
victoryPages: fiftyFourthBattleVictoryPages,
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,
'forty-sixth-battle-yiling-fire': fortySixthBattleScenario,
'forty-seventh-battle-nanzhong-stabilization': fortySeventhBattleScenario,
'forty-eighth-battle-meng-huo-main-force': fortyEighthBattleScenario,
'forty-ninth-battle-meng-huo-second-capture': fortyNinthBattleScenario,
'fiftieth-battle-meng-huo-third-capture': fiftiethBattleScenario,
'fifty-first-battle-meng-huo-fourth-capture': fiftyFirstBattleScenario,
'fifty-second-battle-meng-huo-fifth-capture': fiftySecondBattleScenario,
'fifty-third-battle-meng-huo-sixth-capture': fiftyThirdBattleScenario,
'fifty-fourth-battle-meng-huo-final-capture': fiftyFourthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
export function getBattleScenario(id: string | undefined) {
if (id && id in battleScenarios) {
return battleScenarios[id as BattleScenarioId];
}
return defaultBattleScenario;
}