Add Lucheng pursuit chapter

This commit is contained in:
2026-06-24 17:59:05 +09:00
parent 8c446f8948
commit 84a1eccb5d
12 changed files with 892 additions and 82 deletions

View File

@@ -47,6 +47,10 @@ import {
sixtySecondBattleMap,
sixtySecondBattleUnits,
sixtySecondBattleVictoryPages,
sixtyThirdBattleBonds,
sixtyThirdBattleMap,
sixtyThirdBattleUnits,
sixtyThirdBattleVictoryPages,
fiftySeventhBattleBonds,
fiftySeventhBattleMap,
fiftySeventhBattleUnits,
@@ -315,7 +319,8 @@ export type BattleScenarioId =
| 'fifty-ninth-battle-chencang-siege'
| 'sixtieth-battle-wudu-yinping'
| 'sixty-first-battle-hanzhong-rain-defense'
| 'sixty-second-battle-qishan-renewed-offensive';
| 'sixty-second-battle-qishan-renewed-offensive'
| 'sixty-third-battle-lucheng-pursuit';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -4191,6 +4196,73 @@ export const sixtySecondBattleScenario: BattleScenarioDefinition = {
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: ['금 132', '상처약 102', '군주 50', '노성 추격 장부 1', '회수 표식 기록 1'],
victoryPages: sixtyThirdBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -4255,7 +4327,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'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-second-battle-qishan-renewed-offensive': sixtySecondBattleScenario,
'sixty-third-battle-lucheng-pursuit': sixtyThirdBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];