Add Weishui camps chapter

This commit is contained in:
2026-06-24 18:38:21 +09:00
parent 84a1eccb5d
commit 40078eabe3
12 changed files with 866 additions and 85 deletions

View File

@@ -51,6 +51,10 @@ import {
sixtyThirdBattleMap,
sixtyThirdBattleUnits,
sixtyThirdBattleVictoryPages,
sixtyFourthBattleBonds,
sixtyFourthBattleMap,
sixtyFourthBattleUnits,
sixtyFourthBattleVictoryPages,
fiftySeventhBattleBonds,
fiftySeventhBattleMap,
fiftySeventhBattleUnits,
@@ -320,7 +324,8 @@ export type BattleScenarioId =
| 'sixtieth-battle-wudu-yinping'
| 'sixty-first-battle-hanzhong-rain-defense'
| 'sixty-second-battle-qishan-renewed-offensive'
| 'sixty-third-battle-lucheng-pursuit';
| 'sixty-third-battle-lucheng-pursuit'
| 'sixty-fourth-battle-weishui-camps';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -4263,6 +4268,73 @@ export const sixtyThirdBattleScenario: BattleScenarioDefinition = {
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: ['금 138', '상처약 106', '군주 52', '위수 진영 장부 1', '강안 봉화 기록 1'],
victoryPages: sixtyFourthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -4328,7 +4400,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'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-third-battle-lucheng-pursuit': sixtyThirdBattleScenario,
'sixty-fourth-battle-weishui-camps': sixtyFourthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];