Add Jieting sortie and Jiang Wei recruitment flow

This commit is contained in:
2026-06-24 03:41:36 +09:00
parent 3c18072c1e
commit a3f56bb787
11 changed files with 934 additions and 72 deletions

View File

@@ -27,6 +27,10 @@ import {
fiftySixthBattleMap,
fiftySixthBattleUnits,
fiftySixthBattleVictoryPages,
fiftySeventhBattleBonds,
fiftySeventhBattleMap,
fiftySeventhBattleUnits,
fiftySeventhBattleVictoryPages,
firstBattleBonds,
fifteenthBattleBonds,
fifteenthBattleMap,
@@ -285,7 +289,8 @@ export type BattleScenarioId =
| '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-sixth-battle-tianshui-advance'
| 'fifty-seventh-battle-jieting-crisis';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -3686,6 +3691,90 @@ export const fiftySixthBattleScenario: BattleScenarioDefinition = {
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: ['콩 94', '상처약 78', '탁주 38', '가정 물길 장부 1', '강유 합류'],
victoryPages: fiftySeventhBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -3744,7 +3833,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'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-sixth-battle-tianshui-advance': fiftySixthBattleScenario,
'fifty-seventh-battle-jieting-crisis': fiftySeventhBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];