Add Qishan renewed offensive chapter

This commit is contained in:
2026-06-24 15:00:24 +09:00
parent 305ead1777
commit 44c017ab6c
16 changed files with 892 additions and 98 deletions

View File

@@ -43,6 +43,10 @@ import {
sixtyFirstBattleMap,
sixtyFirstBattleUnits,
sixtyFirstBattleVictoryPages,
sixtySecondBattleBonds,
sixtySecondBattleMap,
sixtySecondBattleUnits,
sixtySecondBattleVictoryPages,
fiftySeventhBattleBonds,
fiftySeventhBattleMap,
fiftySeventhBattleUnits,
@@ -310,7 +314,8 @@ export type BattleScenarioId =
| 'fifty-eighth-battle-qishan-retreat'
| 'fifty-ninth-battle-chencang-siege'
| 'sixtieth-battle-wudu-yinping'
| 'sixty-first-battle-hanzhong-rain-defense';
| 'sixty-first-battle-hanzhong-rain-defense'
| 'sixty-second-battle-qishan-renewed-offensive';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -4119,6 +4124,73 @@ export const sixtyFirstBattleScenario: BattleScenarioDefinition = {
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: ['금 126', '상처약 98', '군주 48', '기산 재출정 장부 1', '노성 지연선 기록 1'],
victoryPages: sixtySecondBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -4182,7 +4254,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'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-first-battle-hanzhong-rain-defense': sixtyFirstBattleScenario,
'sixty-second-battle-qishan-renewed-offensive': sixtySecondBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];