5015 lines
180 KiB
TypeScript
5015 lines
180 KiB
TypeScript
import {
|
|
fiftiethBattleBonds,
|
|
fiftiethBattleMap,
|
|
fiftiethBattleUnits,
|
|
fiftiethBattleVictoryPages,
|
|
fiftyFirstBattleBonds,
|
|
fiftyFirstBattleMap,
|
|
fiftyFirstBattleUnits,
|
|
fiftyFirstBattleVictoryPages,
|
|
fiftySecondBattleBonds,
|
|
fiftySecondBattleMap,
|
|
fiftySecondBattleUnits,
|
|
fiftySecondBattleVictoryPages,
|
|
fiftyThirdBattleBonds,
|
|
fiftyThirdBattleMap,
|
|
fiftyThirdBattleUnits,
|
|
fiftyThirdBattleVictoryPages,
|
|
fiftyFourthBattleBonds,
|
|
fiftyFourthBattleMap,
|
|
fiftyFourthBattleUnits,
|
|
fiftyFourthBattleVictoryPages,
|
|
fiftyEighthBattleBonds,
|
|
fiftyEighthBattleMap,
|
|
fiftyEighthBattleUnits,
|
|
fiftyEighthBattleVictoryPages,
|
|
fiftyFifthBattleBonds,
|
|
fiftyFifthBattleMap,
|
|
fiftyFifthBattleUnits,
|
|
fiftyFifthBattleVictoryPages,
|
|
fiftySixthBattleBonds,
|
|
fiftySixthBattleMap,
|
|
fiftySixthBattleUnits,
|
|
fiftySixthBattleVictoryPages,
|
|
fiftyNinthBattleBonds,
|
|
fiftyNinthBattleMap,
|
|
fiftyNinthBattleUnits,
|
|
fiftyNinthBattleVictoryPages,
|
|
sixtiethBattleBonds,
|
|
sixtiethBattleMap,
|
|
sixtiethBattleUnits,
|
|
sixtiethBattleVictoryPages,
|
|
sixtyFirstBattleBonds,
|
|
sixtyFirstBattleMap,
|
|
sixtyFirstBattleUnits,
|
|
sixtyFirstBattleVictoryPages,
|
|
sixtySecondBattleBonds,
|
|
sixtySecondBattleMap,
|
|
sixtySecondBattleUnits,
|
|
sixtySecondBattleVictoryPages,
|
|
sixtyThirdBattleBonds,
|
|
sixtyThirdBattleMap,
|
|
sixtyThirdBattleUnits,
|
|
sixtyThirdBattleVictoryPages,
|
|
sixtyFourthBattleBonds,
|
|
sixtyFourthBattleMap,
|
|
sixtyFourthBattleUnits,
|
|
sixtyFourthBattleVictoryPages,
|
|
sixtyFifthBattleBonds,
|
|
sixtyFifthBattleMap,
|
|
sixtyFifthBattleUnits,
|
|
sixtyFifthBattleVictoryPages,
|
|
sixtySixthBattleBonds,
|
|
sixtySixthBattleMap,
|
|
sixtySixthBattleUnits,
|
|
sixtySixthBattleVictoryPages,
|
|
fiftySeventhBattleBonds,
|
|
fiftySeventhBattleMap,
|
|
fiftySeventhBattleUnits,
|
|
fiftySeventhBattleVictoryPages,
|
|
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';
|
|
import type { UnitClassKey } from './battleRules';
|
|
import type { SortieDeploymentSlot, SortieFormationRole } from './sortieDeployment';
|
|
|
|
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'
|
|
| 'fifty-fifth-battle-northern-qishan-road'
|
|
| 'fifty-sixth-battle-tianshui-advance'
|
|
| 'fifty-seventh-battle-jieting-crisis'
|
|
| 'fifty-eighth-battle-qishan-retreat'
|
|
| 'fifty-ninth-battle-chencang-siege'
|
|
| 'sixtieth-battle-wudu-yinping'
|
|
| 'sixty-first-battle-hanzhong-rain-defense'
|
|
| 'sixty-second-battle-qishan-renewed-offensive'
|
|
| 'sixty-third-battle-lucheng-pursuit'
|
|
| 'sixty-fourth-battle-weishui-camps'
|
|
| 'sixty-fifth-battle-weishui-northbank'
|
|
| 'sixty-sixth-battle-wuzhang-final';
|
|
|
|
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;
|
|
targetTile?: { x: number; y: number; radius?: number };
|
|
threatRadius?: number;
|
|
maxTurn?: number;
|
|
};
|
|
|
|
export type BattleDefeatConditionDefinition = {
|
|
kind: 'unit-defeated';
|
|
unitId: string;
|
|
};
|
|
|
|
export type BattleSortieUnitRecommendation = {
|
|
unitId: string;
|
|
reason: string;
|
|
role?: SortieFormationRole;
|
|
};
|
|
|
|
export type BattleSortieClassRecommendation = {
|
|
label: string;
|
|
classKeys: UnitClassKey[];
|
|
reason: string;
|
|
};
|
|
|
|
export type BattleSortieDefinition = {
|
|
sortieLimit: number;
|
|
requiredUnits?: string[];
|
|
excludedUnits?: string[];
|
|
recommendedUnits: BattleSortieUnitRecommendation[];
|
|
recommendedClasses: BattleSortieClassRecommendation[];
|
|
deploymentSlots: SortieDeploymentSlot[];
|
|
note: string;
|
|
};
|
|
|
|
export type BattleTacticalGuideEventKey =
|
|
| 'leader-wavering'
|
|
| 'ally-danger'
|
|
| 'village-approach'
|
|
| 'village-secured'
|
|
| 'vanguard-broken'
|
|
| 'cavalry-approach'
|
|
| 'enemy-posture';
|
|
|
|
export type BattleTacticalGuideDefinition = {
|
|
summary: string;
|
|
route: string;
|
|
focus: string;
|
|
roles: string[];
|
|
events?: Partial<Record<BattleTacticalGuideEventKey, { title: string; lines: string[] }>>;
|
|
};
|
|
|
|
export type BattleCampaignRewardDefinition = {
|
|
supplies?: string[];
|
|
equipment?: string[];
|
|
reputation?: string[];
|
|
recruits?: string[];
|
|
unlockBattleId?: BattleScenarioId;
|
|
unlockLabel?: string;
|
|
note?: string;
|
|
};
|
|
|
|
export type BattleScenarioDefinition = {
|
|
id: BattleScenarioId;
|
|
title: string;
|
|
victoryConditionLabel: string;
|
|
defeatConditionLabel: string;
|
|
openingObjectiveLines: string[];
|
|
tacticalGuide?: BattleTacticalGuideDefinition;
|
|
sortie?: BattleSortieDefinition;
|
|
map: BattleMap;
|
|
units: UnitData[];
|
|
bonds: BattleBond[];
|
|
mapTextureKey: string;
|
|
leaderUnitId: string;
|
|
quickVictoryTurnLimit: number;
|
|
baseVictoryGold: number;
|
|
objectives: BattleObjectiveDefinition[];
|
|
defeatConditions: BattleDefeatConditionDefinition[];
|
|
itemRewards: string[];
|
|
campaignReward?: BattleCampaignRewardDefinition;
|
|
victoryPages: StoryPage[];
|
|
nextCampScene: string;
|
|
};
|
|
|
|
export const firstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'first-battle-zhuo-commandery',
|
|
title: '탁현의 전투',
|
|
victoryConditionLabel: '두령 한석 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'황건적은 숲과 마을 어귀를 끼고 흩어져 있습니다. 두령 한석을 격파하면 전열이 무너집니다.',
|
|
'유비가 퇴각하면 의용군은 전투를 지속할 수 없습니다.',
|
|
'관우는 중앙 숲길을 잡고, 장비는 남쪽 길을 흔들며, 유비는 진영과 마을 보급선을 지키십시오.'
|
|
],
|
|
tacticalGuide: {
|
|
summary: '중앙 길은 빠르지만 노출됩니다. 숲과 마을 어귀를 잡아 관우가 버티고, 장비가 아래 길로 궁병을 끊습니다.',
|
|
route: '아군 진영 → 숲 낀 중앙 길목 → 마을 어귀 → 두령 한석',
|
|
focus: '관우를 숲 옆 길목에 세워 첫 접전을 받고, 장비는 남쪽 길로 우회해 궁병과 기병의 진입로를 끊으십시오.',
|
|
roles: ['관우: 숲길 전열', '장비: 남쪽 길 압박', '유비: 진영/마을 보급 지휘'],
|
|
events: {
|
|
'enemy-posture': {
|
|
title: '적 전열 확인',
|
|
lines: ['앞줄 보병은 숲과 언덕을 끼고 다가오고, 기병은 길을 따라 돌파 각을 봅니다.', '관우는 숲길에, 장비는 남쪽 길에 세워 적이 좋은 지형을 잡기 전에 밀어내십시오.']
|
|
},
|
|
'village-approach': {
|
|
title: '마을 어귀 접근',
|
|
lines: ['마을 어귀는 방어와 회복 보정이 있는 핵심 지형입니다.', '주변 황건병을 몰아내면 보급선을 잡고 한석에게 안전하게 압박을 모을 수 있습니다.']
|
|
},
|
|
'vanguard-broken': {
|
|
title: '초기 선봉 정리',
|
|
lines: ['앞쪽 황건 선봉이 무너졌습니다.', '관우는 중앙 길목을 계속 잡고, 장비는 남쪽 엄호선을 끊어 마을 쪽 퇴로를 좁히세요.']
|
|
},
|
|
'cavalry-approach': {
|
|
title: '기병 접근',
|
|
lines: ['황건 기병이 길을 따라 전열 가까이 들어왔습니다.', '길 위에서 맞기보다 숲과 마을 어귀로 끌어들여 관우와 장비가 받아내십시오.']
|
|
}
|
|
}
|
|
},
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '유비는 진영과 마을 보급선을 지키며 패배 조건을 안전하게 관리합니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '관우가 숲 낀 중앙 길목을 잡으면 황건 보병의 첫 압박을 안정적으로 받아냅니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '장비는 남쪽 길로 궁병 엄호선을 흔들고 기병의 진입로를 끊습니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '숲길 전열', classKeys: ['infantry'], reason: '숲과 마을 어귀에서 보병이 방어 보정을 살려 첫 접전을 버팁니다.' },
|
|
{ label: '남쪽 압박', classKeys: ['spearman'], reason: '창병은 길을 따라 들어오는 기병과 궁병 엄호선을 끊기 좋습니다.' },
|
|
{ label: '진영 지휘', classKeys: ['lord'], reason: '유비는 진영 뒤에서 생존과 보급 회복 여지를 남기는 편이 안전합니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 2, y: 15, label: '숲길 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 1, y: 16, label: '남쪽 압박' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 1, y: 15, label: '진영 지휘' }
|
|
],
|
|
note: '관우는 숲길 전열, 장비는 남쪽 길 압박, 유비는 진영 지휘가 기본 전열입니다. 시작 구역 안에서 위치를 바꿀 수 있습니다.'
|
|
},
|
|
map: firstBattleMap,
|
|
units: firstBattleUnits,
|
|
bonds: firstBattleBonds,
|
|
mapTextureKey: 'battle-map-first',
|
|
leaderUnitId: 'rebel-leader',
|
|
quickVictoryTurnLimit: 14,
|
|
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: 210,
|
|
terrain: 'village',
|
|
targetTile: { x: 15, y: 5, radius: 4 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '14턴 이내 승리',
|
|
rewardGold: 120,
|
|
maxTurn: 14
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 1', '탁주 1', '의용군 명성 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 1', '탁주 1'],
|
|
equipment: ['연습검 1'],
|
|
reputation: ['의용군 명성 +1'],
|
|
recruits: ['guan-yu', 'zhang-fei'],
|
|
unlockBattleId: 'second-battle-yellow-turban-pursuit',
|
|
unlockLabel: '황건 잔당 추격 개방',
|
|
note: '도원 형제의 의용군이 정식으로 출전 가능한 부대로 정리됩니다.'
|
|
},
|
|
victoryPages: firstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const secondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'second-battle-yellow-turban-pursuit',
|
|
title: '황건 잔당 추격',
|
|
victoryConditionLabel: '두령 한석 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'황건 잔당이 강가 나루와 북쪽 마을을 끼고 물러났습니다. 두령 한석을 격파하면 적의 퇴로가 무너집니다.',
|
|
'나루 앞 숲길을 정리하지 않고 길을 넓히면 궁병과 기병에게 전열이 갈라집니다.',
|
|
'세 형제를 모두 출전시키고 15턴 이내에 승리하면 추격전 명성과 추가 보상이 붙습니다.'
|
|
],
|
|
tacticalGuide: {
|
|
summary: '나루 앞 숲길을 관우가 좁게 막고, 장비는 남쪽 길로 궁병 엄호선을 압박합니다. 유비는 마을 확보 타이밍을 지휘합니다.',
|
|
route: '아군 진영 → 숲길 나루 → 언덕 궁병선 → 북쪽 마을',
|
|
focus: '먼저 숲길 습격병을 걷어내고, 강을 건넌 뒤에는 궁병이 선 언덕과 마을 어귀를 따로 끊어내십시오.',
|
|
roles: ['관우: 숲길 나루 전열', '장비: 남쪽 돌파/기병 견제', '유비: 마을 보급 지휘'],
|
|
events: {
|
|
'village-approach': {
|
|
title: '북쪽 마을 접근',
|
|
lines: ['잔당이 붙잡은 북쪽 마을이 보입니다.', '마을은 회복 보정이 있으니 적보다 먼저 주변을 정리해 보급선을 확보하십시오.']
|
|
},
|
|
'vanguard-broken': {
|
|
title: '나루 길목 돌파',
|
|
lines: ['초기 습격조가 흩어졌습니다.', '장비는 남쪽 길로 궁병을 흔들고, 관우는 나루를 넘어 친위병을 숲 밖으로 끌어내십시오.']
|
|
},
|
|
'cavalry-approach': {
|
|
title: '잔당 기병 접근',
|
|
lines: ['달아나던 기병이 길을 따라 되돌아옵니다.', '나루를 넘기 전에는 유비를 노출시키지 말고 창병으로 길목을 눌러 두십시오.']
|
|
},
|
|
'enemy-posture': {
|
|
title: '잔당 재정렬',
|
|
lines: ['궁병은 언덕과 마을 쪽에서 엄호하고 기병은 남쪽 길을 돌아옵니다.', '중앙을 무리하게 벌리지 말고 관우와 장비의 전선을 지형별로 나누십시오.']
|
|
}
|
|
}
|
|
},
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '주장 생존이 패배 조건입니다. 나루 뒤에서 지휘하며 마을 확보 타이밍을 봅니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '나루 앞 숲길을 좁게 막으면 적 보병과 산길 복병을 안정적으로 받아냅니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '남쪽 길로 빠르게 나가 궁병 엄호와 기병 돌파를 끊기 좋습니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '숲길 전열', classKeys: ['infantry'], reason: '좁은 나루와 숲길에서 방어 보정을 살려 먼저 맞받아칩니다.' },
|
|
{ label: '길목 창병', classKeys: ['spearman'], reason: '기병이 쓰는 길을 눌러 두고 북쪽으로 달아나는 적을 따라붙습니다.' },
|
|
{ label: '보급 지휘', classKeys: ['lord'], reason: '유비는 패배 조건이므로 나루 뒤에서 마을 확보와 회복 여지를 봅니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 15, label: '나루 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 16, label: '남쪽 돌파' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 15, label: '후방 지휘' }
|
|
],
|
|
note: '세 형제 전원 출전이 가장 안정적입니다. 관우는 숲길 나루, 장비는 남쪽 길, 유비는 후방 보급 위치에 두면 의도가 분명합니다.'
|
|
},
|
|
map: secondBattleMap,
|
|
units: secondBattleUnits,
|
|
bonds: secondBattleBonds,
|
|
mapTextureKey: 'battle-map-second',
|
|
leaderUnitId: 'pursuit-leader-han-seok',
|
|
quickVictoryTurnLimit: 15,
|
|
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',
|
|
targetTile: { x: 19, y: 6, radius: 2 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '15턴 이내 승리',
|
|
rewardGold: 150,
|
|
maxTurn: 15
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 1', '탁주 1', '의용군 명성 +2'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 1', '탁주 1'],
|
|
equipment: ['황건 부적 1'],
|
|
reputation: ['의용군 명성 +2'],
|
|
unlockBattleId: 'third-battle-guangzong-road',
|
|
unlockLabel: '광종 구원로 개방',
|
|
note: '북쪽 마을 보급과 잔당 추격 기록이 다음 전투 준비에 반영됩니다.'
|
|
},
|
|
victoryPages: secondBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const thirdBattleScenario: BattleScenarioDefinition = {
|
|
id: 'third-battle-guangzong-road',
|
|
title: '광종 구원로',
|
|
victoryConditionLabel: '전령 마원 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'황건 전령 마원이 광종 본대로 향하고 있습니다. 마원을 격파하면 적의 연락망이 끊어집니다.',
|
|
'강가 길목, 언덕 궁병선, 요새 보급 지형이 이어져 있어 정면으로만 밀면 전선이 오래 묶입니다.',
|
|
'18턴 이내에 승리하면 광종 구원로 확보 명성이 오릅니다.'
|
|
],
|
|
tacticalGuide: {
|
|
summary: '관우는 강가 길목을 버티고, 장비는 전령 기병의 길을 끊습니다. 요새와 언덕 궁병선을 그대로 두면 피해가 누적됩니다.',
|
|
route: '아군 진영 → 강가 길목 → 언덕/요새 궁병선 → 전령 마원',
|
|
focus: '강가 척후선을 정리한 뒤 장비로 전령 기병의 길을 막고, 관우는 요새 수비병을 숲과 길목 밖으로 끌어내십시오.',
|
|
roles: ['관우: 강가 전열/요새 압박', '장비: 전령 추격/기병 견제', '유비: 후방 지휘와 회복'],
|
|
events: {
|
|
'village-approach': {
|
|
title: '요새 접근',
|
|
lines: ['요새와 망루 궁병이 전령을 감싸고 있습니다.', '요새 위 적은 방어와 회복 보정이 있으니 길목으로 끌어낸 뒤 압박하십시오.']
|
|
},
|
|
'vanguard-broken': {
|
|
title: '척후선 붕괴',
|
|
lines: ['전령 앞 척후선이 무너졌습니다.', '이제 장비가 좁은 길을 열고 관우가 요새 수비병을 붙잡아 궁병선을 분리해야 합니다.']
|
|
},
|
|
'cavalry-approach': {
|
|
title: '전령 호위 기병',
|
|
lines: ['전령 호위 기병이 길을 따라 압박해옵니다.', '관우로 받아내고 장비는 마원 쪽 길을 놓치지 마십시오.']
|
|
},
|
|
'enemy-posture': {
|
|
title: '요새 방어 태세',
|
|
lines: ['망루 궁병은 요새와 언덕에서 버티고 기병은 좁은 길을 흔듭니다.', '피해가 쌓이면 유비를 뒤로 물려 회복 여지를 남기세요.']
|
|
}
|
|
}
|
|
},
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '강가 길목에서 무리하지 않고 뒤에서 회복과 전열 유지 타이밍을 봅니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '숲과 요새 앞 길목을 받아내며 수비병을 밖으로 끌어내기 좋습니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '전령 기병이 쓰는 좁은 길을 빠르게 막아 마원을 놓치지 않습니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '강가 전열', classKeys: ['infantry'], reason: '숲과 요새 앞에서 궁병 견제를 버틸 전열이 필요합니다.' },
|
|
{ label: '추격 창병', classKeys: ['spearman'], reason: '전령 추격과 기병 길목 차단에 힘을 싣습니다.' },
|
|
{ label: '후방 지휘', classKeys: ['lord'], reason: '유비는 뒤에서 생존, 회복, 공명 연결을 책임지는 편이 안전합니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 16, label: '강가 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 17, label: '추격 출발' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 16, label: '후방 지휘' }
|
|
],
|
|
note: '강가 길목은 오래 버티는 전열과 빠른 추격이 모두 필요합니다. 유비는 뒤에 두고 관우와 장비를 지형 역할에 맞춰 앞세우십시오.'
|
|
},
|
|
map: thirdBattleMap,
|
|
units: thirdBattleUnits,
|
|
bonds: thirdBattleBonds,
|
|
mapTextureKey: 'battle-map-third',
|
|
leaderUnitId: 'guangzong-leader-ma-yuan',
|
|
quickVictoryTurnLimit: 18,
|
|
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: 300,
|
|
terrain: 'fort',
|
|
targetTile: { x: 18, y: 1, radius: 3 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 180,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 1', '의용군 명성 +3'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 1'],
|
|
equipment: ['단궁 1'],
|
|
reputation: ['의용군 명성 +3'],
|
|
unlockBattleId: 'fourth-battle-guangzong-camp',
|
|
unlockLabel: '광종 본영전 개방',
|
|
note: '광종 구원로 확보로 본영 진입 정보가 열립니다.'
|
|
},
|
|
victoryPages: thirdBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fourthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fourth-battle-guangzong-camp',
|
|
title: '광종 본영전',
|
|
victoryConditionLabel: '장각 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'황건 본영의 중심에는 장각이 있습니다. 장각을 격파하면 광종의 황건 세력은 무너집니다.',
|
|
'요새와 숲의 궁병이 진입로를 막고 있습니다. 측면의 기병과 중앙 수비병을 나누어 상대하십시오.',
|
|
'16턴 이내에 승리하면 황건적 토벌의 공적이 크게 오릅니다.'
|
|
],
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '장각 격파까지 전선이 무너지지 않도록 후방 지휘가 필요합니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '본영 정면의 요새 방어선을 뚫는 핵심 전열입니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '측면 궁병과 기병을 흔들어 본영 진입 시간을 줄입니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '강한 전열', classKeys: ['infantry'], reason: '요새와 궁병 앞에서 버티며 중앙 길을 여는 역할입니다.' },
|
|
{ label: '측면 돌파', classKeys: ['spearman'], reason: '본영 측면을 흔들어 장각까지 빠르게 접근합니다.' },
|
|
{ label: '후방 지휘', classKeys: ['lord'], reason: '패배 조건인 유비를 안전하게 두고 공명 보정을 유지합니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 15, label: '본영 입구' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 16, label: '측면 압박' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 15, label: '후방 지휘' }
|
|
],
|
|
note: '황건 본영은 세 형제 전원 출전과 역할 분담이 중요합니다. 장비를 돌파로 두면 측면 압박이 빨라집니다.'
|
|
},
|
|
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',
|
|
targetTile: { x: 12, y: 1, radius: 2 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '16턴 이내 승리',
|
|
rewardGold: 220,
|
|
maxTurn: 16
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 1', '탁주 1', '황건 토벌 공적 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 1', '탁주 1'],
|
|
equipment: ['황건도 1'],
|
|
reputation: ['황건 토벌 공적 +1'],
|
|
unlockBattleId: 'fifth-battle-sishui-vanguard',
|
|
unlockLabel: '사수관 전초전 개방',
|
|
note: '황건 본영 토벌 공적이 반동탁 연합 합류 명분으로 이어집니다.'
|
|
},
|
|
victoryPages: fourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifth-battle-sishui-vanguard',
|
|
title: '사수관 전초전',
|
|
victoryConditionLabel: '호진 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'반동탁 연합으로 향하는 길목을 동탁군 장수 호진이 막고 있습니다. 호진을 격파하면 사수관 앞 전초 진지가 흔들립니다.',
|
|
'중앙 길은 빠르지만 궁병과 기병의 반격을 받기 쉽습니다. 숲길 척후를 처리하고 요새 주변을 차근히 압박하십시오.',
|
|
'14턴 이내에 승리하면 공손찬 진영에서 세 형제의 무공이 더 크게 알려집니다.'
|
|
],
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '반동탁 연합에서 명분을 세워야 하므로 생존과 지휘가 우선입니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '전초 요새 앞 보병과 궁병의 반격을 안정적으로 받아냅니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '호진의 전열을 흔들고 숲길 척후를 빠르게 정리합니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '요새 전열', classKeys: ['infantry'], reason: '중앙 길의 궁병 반격을 견딜 단단한 전열이 필요합니다.' },
|
|
{ label: '숲길 돌파', classKeys: ['spearman'], reason: '측면 척후를 잡고 호진에게 접근할 돌파 담당이 좋습니다.' },
|
|
{ label: '지휘 후원', classKeys: ['lord'], reason: '유비는 후방에서 세 형제 공명과 생존 조건을 유지합니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 15, label: '요새 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 16, label: '숲길 돌파' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 15, label: '후방 지휘' }
|
|
],
|
|
note: '사수관 전초전은 중앙 길을 서두르되 숲길 척후를 놓치지 않는 편성이 좋습니다.'
|
|
},
|
|
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',
|
|
targetTile: { x: 12, y: 1, radius: 2 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '14턴 이내 승리',
|
|
rewardGold: 230,
|
|
maxTurn: 14
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 1', '탁주 1', '반동탁 공적 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 1', '탁주 1'],
|
|
equipment: ['찰갑 1'],
|
|
reputation: ['반동탁 공적 +1'],
|
|
unlockBattleId: 'sixth-battle-jieqiao-relief',
|
|
unlockLabel: '계교 원군로 개방',
|
|
note: '사수관 전초 진지의 전과가 공손찬 진영의 신뢰로 연결됩니다.'
|
|
},
|
|
victoryPages: fifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixth-battle-jieqiao-relief',
|
|
title: '계교 원군로',
|
|
victoryConditionLabel: '곡의 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'공손찬의 보급로를 원소군 교위 곡의가 끊으려 합니다. 곡의를 격파하면 계교로 향하는 길을 다시 열 수 있습니다.',
|
|
'강가의 궁병과 측면 기병이 동시에 압박합니다. 유비는 뒤에 두고 관우와 장비로 중앙 길을 확보하십시오.',
|
|
'15턴 이내에 승리하면 공손찬 진영에서 세 형제의 신뢰가 커집니다.'
|
|
],
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '공손찬 원군로의 명분을 지키되, 강가 압박에서 보호해야 합니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '강가와 진영 지형에서 적 선봉을 받아내는 전열이 됩니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '원소군 별동대와 측면 기병을 빠르게 압박합니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '강가 전열', classKeys: ['infantry'], reason: '궁병 견제를 맞으며 중앙 길을 확보해야 합니다.' },
|
|
{ label: '측면 돌파', classKeys: ['spearman'], reason: '별동대와 기병 압박을 끊어 내는 역할이 필요합니다.' },
|
|
{ label: '안전 지휘', classKeys: ['lord'], reason: '유비는 후방 배치로 생존과 지휘를 동시에 챙깁니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 16, label: '강가 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 17, label: '측면 대응' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 16, label: '후방 지휘' }
|
|
],
|
|
note: '계교 원군로는 빠른 압박보다 길목 안정이 중요합니다. 유비를 보호하고 관우와 장비로 먼저 맞받으십시오.'
|
|
},
|
|
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',
|
|
targetTile: { x: 17, y: 4, radius: 4 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '15턴 이내 승리',
|
|
rewardGold: 250,
|
|
maxTurn: 15
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 2', '탁주 1', '공손찬 신뢰 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 2', '탁주 1'],
|
|
equipment: ['바람 화살통 1'],
|
|
reputation: ['공손찬 신뢰 +1'],
|
|
unlockBattleId: 'seventh-battle-xuzhou-rescue',
|
|
unlockLabel: '서주 구원전 개방',
|
|
note: '계교 원군로를 지켜 공손찬 진영의 신뢰를 얻고, 서주 구원 요청으로 이어집니다.'
|
|
},
|
|
victoryPages: sixthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const seventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'seventh-battle-xuzhou-rescue',
|
|
title: '서주 구원전',
|
|
victoryConditionLabel: '하후돈 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조조군 선봉 하후돈이 서주 피난로와 마을을 압박하고 있습니다. 하후돈을 격파하면 서주 성문까지 길을 열 수 있습니다.',
|
|
'강가 궁병은 자리를 지키고, 기병은 길을 따라 빠르게 추격합니다. 마을을 확보하며 선봉을 단계적으로 끊어 내십시오.',
|
|
'18턴 이내에 승리하면 도겸과 서주 백성의 신뢰가 크게 오릅니다.'
|
|
],
|
|
sortie: {
|
|
sortieLimit: 3,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'liu-bei', role: 'support', reason: '서주 구원 요청의 중심입니다. 후방에서 생존과 보급 판단을 맡기면 전선이 안정됩니다.' },
|
|
{ unitId: 'guan-yu', role: 'front', reason: '마을 입구의 보병과 궁병을 받아내며 정면 전열을 세우기 좋습니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '측면 길을 빠르게 압박해 기병 추격과 잔존 적 정리를 맡기 좋습니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '마을 전열', classKeys: ['infantry'], reason: '마을 주변에서 방어 보정을 받으며 보병과 궁병을 안정적으로 상대합니다.' },
|
|
{ label: '측면 압박', classKeys: ['spearman'], reason: '길을 타고 들어오는 기병과 측면 적을 끊어내는 역할이 중요합니다.' },
|
|
{ label: '후방 지휘', classKeys: ['lord'], reason: '유비가 무리하지 않고 생존하면 서주 민심과 합류 보상이 자연스럽게 이어집니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 16, label: '마을 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 17, label: '측면 압박' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 16, label: '후방 지휘' }
|
|
],
|
|
note: '서주 구원전은 마을 확보와 유비 생존이 핵심입니다. 기본 전열은 관우 정면, 장비 측면, 유비 후방 지휘로 잡혀 있습니다.'
|
|
},
|
|
map: seventhBattleMap,
|
|
units: seventhBattleUnits,
|
|
bonds: seventhBattleBonds,
|
|
mapTextureKey: 'battle-map-seventh',
|
|
leaderUnitId: 'xuzhou-leader-xiahou-dun',
|
|
quickVictoryTurnLimit: 18,
|
|
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',
|
|
targetTile: { x: 16, y: 4, radius: 5 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 270,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 2', '상처약 2', '탁주 1', '서주 민심 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 2', '상처약 2', '탁주 1'],
|
|
equipment: ['병법서 1'],
|
|
reputation: ['서주 민심 +1'],
|
|
recruits: ['jian-yong', 'mi-zhu'],
|
|
unlockBattleId: 'eighth-battle-xiaopei-supply-road',
|
|
unlockLabel: '소패 보급로 방위전 개방',
|
|
note: '서주 구원으로 간옹과 미축이 합류합니다. 다음 전투부터 책사/보급관 선택지가 출전 준비에 표시됩니다.'
|
|
},
|
|
victoryPages: seventhBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const eighthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'eighth-battle-xiaopei-supply-road',
|
|
title: '소패 보급로 방위전',
|
|
victoryConditionLabel: '고순 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'여포군의 척후와 습격병이 소패 보급로의 창고를 노리고 있습니다. 고순을 격파하면 서주의 첫 방위선을 지킬 수 있습니다.',
|
|
'간옹은 병법서와 책략으로 길목 압박을 늦추고, 미축은 창고 주변 보급과 회복을 맡기 좋습니다. 마을과 창고 지형을 중심으로 전열을 잡으십시오.',
|
|
'18턴 이내 승리하면 서주 보급망과 새 합류 무장의 명성이 크게 오릅니다.'
|
|
],
|
|
tacticalGuide: {
|
|
summary: '중앙 창고 마을을 먼저 안정시키고, 관우가 길목을 버티는 동안 간옹과 미축이 후방에서 회복과 책략 보조를 이어갑니다.',
|
|
route: '아군 진영 → 중앙 창고 마을 → 동쪽 길목 → 고순 본대',
|
|
focus: '창고 습격병을 먼저 정리해 미축의 보급 위치를 확보하고, 간옹은 화계와 격려로 기병의 접근을 늦추십시오.',
|
|
roles: ['관우: 보급로 전열', '장비: 남쪽 길 압박', '간옹: 책략/격려 보조', '미축: 창고 보급/회복', '유비: 후방 지휘'],
|
|
events: {
|
|
'village-approach': {
|
|
title: '창고 마을 접근',
|
|
lines: ['소패 창고 주변에 습격병이 붙어 있습니다.', '미축을 후방에 두고 간옹의 책략으로 길목 적을 약화시키면 보급선을 안정시키기 쉽습니다.']
|
|
},
|
|
'enemy-posture': {
|
|
title: '보급로 압박',
|
|
lines: ['여포군 기병은 동쪽 길을 타고 빠르게 들어오고, 궁병은 언덕에서 전열을 끊으려 합니다.', '관우는 길목을 잡고 장비는 남쪽 압박, 간옹과 미축은 뒤에서 회복과 책략을 이어가십시오.']
|
|
},
|
|
'cavalry-approach': {
|
|
title: '기병 돌입',
|
|
lines: ['여포군 기병이 보급로 안쪽으로 파고듭니다.', '장비로 측면을 끊고 간옹의 격려 또는 화계로 돌파 속도를 늦추십시오.']
|
|
}
|
|
}
|
|
},
|
|
sortie: {
|
|
sortieLimit: 5,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'guan-yu', role: 'front', reason: '보급로 앞 길목을 버티며 고순 본대와 기병 압박을 받아냅니다.' },
|
|
{ unitId: 'jian-yong', role: 'support', reason: '병법서와 잘 맞는 책략 보조로 화계, 응급, 격려를 모두 활용할 수 있습니다.' },
|
|
{ unitId: 'mi-zhu', role: 'reserve', reason: '군량 주머니와 회복품 운용으로 창고 주변 장기전을 안정시킵니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '남쪽 길로 들어오는 기병과 습격병을 빠르게 압박합니다.' },
|
|
{ unitId: 'liu-bei', role: 'support', reason: '후방에서 생존을 지키며 새 합류 무장과 전열의 균형을 잡습니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '보급로 전열', classKeys: ['infantry'], reason: '마을과 길목 방어 보정을 살려 기병과 보병의 첫 압박을 받아냅니다.' },
|
|
{ label: '책략 보조', classKeys: ['strategist'], reason: '화계와 격려로 원거리 궁병과 기병 돌입을 늦추는 역할이 중요합니다.' },
|
|
{ label: '창고 보급', classKeys: ['quartermaster'], reason: '회복품과 마을 보정을 묶어 보급로 장기전을 안정시킵니다.' },
|
|
{ label: '측면 압박', classKeys: ['spearman'], reason: '남쪽 길의 기병 진입과 창고 습격병을 끊어냅니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 3, y: 17, label: '보급로 전열' },
|
|
{ role: 'support', unitId: 'jian-yong', x: 3, y: 18, label: '책략 보조' },
|
|
{ role: 'reserve', unitId: 'mi-zhu', x: 1, y: 18, label: '창고 보급' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 2, y: 18, label: '남쪽 압박' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 2, y: 17, label: '후방 지휘' }
|
|
],
|
|
note: '소패 보급로는 새로 합류한 간옹과 미축을 시험하기 좋은 전장입니다. 관우가 길목을 막고, 간옹은 책략, 미축은 보급을 맡는 전열이 기본입니다.'
|
|
},
|
|
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',
|
|
targetTile: { x: 12, y: 10, radius: 5 },
|
|
threatRadius: 0
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 300,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 3', '상처약 2', '탁주 1', '서주 보급망 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 3', '상처약 2', '탁주 1'],
|
|
equipment: ['군량 주머니 1'],
|
|
reputation: ['서주 보급망 +1'],
|
|
unlockBattleId: 'ninth-battle-xuzhou-gate-night-raid',
|
|
unlockLabel: '서주 성문 야습 개방',
|
|
note: '소패 보급로를 지켜 미축의 보급 운용과 간옹의 책략 지원이 서주 방위 편성에 자리 잡습니다.'
|
|
},
|
|
victoryPages: eighthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const ninthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'ninth-battle-xuzhou-gate-night-raid',
|
|
title: '서주 성문 야습',
|
|
victoryConditionLabel: '조표 격파',
|
|
defeatConditionLabel: '유비 퇴각',
|
|
openingObjectiveLines: [
|
|
'조표가 성문 수비병을 흔들고, 바깥의 여포군 기병은 불빛을 신호로 성문을 향해 파고듭니다. 조표를 격파하면 야습의 지휘를 끊을 수 있습니다.',
|
|
'8전에서 정돈한 보급품은 여기서 바로 의미가 있습니다. 미축은 성내 보급을 묶고, 간옹은 성벽 궁병과 기병 돌입을 책략으로 늦추십시오.',
|
|
'성문 중심을 확보한 채 18턴 이내 승리하면 서주 성문 수비와 내부 민심을 잠시나마 붙잡을 수 있습니다.'
|
|
],
|
|
tacticalGuide: {
|
|
summary: '성문 안쪽 배반병을 먼저 정리하고, 관우가 성문 정면을 잡는 동안 간옹과 미축이 후방에서 책략과 보급을 이어갑니다.',
|
|
route: '아군 진영 → 안쪽 배반병 → 중앙 성문 → 조표 본대',
|
|
focus: '남서 진영에서 길을 넓힌 뒤 성문 중앙으로 붙으십시오. 간옹은 성벽 궁병과 기병을 약화시키고, 미축은 회복품과 군량 주머니로 전열을 유지합니다.',
|
|
roles: ['관우: 성문 정면 전열', '장비: 남쪽 길 압박', '간옹: 화계/격려 책략', '미축: 보급품/회복 운용', '유비: 후방 지휘와 생존'],
|
|
events: {
|
|
'village-approach': {
|
|
title: '성문 중심 접근',
|
|
lines: ['성문 안팎의 길이 좁아지고 조표의 수비병이 버티고 있습니다.', '미축의 보급을 뒤에 두고 간옹의 책략으로 궁병과 기병을 먼저 흔들면 성문 확보가 쉬워집니다.']
|
|
},
|
|
'enemy-posture': {
|
|
title: '야습 진형 확인',
|
|
lines: ['성벽 궁병은 높은 지점을 지키고, 여포군 기병은 북쪽과 남쪽 길에서 성문으로 파고듭니다.', '관우가 정면을 붙잡고 장비가 남쪽을 누르는 동안 간옹과 미축을 너무 앞세우지 마십시오.']
|
|
},
|
|
'cavalry-approach': {
|
|
title: '여포군 기병 돌입',
|
|
lines: ['여포군 기병이 성문 옆길로 빠르게 들어옵니다.', '장비로 길을 끊고 간옹의 화계 또는 격려로 관우 전열의 부담을 줄이십시오.']
|
|
},
|
|
'leader-wavering': {
|
|
title: '조표 동요',
|
|
lines: ['조표의 지휘가 흔들리기 시작했습니다.', '성문 근처 적을 남겨 두지 말고 조표를 몰아붙이면 야습이 빠르게 무너집니다.']
|
|
}
|
|
}
|
|
},
|
|
sortie: {
|
|
sortieLimit: 5,
|
|
requiredUnits: ['liu-bei'],
|
|
recommendedUnits: [
|
|
{ unitId: 'guan-yu', role: 'front', reason: '성문 정면에서 조표 수비병과 여포군 기병 압박을 받아내는 핵심 전열입니다.' },
|
|
{ unitId: 'jian-yong', role: 'support', reason: '화계와 격려로 성벽 궁병, 기병 돌입, 조표 주변 전열을 늦출 수 있습니다.' },
|
|
{ unitId: 'mi-zhu', role: 'reserve', reason: '8전 보급품과 군량 주머니를 활용해 성문 장기전의 회복 흐름을 안정시킵니다.' },
|
|
{ unitId: 'zhang-fei', role: 'flank', reason: '남쪽 길로 파고드는 기병을 끊고 성문 측면을 빠르게 압박합니다.' },
|
|
{ unitId: 'liu-bei', role: 'support', reason: '서주 성문을 되찾는 명분의 중심이므로 후방 지휘와 생존을 함께 챙깁니다.' }
|
|
],
|
|
recommendedClasses: [
|
|
{ label: '성문 전열', classKeys: ['infantry'], reason: '요새 지형 앞에서 보병과 장수를 받아낼 안정적인 전열이 필요합니다.' },
|
|
{ label: '책략 제압', classKeys: ['strategist'], reason: '궁병 고정 사격과 기병 돌입을 화계, 격려, 응급으로 늦추는 역할이 큽니다.' },
|
|
{ label: '보급 유지', classKeys: ['quartermaster'], reason: '8전에서 얻은 보급품을 실제 전열 유지로 연결하기 좋습니다.' },
|
|
{ label: '측면 차단', classKeys: ['spearman'], reason: '남쪽 길 기병과 성문 배반병을 빠르게 끊어내야 합니다.' }
|
|
],
|
|
deploymentSlots: [
|
|
{ role: 'front', unitId: 'guan-yu', x: 4, y: 17, label: '성문 전열' },
|
|
{ role: 'flank', unitId: 'zhang-fei', x: 3, y: 18, label: '남쪽 차단' },
|
|
{ role: 'support', unitId: 'jian-yong', x: 5, y: 18, label: '책략 엄호' },
|
|
{ role: 'reserve', unitId: 'mi-zhu', x: 4, y: 19, label: '보급 수레' },
|
|
{ role: 'support', unitId: 'liu-bei', x: 3, y: 17, label: '후방 지휘' }
|
|
],
|
|
note: '서주 성문 야습은 8전 보상과 새 합류 무장을 실제로 써 보는 첫 성문전입니다. 관우는 정면, 장비는 남쪽, 간옹과 미축은 뒤에서 책략과 보급을 맡는 전열이 기본입니다.'
|
|
},
|
|
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',
|
|
targetTile: { x: 20, y: 10, radius: 4 },
|
|
threatRadius: 2
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '18턴 이내 승리',
|
|
rewardGold: 320,
|
|
maxTurn: 18
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
|
itemRewards: ['콩 3', '상처약 2', '탁주 1', '서주 성문 수비 +1'],
|
|
campaignReward: {
|
|
supplies: ['콩 3', '상처약 2', '탁주 1'],
|
|
equipment: ['찰갑 1'],
|
|
reputation: ['서주 성문 수비 +1'],
|
|
unlockBattleId: 'tenth-battle-xuzhou-breakout',
|
|
unlockLabel: '서주 탈출전 개방',
|
|
note: '성문은 지켰지만 내부 균열이 깊어져, 다음 전투는 성을 되찾기보다 포위망을 빠져나가는 흐름으로 이어집니다.'
|
|
},
|
|
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', '상처약 4', '탁주 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', '상처약 5', '탁주 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', '상처약 5', '탁주 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: 31,
|
|
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: '31턴 이내 승리',
|
|
rewardGold: 640,
|
|
maxTurn: 31
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'liu-bei' },
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' },
|
|
{ kind: 'unit-defeated', unitId: 'sun-qian' }
|
|
],
|
|
itemRewards: ['콩 8', '상처약 6', '탁주 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: 48,
|
|
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: '48턴 이내 승리',
|
|
rewardGold: 1120,
|
|
maxTurn: 48
|
|
}
|
|
],
|
|
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: 50,
|
|
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: '50턴 이내 승리',
|
|
rewardGold: 1180,
|
|
maxTurn: 50
|
|
}
|
|
],
|
|
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: 70,
|
|
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: '70턴 이내 승리',
|
|
rewardGold: 1440,
|
|
maxTurn: 70
|
|
}
|
|
],
|
|
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: ['콩 42', '상처약 30', '탁주 13', '남중 산길 지도 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: ['콩 44', '상처약 32', '탁주 14', '맹획 회유 서신 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: ['콩 46', '상처약 34', '탁주 15', '칠종칠금 회유문 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: ['콩 42', '상처약 30', '탁주 14', '남중 호족 설득문 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: 24,
|
|
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: '24턴 이내 네 번째 생포',
|
|
rewardGold: 2780,
|
|
maxTurn: 24
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 34', '상처약 24', '탁주 12', '호족 보증 장부 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: 26,
|
|
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: '26턴 이내 다섯 번째 생포',
|
|
rewardGold: 2920,
|
|
maxTurn: 26
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 36', '상처약 26', '탁주 13', '강경파 분리 장부 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: 28,
|
|
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: '28턴 이내 여섯 번째 생포',
|
|
rewardGold: 3060,
|
|
maxTurn: 28
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 38', '상처약 28', '탁주 14', '남중 신뢰 장부 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: 30,
|
|
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: '30턴 이내 마지막 생포',
|
|
rewardGold: 3220,
|
|
maxTurn: 30
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 42', '상처약 30', '탁주 15', '남중 평정 장부 1', '맹획 항복 서약 1'],
|
|
victoryPages: fiftyFourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fiftyFifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifty-fifth-battle-northern-qishan-road',
|
|
title: '제1차 북벌 출진로',
|
|
victoryConditionLabel: '기산 산길 돌파와 한중 보급로 확보',
|
|
defeatConditionLabel: '제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'남중 평정 이후 처음으로 촉한의 군세가 북쪽을 향합니다. 조진의 전초 부대가 기산으로 향하는 길목과 마을, 보급 거점을 누르고 있으니 먼저 산길을 뚫어야 합니다.',
|
|
'이번 전투는 유비공이 아니라 제갈량이 직접 지휘하는 북벌의 첫 실전입니다. 출전 무장을 고를 때 기동, 보급, 산길 수비, 원거리 견제를 함께 고려해야 합니다.',
|
|
'조진을 물러나게 하고 기산 산길과 한중 보급 캠프, 서쪽 마을을 확보하십시오. 촉한의 북벌은 여기서부터 긴 전선으로 이어집니다.'
|
|
],
|
|
map: fiftyFifthBattleMap,
|
|
units: fiftyFifthBattleUnits,
|
|
bonds: fiftyFifthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifty-fifth',
|
|
leaderUnitId: 'northern-first-leader-cao-zhen',
|
|
quickVictoryTurnLimit: 90,
|
|
baseVictoryGold: 14920,
|
|
objectives: [
|
|
{
|
|
id: 'repel-cao-zhen',
|
|
kind: 'defeat-leader',
|
|
label: '조진 전초대 격퇴',
|
|
rewardGold: 9980,
|
|
unitId: 'northern-first-leader-cao-zhen'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 2600,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'qishan-road',
|
|
kind: 'secure-terrain',
|
|
label: '기산 산길 확보',
|
|
rewardGold: 5100,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'hanzhong-supply-camp',
|
|
kind: 'secure-terrain',
|
|
label: '한중 보급 거점 유지',
|
|
rewardGold: 4860,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'western-villages',
|
|
kind: 'secure-terrain',
|
|
label: '서쪽 마을 안정',
|
|
rewardGold: 4520,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '90턴 이내 출진로 확보',
|
|
rewardGold: 3360,
|
|
maxTurn: 90
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 60', '상처약 44', '탁주 22', '기산 출진 장부 1', '한중 보급 표식 1'],
|
|
victoryPages: fiftyFifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fiftySixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifty-sixth-battle-tianshui-advance',
|
|
title: '천수 진군로',
|
|
victoryConditionLabel: '천수 길목 돌파와 곽회 방어선 격퇴',
|
|
defeatConditionLabel: '제갈량 퇴각',
|
|
openingObjectiveLines: [
|
|
'기산 출진로를 열었지만 위군은 천수와 가정 사이에 새 방어선을 폈습니다. 곽회가 본영을 잡고, 강유라는 젊은 장수가 산길의 허점을 살피고 있습니다.',
|
|
'이번 전투는 적장을 베는 것만으로 끝나지 않습니다. 천수 길목, 물길, 마을, 가정으로 이어지는 고개를 함께 보아야 북벌이 끊기지 않습니다.',
|
|
'곽회를 물러나게 하고 강유의 움직임을 확인하십시오. 다음 전선에서 그 이름이 촉한에 어떤 의미가 될지 여기서 처음 드러납니다.'
|
|
],
|
|
map: fiftySixthBattleMap,
|
|
units: fiftySixthBattleUnits,
|
|
bonds: fiftySixthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifty-sixth',
|
|
leaderUnitId: 'northern-second-leader-guo-huai',
|
|
quickVictoryTurnLimit: 112,
|
|
baseVictoryGold: 15480,
|
|
objectives: [
|
|
{
|
|
id: 'repel-guo-huai',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 방어선 격퇴',
|
|
rewardGold: 10380,
|
|
unitId: 'northern-second-leader-guo-huai'
|
|
},
|
|
{
|
|
id: 'test-jiang-wei',
|
|
kind: 'defeat-leader',
|
|
label: '강유의 전술 확인',
|
|
rewardGold: 4800,
|
|
unitId: 'northern-second-officer-jiang-wei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 2720,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'tianshui-road',
|
|
kind: 'secure-terrain',
|
|
label: '천수 진군로 확보',
|
|
rewardGold: 5400,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'jieting-forts',
|
|
kind: 'secure-terrain',
|
|
label: '가정 고개 요새 압박',
|
|
rewardGold: 5060,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'waterline-villages',
|
|
kind: 'secure-terrain',
|
|
label: '물길 마을 안정',
|
|
rewardGold: 4740,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '112턴 이내 천수로 확보',
|
|
rewardGold: 3480,
|
|
maxTurn: 112
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 62', '상처약 46', '탁주 23', '천수 진군 장부 1', '가정 지형 표식 1'],
|
|
victoryPages: fiftySixthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fiftySeventhBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifty-seventh-battle-jieting-crisis',
|
|
title: '가정 배치 위기',
|
|
victoryConditionLabel: '가정 고지와 물길 확보 및 장합 선봉 저지',
|
|
defeatConditionLabel: '제갈량 또는 왕평 퇴각',
|
|
openingObjectiveLines: [
|
|
'천수 방면에서 길을 열었지만 가정의 배치가 흔들리면 북벌군의 퇴로와 군량이 동시에 끊깁니다.',
|
|
'마속은 높은 곳을 주장하고, 왕평은 물길과 수레 길을 먼저 보아야 한다고 말합니다. 이번 전투는 고지를 차지하는 것보다 버틸 수 있는 진영을 만드는 일이 더 중요합니다.',
|
|
'장합의 선봉을 막고 물길을 확보하십시오. 강유에게 남긴 길도 여기서 시험받습니다.'
|
|
],
|
|
map: fiftySeventhBattleMap,
|
|
units: fiftySeventhBattleUnits,
|
|
bonds: fiftySeventhBattleBonds,
|
|
mapTextureKey: 'battle-map-fifty-seventh',
|
|
leaderUnitId: 'northern-third-leader-zhang-he',
|
|
quickVictoryTurnLimit: 114,
|
|
baseVictoryGold: 16140,
|
|
objectives: [
|
|
{
|
|
id: 'repel-zhang-he',
|
|
kind: 'defeat-leader',
|
|
label: '장합 선봉 저지',
|
|
rewardGold: 10840,
|
|
unitId: 'northern-third-leader-zhang-he'
|
|
},
|
|
{
|
|
id: 'contact-jiang-wei',
|
|
kind: 'defeat-leader',
|
|
label: '강유 접촉로 확보',
|
|
rewardGold: 5200,
|
|
unitId: 'northern-third-officer-jiang-wei'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 2840,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'wang-ping',
|
|
kind: 'keep-unit-alive',
|
|
label: '왕평 생존',
|
|
rewardGold: 2860,
|
|
unitId: 'wang-ping'
|
|
},
|
|
{
|
|
id: 'jieting-waterline',
|
|
kind: 'secure-terrain',
|
|
label: '가정 물길 확보',
|
|
rewardGold: 5600,
|
|
terrain: 'river'
|
|
},
|
|
{
|
|
id: 'ridge-camps',
|
|
kind: 'secure-terrain',
|
|
label: '고지 아래 진영 유지',
|
|
rewardGold: 5360,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'ridge-forts',
|
|
kind: 'secure-terrain',
|
|
label: '가정 고지 압박',
|
|
rewardGold: 5240,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '114턴 이내 가정 수습',
|
|
rewardGold: 3600,
|
|
maxTurn: 114
|
|
}
|
|
],
|
|
defeatConditions: [
|
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' },
|
|
{ kind: 'unit-defeated', unitId: 'wang-ping' }
|
|
],
|
|
itemRewards: ['콩 64', '상처약 48', '탁주 24', '가정 물길 장부 1', '강유 합류'],
|
|
victoryPages: fiftySeventhBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fiftyEighthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifty-eighth-battle-qishan-retreat',
|
|
title: '기산 후퇴로',
|
|
victoryConditionLabel: '기산 퇴로와 군량 수레 확보 및 사마의 본대 저지',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 군량 퇴로 상실',
|
|
openingObjectiveLines: [
|
|
'가정의 위기는 넘겼지만 북벌군의 보급선은 이미 길게 늘어졌습니다. 무리한 추격보다 기산으로 돌아가는 군량 수레 길을 먼저 열어 병사를 살려야 합니다.',
|
|
'강유가 촉한의 장수로 처음 출전 후보에 들어왔습니다. 천수의 낮은 길을 아는 강유, 물길을 보는 왕평, 회수 기동의 조운과 마대 중 누구에게 자리를 줄지 결정하십시오.',
|
|
'장합의 빠른 추격을 끊고 사마의의 본대를 저지하십시오. 물길과 수레 길, 후방 진영을 함께 확보하면 다음 북벌을 준비할 병력과 장부를 지킬 수 있습니다.'
|
|
],
|
|
map: fiftyEighthBattleMap,
|
|
units: fiftyEighthBattleUnits,
|
|
bonds: fiftyEighthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifty-eighth',
|
|
leaderUnitId: 'northern-fourth-leader-sima-yi',
|
|
quickVictoryTurnLimit: 116,
|
|
baseVictoryGold: 16680,
|
|
objectives: [
|
|
{
|
|
id: 'repel-sima-yi',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 본대 저지',
|
|
rewardGold: 11400,
|
|
unitId: 'northern-fourth-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'halt-zhang-he',
|
|
kind: 'defeat-leader',
|
|
label: '장합 추격 차단',
|
|
rewardGold: 5600,
|
|
unitId: 'northern-fourth-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 2980,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'qishan-cart-road',
|
|
kind: 'secure-terrain',
|
|
label: '기산 군량 수레 길 확보',
|
|
rewardGold: 5900,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'qishan-waterline',
|
|
kind: 'secure-terrain',
|
|
label: '퇴각 물길 확보',
|
|
rewardGold: 5780,
|
|
terrain: 'river'
|
|
},
|
|
{
|
|
id: 'rear-camps',
|
|
kind: 'secure-terrain',
|
|
label: '후방 진영 수습',
|
|
rewardGold: 5480,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'ridge-forts',
|
|
kind: 'secure-terrain',
|
|
label: '위군 능선 거점 제압',
|
|
rewardGold: 5320,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '116턴 이내 기산 후퇴 완료',
|
|
rewardGold: 3720,
|
|
maxTurn: 116
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 66', '상처약 50', '탁주 25', '기산 퇴각 지도 1', '강유 첫 출전 기록 1'],
|
|
victoryPages: fiftyEighthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const fiftyNinthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'fifty-ninth-battle-chencang-siege',
|
|
title: '진창 공성전',
|
|
victoryConditionLabel: '학소 진창 수비 압박과 왕쌍 추격 차단',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 공성 진영 붕괴',
|
|
openingObjectiveLines: [
|
|
'기산에서 후퇴한 뒤 촉한군은 병사와 장부를 다시 묶어 진창 성채를 압박합니다. 학소가 성벽을 굳게 지키고 있어 성문 하나만 바라보는 공격은 오래 버티지 못합니다.',
|
|
'강유는 길을 알고, 왕평은 진영 표식을 보며, 위연은 돌파를 원합니다. 여기에 황권과 마량, 법정의 장부와 계책을 어떻게 넣을지에 따라 공성전의 무게가 달라집니다.',
|
|
'학소의 수비를 흔들고 왕쌍의 추격을 차단하십시오. 공성 진영과 군량 수레 길을 함께 지키면 다음 북방 계산으로 이어갈 수 있습니다.'
|
|
],
|
|
map: fiftyNinthBattleMap,
|
|
units: fiftyNinthBattleUnits,
|
|
bonds: fiftyNinthBattleBonds,
|
|
mapTextureKey: 'battle-map-fifty-ninth',
|
|
leaderUnitId: 'northern-fifth-leader-hao-zhao',
|
|
quickVictoryTurnLimit: 118,
|
|
baseVictoryGold: 17280,
|
|
objectives: [
|
|
{
|
|
id: 'pressure-hao-zhao',
|
|
kind: 'defeat-leader',
|
|
label: '학소 진창 수비 압박',
|
|
rewardGold: 12040,
|
|
unitId: 'northern-fifth-leader-hao-zhao'
|
|
},
|
|
{
|
|
id: 'halt-wang-shuang',
|
|
kind: 'defeat-leader',
|
|
label: '왕쌍 추격 차단',
|
|
rewardGold: 6000,
|
|
unitId: 'northern-fifth-officer-wang-shuang'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 3100,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'chencang-gate',
|
|
kind: 'secure-terrain',
|
|
label: '진창 성문 압박',
|
|
rewardGold: 6200,
|
|
terrain: 'fort'
|
|
},
|
|
{
|
|
id: 'siege-camps',
|
|
kind: 'secure-terrain',
|
|
label: '공성 진영 유지',
|
|
rewardGold: 5940,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'grain-road',
|
|
kind: 'secure-terrain',
|
|
label: '군량 수레 길 확보',
|
|
rewardGold: 5820,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'rear-villages',
|
|
kind: 'secure-terrain',
|
|
label: '후방 마을 안정',
|
|
rewardGold: 5480,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '118턴 이내 진창 압박 완료',
|
|
rewardGold: 3840,
|
|
maxTurn: 118
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 68', '상처약 52', '탁주 26', '진창 공성 장부 1', '왕쌍 추격 기록 1'],
|
|
victoryPages: fiftyNinthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtiethBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixtieth-battle-wudu-yinping',
|
|
title: '무도·음평 확보전',
|
|
victoryConditionLabel: '곽회 구원로 차단과 무도·음평 확보',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 두 고을 보급선 붕괴',
|
|
openingObjectiveLines: [
|
|
'진창에서 물러난 뒤 촉한군은 무도와 음평의 산길을 동시에 압박합니다. 성 하나를 오래 치는 대신 두 고을의 길목을 얻어 북벌의 숨통을 넓히려 합니다.',
|
|
'곽회는 구원 기병과 산길 수비대를 보내 두 길을 끊으려 합니다. 강유가 길을 읽고 위연이 돌파하되, 조운·마대·왕평·황권·마량 중 누구를 데려갈지 선택이 전투의 모양을 바꿉니다.',
|
|
'곽회의 본대를 늦추고 무도와 음평의 마을, 수레 길, 산길 진영을 함께 안정시키십시오. 두 고을을 얻어도 보급이 끊기면 다음 북벌은 다시 좁아집니다.'
|
|
],
|
|
map: sixtiethBattleMap,
|
|
units: sixtiethBattleUnits,
|
|
bonds: sixtiethBattleBonds,
|
|
mapTextureKey: 'battle-map-sixtieth',
|
|
leaderUnitId: 'northern-sixth-leader-guo-huai',
|
|
quickVictoryTurnLimit: 120,
|
|
baseVictoryGold: 17920,
|
|
objectives: [
|
|
{
|
|
id: 'repel-guo-huai-relief',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 구원로 차단',
|
|
rewardGold: 12600,
|
|
unitId: 'northern-sixth-leader-guo-huai'
|
|
},
|
|
{
|
|
id: 'secure-wudu-guard',
|
|
kind: 'defeat-leader',
|
|
label: '무도 고개 수비 제압',
|
|
rewardGold: 6280,
|
|
unitId: 'northern-sixth-officer-wudu'
|
|
},
|
|
{
|
|
id: 'secure-yinping-guard',
|
|
kind: 'defeat-leader',
|
|
label: '음평 물목 수비 제압',
|
|
rewardGold: 6240,
|
|
unitId: 'northern-sixth-officer-yinping'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 3200,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'two-commandery-road',
|
|
kind: 'secure-terrain',
|
|
label: '두 고을 수레 길 확보',
|
|
rewardGold: 6040,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'wudu-yinping-villages',
|
|
kind: 'secure-terrain',
|
|
label: '무도·음평 마을 안정',
|
|
rewardGold: 5900,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'mountain-camps',
|
|
kind: 'secure-terrain',
|
|
label: '산길 진영 유지',
|
|
rewardGold: 5760,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '120턴 이내 두 고을 확보',
|
|
rewardGold: 3920,
|
|
maxTurn: 120
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 70', '상처약 54', '탁주 27', '무도·음평 장부 1', '곽회 구원로 기록 1'],
|
|
victoryPages: sixtiethBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtyFirstBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-first-battle-hanzhong-rain-defense',
|
|
title: '한중 우로 방어전',
|
|
victoryConditionLabel: '한중 북문과 두 고을 보급선 방어',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 보급 방어선 붕괴',
|
|
openingObjectiveLines: [
|
|
'무도와 음평을 확보한 뒤 위군은 조진을 앞세워 한중 북문의 빗길을 압박합니다. 새로 얻은 두 고을은 이제 전리품이 아니라 지켜야 할 보급 책임입니다.',
|
|
'조진의 본대를 늦추고 사마의 별동대가 봉화로 길을 잇기 전에 끊으십시오. 강유와 왕평은 길을 보고, 이엄과 황권은 군량 흐름을 맞추며, 위연은 반격할 순간을 기다립니다.',
|
|
'한중 창고 진영, 무도·음평 수레 길, 전방 마을을 함께 지키십시오. 어느 하나가 무너지면 다음 북벌은 출발하기 전에 숨이 막힙니다.'
|
|
],
|
|
map: sixtyFirstBattleMap,
|
|
units: sixtyFirstBattleUnits,
|
|
bonds: sixtyFirstBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-first',
|
|
leaderUnitId: 'northern-seventh-leader-cao-zhen',
|
|
quickVictoryTurnLimit: 122,
|
|
baseVictoryGold: 18480,
|
|
objectives: [
|
|
{
|
|
id: 'repel-cao-zhen-main',
|
|
kind: 'defeat-leader',
|
|
label: '조진 본대 격퇴',
|
|
rewardGold: 13000,
|
|
unitId: 'northern-seventh-leader-cao-zhen'
|
|
},
|
|
{
|
|
id: 'check-sima-yi-column',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 별동대 견제',
|
|
rewardGold: 6680,
|
|
unitId: 'northern-seventh-officer-sima-yi'
|
|
},
|
|
{
|
|
id: 'hold-wudu-yinping-supply',
|
|
kind: 'defeat-leader',
|
|
label: '무도·음평 보급선 방어',
|
|
rewardGold: 6540,
|
|
unitId: 'northern-seventh-officer-supply'
|
|
},
|
|
{
|
|
id: 'zhuge-liang',
|
|
kind: 'keep-unit-alive',
|
|
label: '제갈량 생존',
|
|
rewardGold: 3300,
|
|
unitId: 'zhuge-liang'
|
|
},
|
|
{
|
|
id: 'hanzhong-granary-camps',
|
|
kind: 'secure-terrain',
|
|
label: '한중 창고 진영 유지',
|
|
rewardGold: 6260,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'rain-pass-roads',
|
|
kind: 'secure-terrain',
|
|
label: '빗길 수레길 확보',
|
|
rewardGold: 6120,
|
|
terrain: 'road'
|
|
},
|
|
{
|
|
id: 'front-villages',
|
|
kind: 'secure-terrain',
|
|
label: '전방 마을 안심',
|
|
rewardGold: 5960,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '122턴 이내 방어선 안정',
|
|
rewardGold: 4040,
|
|
maxTurn: 122
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 72', '상처약 56', '탁주 28', '한중 우로 장부 1', '조진 역공 기록 1'],
|
|
victoryPages: sixtyFirstBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtySecondBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-second-battle-qishan-renewed-offensive',
|
|
title: '기산 재출정전',
|
|
victoryConditionLabel: '노성 지연선 돌파와 기산 보급로 전진',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 회수선 붕괴',
|
|
openingObjectiveLines: [
|
|
'한중 우로 방어 후 촉한군은 지켜 낸 무도·음평 보급선을 다시 북쪽 공격로로 바꾸려 합니다. 노성 앞의 위군 지연선은 사마의가 시간을 벌기 위해 세운 첫 벽입니다.',
|
|
'강유와 위연은 앞길을 열고, 조운과 왕평은 깊이 들어간 부대가 돌아올 표식을 남겨야 합니다. 황권과 마량은 군량과 민심을 함께 보아 공세가 약탈처럼 보이지 않게 해야 합니다.',
|
|
'사마의의 본영, 장합의 추격대, 곽회의 측면 차단을 동시에 끊으십시오. 기산 수레 길과 전방 마을, 회수 진영을 지켜야 다음 북벌이 더 깊이 이어집니다.'
|
|
],
|
|
map: sixtySecondBattleMap,
|
|
units: sixtySecondBattleUnits,
|
|
bonds: sixtySecondBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-second',
|
|
leaderUnitId: 'northern-eighth-leader-sima-yi',
|
|
quickVictoryTurnLimit: 124,
|
|
baseVictoryGold: 19240,
|
|
objectives: [
|
|
{
|
|
id: 'press-sima-yi-delay-line',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 지연선 돌파',
|
|
rewardGold: 13600,
|
|
unitId: 'northern-eighth-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'check-zhang-he-pursuit',
|
|
kind: 'defeat-leader',
|
|
label: '장합 추격대 저지',
|
|
rewardGold: 8200,
|
|
unitId: 'northern-eighth-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'break-guo-huai-flank',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 측면 차단 해제',
|
|
rewardGold: 7600,
|
|
unitId: 'northern-eighth-officer-guo-huai'
|
|
},
|
|
{
|
|
id: 'qishan-supply-camps',
|
|
kind: 'secure-terrain',
|
|
label: '기산 보급 진영 유지',
|
|
rewardGold: 6400,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'lucheng-front-villages',
|
|
kind: 'secure-terrain',
|
|
label: '노성 앞 마을 안심',
|
|
rewardGold: 6200,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '124턴 이내 지연선 돌파',
|
|
rewardGold: 4180,
|
|
maxTurn: 124
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 74', '상처약 58', '탁주 29', '기산 재출정 장부 1', '노성 지연선 기록 1'],
|
|
victoryPages: sixtySecondBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtyThirdBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-third-battle-lucheng-pursuit',
|
|
title: '노성 추격전',
|
|
victoryConditionLabel: '노성 추격로 확보와 회수 표식 유지',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 보급 수레 붕괴',
|
|
openingObjectiveLines: [
|
|
'기산 재출정으로 노성 앞 지연선을 밀어 낸 촉한군은 더 깊은 추격로를 열려 합니다. 그러나 사마의는 물러나는 척하며 회수 표식과 보급 수레를 끊으려 합니다.',
|
|
'강유와 위연은 낮은 길과 돌파선을 나누고, 조운과 왕평은 장합의 기병이 뒤를 흔들기 전에 예비대와 표식을 이어야 합니다.',
|
|
'사마의의 노성 방어 본영, 장합의 회수선 추격대, 곽회의 봉화 차단로를 동시에 끊으십시오. 추격로를 얻어도 수레와 마을을 잃으면 다음 북벌은 깊어질 수 없습니다.'
|
|
],
|
|
map: sixtyThirdBattleMap,
|
|
units: sixtyThirdBattleUnits,
|
|
bonds: sixtyThirdBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-third',
|
|
leaderUnitId: 'northern-ninth-leader-sima-yi',
|
|
quickVictoryTurnLimit: 126,
|
|
baseVictoryGold: 19880,
|
|
objectives: [
|
|
{
|
|
id: 'break-sima-yi-lucheng-defense',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 노성 방어 돌파',
|
|
rewardGold: 14100,
|
|
unitId: 'northern-ninth-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'stop-zhang-he-return-raid',
|
|
kind: 'defeat-leader',
|
|
label: '장합 회수선 추격 저지',
|
|
rewardGold: 8500,
|
|
unitId: 'northern-ninth-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'silence-guo-huai-beacons',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 봉화 차단',
|
|
rewardGold: 7900,
|
|
unitId: 'northern-ninth-officer-guo-huai'
|
|
},
|
|
{
|
|
id: 'hold-return-supply-camps',
|
|
kind: 'secure-terrain',
|
|
label: '회수 보급 진영 유지',
|
|
rewardGold: 6640,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'reassure-lucheng-villages',
|
|
kind: 'secure-terrain',
|
|
label: '노성 주변 마을 안심',
|
|
rewardGold: 6440,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '126턴 이내 추격로 확보',
|
|
rewardGold: 4360,
|
|
maxTurn: 126
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 76', '상처약 60', '탁주 30', '노성 추격 장부 1', '회수 표식 기록 1'],
|
|
victoryPages: sixtyThirdBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtyFourthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-fourth-battle-weishui-camps',
|
|
title: '위수 진영전',
|
|
victoryConditionLabel: '위수 남안 진영 확보와 봉화 차단',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 보급 수레 붕괴',
|
|
openingObjectiveLines: [
|
|
'노성 추격 뒤에도 사마의는 위수 북안에 진영을 겹겹이 세우고 시간을 벌고 있습니다. 촉한군은 강을 성급히 넘기보다 남안의 진영과 물목, 봉화선을 먼저 끊어야 합니다.',
|
|
'강유와 왕평은 낮은 길과 회수 표식을 맡고, 황권과 이엄은 긴 수레길을 전장 기준으로 맞춥니다. 위연과 마대는 장합의 기병이 뒤를 물기 전에 진영 사이를 흔들어야 합니다.',
|
|
'사마의의 위수 본영, 장합의 물목 추격대, 곽회의 봉화선을 동시에 늦추십시오. 강가 마을과 보급 진영을 지키면 다음 북방 공세가 더 깊게 이어집니다.'
|
|
],
|
|
map: sixtyFourthBattleMap,
|
|
units: sixtyFourthBattleUnits,
|
|
bonds: sixtyFourthBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-fourth',
|
|
leaderUnitId: 'northern-tenth-leader-sima-yi',
|
|
quickVictoryTurnLimit: 128,
|
|
baseVictoryGold: 20560,
|
|
objectives: [
|
|
{
|
|
id: 'break-sima-yi-weishui-camps',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 위수 본영 압박',
|
|
rewardGold: 14600,
|
|
unitId: 'northern-tenth-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'stop-zhang-he-crossing-raid',
|
|
kind: 'defeat-leader',
|
|
label: '장합 물목 추격 저지',
|
|
rewardGold: 8840,
|
|
unitId: 'northern-tenth-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'silence-guo-huai-weishui-beacons',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 위수 봉화 차단',
|
|
rewardGold: 8220,
|
|
unitId: 'northern-tenth-officer-guo-huai'
|
|
},
|
|
{
|
|
id: 'hold-weishui-supply-camps',
|
|
kind: 'secure-terrain',
|
|
label: '위수 보급 진영 확보',
|
|
rewardGold: 6880,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'reassure-river-villages',
|
|
kind: 'secure-terrain',
|
|
label: '강가 마을 안심',
|
|
rewardGold: 6660,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '128턴 이내 위수 진영 장악',
|
|
rewardGold: 4540,
|
|
maxTurn: 128
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 78', '상처약 62', '탁주 30', '위수 진영 장부 1', '강안 봉화 기록 1'],
|
|
victoryPages: sixtyFourthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtyFifthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-fifth-battle-weishui-northbank',
|
|
title: '위수 북안 압박전',
|
|
victoryConditionLabel: '위수 북안 전진 진영 압박과 재추격 저지',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 보급 수레 붕괴',
|
|
openingObjectiveLines: [
|
|
'위수 남안 진영을 얻었지만 사마의는 북안에 더 촘촘한 지연선을 세웠습니다. 이번 출전은 강북을 끝내는 결전이 아니라, 전진 진영과 봉화선을 눌러 다음 북방 공세의 숨을 만드는 싸움입니다.',
|
|
'강유와 마대는 낮은 물목과 측면 기병을 읽고, 왕평과 황권은 정지선과 장부를 맞춥니다. 제갈량과 이엄은 진영을 얻은 뒤에도 수레가 끊기지 않을 군령을 세워야 합니다.',
|
|
'사마의의 북안 지연선, 장합의 재추격대, 곽회의 북안 봉화를 동시에 늦추십시오. 강북 마을과 전진 진영을 지키면 다음 북방 선택지가 더 선명해집니다.'
|
|
],
|
|
map: sixtyFifthBattleMap,
|
|
units: sixtyFifthBattleUnits,
|
|
bonds: sixtyFifthBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-fifth',
|
|
leaderUnitId: 'northern-eleventh-leader-sima-yi',
|
|
quickVictoryTurnLimit: 130,
|
|
baseVictoryGold: 21240,
|
|
objectives: [
|
|
{
|
|
id: 'break-sima-yi-northbank-delay-line',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 북안 지연선 압박',
|
|
rewardGold: 15100,
|
|
unitId: 'northern-eleventh-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'stop-zhang-he-rearguard-raid',
|
|
kind: 'defeat-leader',
|
|
label: '장합 재추격대 저지',
|
|
rewardGold: 9160,
|
|
unitId: 'northern-eleventh-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'silence-guo-huai-northbank-beacons',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 북안 봉화 차단',
|
|
rewardGold: 8520,
|
|
unitId: 'northern-eleventh-officer-guo-huai'
|
|
},
|
|
{
|
|
id: 'hold-northbank-forward-camps',
|
|
kind: 'secure-terrain',
|
|
label: '북안 전진 진영 확보',
|
|
rewardGold: 7100,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'reassure-northbank-villages',
|
|
kind: 'secure-terrain',
|
|
label: '강북 마을 안심',
|
|
rewardGold: 6900,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '130턴 이내 북안 압박',
|
|
rewardGold: 4720,
|
|
maxTurn: 130
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 80', '상처약 64', '탁주 31', '북안 전진 장부 1', '위수 재추격 기록 1'],
|
|
victoryPages: sixtyFifthBattleVictoryPages,
|
|
nextCampScene: 'CampScene'
|
|
};
|
|
|
|
export const sixtySixthBattleScenario: BattleScenarioDefinition = {
|
|
id: 'sixty-sixth-battle-wuzhang-final',
|
|
title: '오장원 최종전',
|
|
victoryConditionLabel: '오장원 본영 방어와 장부 계승 확보',
|
|
defeatConditionLabel: '제갈량 퇴각 또는 귀환 장부 붕괴',
|
|
openingObjectiveLines: [
|
|
'위수 북안의 압박을 지나 오장원 본영까지 돌아왔습니다. 이번 싸움은 더 멀리 나아가는 전투가 아니라, 촉한군이 살아서 돌아가고 다음 세대가 장부를 이어 받을 길을 지키는 최종전입니다.',
|
|
'강유는 제갈량의 작전도를 이어 받고, 왕평과 마대는 퇴로와 측면을 나누어 맡았습니다. 황권과 이엄은 군량 장부를 보전하며 본영의 질서를 붙들어야 합니다.',
|
|
'사마의의 본대, 장합의 추격 기병, 곽회의 봉화 차단대를 동시에 누르십시오. 오장원 본영과 주변 마을을 지켜 내면 북벌의 뜻은 패배가 아니라 계승으로 남습니다.'
|
|
],
|
|
map: sixtySixthBattleMap,
|
|
units: sixtySixthBattleUnits,
|
|
bonds: sixtySixthBattleBonds,
|
|
mapTextureKey: 'battle-map-sixty-sixth',
|
|
leaderUnitId: 'northern-twelfth-leader-sima-yi',
|
|
quickVictoryTurnLimit: 90,
|
|
baseVictoryGold: 22400,
|
|
objectives: [
|
|
{
|
|
id: 'hold-wuzhang-main-camp',
|
|
kind: 'defeat-leader',
|
|
label: '사마의 오장원 본대 격파',
|
|
rewardGold: 16000,
|
|
unitId: 'northern-twelfth-leader-sima-yi'
|
|
},
|
|
{
|
|
id: 'stop-zhang-he-final-pursuit',
|
|
kind: 'defeat-leader',
|
|
label: '장합 최종 추격대 저지',
|
|
rewardGold: 9800,
|
|
unitId: 'northern-twelfth-officer-zhang-he'
|
|
},
|
|
{
|
|
id: 'silence-guo-huai-wuzhang-beacons',
|
|
kind: 'defeat-leader',
|
|
label: '곽회 봉화 차단',
|
|
rewardGold: 9100,
|
|
unitId: 'northern-twelfth-officer-guo-huai'
|
|
},
|
|
{
|
|
id: 'preserve-wuzhang-camps',
|
|
kind: 'secure-terrain',
|
|
label: '오장원 본영 확보',
|
|
rewardGold: 7600,
|
|
terrain: 'camp'
|
|
},
|
|
{
|
|
id: 'protect-returning-villages',
|
|
kind: 'secure-terrain',
|
|
label: '귀환로 마을 보호',
|
|
rewardGold: 7200,
|
|
terrain: 'village'
|
|
},
|
|
{
|
|
id: 'quick',
|
|
kind: 'quick-victory',
|
|
label: '90턴 이내 오장원 수습',
|
|
rewardGold: 5000,
|
|
maxTurn: 90
|
|
}
|
|
],
|
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
|
|
itemRewards: ['콩 84', '상처약 66', '탁주 32', '오장원 귀환 장부 1', '강유 계승 지도 1'],
|
|
victoryPages: sixtySixthBattleVictoryPages,
|
|
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,
|
|
'fifty-fifth-battle-northern-qishan-road': fiftyFifthBattleScenario,
|
|
'fifty-sixth-battle-tianshui-advance': fiftySixthBattleScenario,
|
|
'fifty-seventh-battle-jieting-crisis': fiftySeventhBattleScenario,
|
|
'fifty-eighth-battle-qishan-retreat': fiftyEighthBattleScenario,
|
|
'fifty-ninth-battle-chencang-siege': fiftyNinthBattleScenario,
|
|
'sixtieth-battle-wudu-yinping': sixtiethBattleScenario,
|
|
'sixty-first-battle-hanzhong-rain-defense': sixtyFirstBattleScenario,
|
|
'sixty-second-battle-qishan-renewed-offensive': sixtySecondBattleScenario,
|
|
'sixty-third-battle-lucheng-pursuit': sixtyThirdBattleScenario,
|
|
'sixty-fourth-battle-weishui-camps': sixtyFourthBattleScenario,
|
|
'sixty-fifth-battle-weishui-northbank': sixtyFifthBattleScenario,
|
|
'sixty-sixth-battle-wuzhang-final': sixtySixthBattleScenario
|
|
};
|
|
|
|
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
|
|
|
|
export function getBattleScenario(id: string | undefined) {
|
|
if (id && id in battleScenarios) {
|
|
return battleScenarios[id as BattleScenarioId];
|
|
}
|
|
return defaultBattleScenario;
|
|
}
|