Add Fan Castle vanguard sortie chapter

This commit is contained in:
2026-06-23 15:46:28 +09:00
parent 8585fec6b5
commit fe1f897609
11 changed files with 935 additions and 55 deletions

View File

@@ -51,6 +51,10 @@ import {
thirtyEighthBattleMap,
thirtyEighthBattleUnits,
thirtyEighthBattleVictoryPages,
thirtyNinthBattleBonds,
thirtyNinthBattleMap,
thirtyNinthBattleUnits,
thirtyNinthBattleVictoryPages,
thirtyFourthBattleBonds,
thirtyFourthBattleMap,
thirtyFourthBattleUnits,
@@ -195,7 +199,8 @@ export type BattleScenarioId =
| 'thirty-fifth-battle-yangping-scout'
| 'thirty-sixth-battle-dingjun-vanguard'
| 'thirty-seventh-battle-hanzhong-decisive'
| 'thirty-eighth-battle-jing-defense';
| 'thirty-eighth-battle-jing-defense'
| 'thirty-ninth-battle-fan-castle-vanguard';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2449,6 +2454,69 @@ export const thirtyEighthBattleScenario: BattleScenarioDefinition = {
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 defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2489,7 +2557,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'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-eighth-battle-jing-defense': thirtyEighthBattleScenario,
'thirty-ninth-battle-fan-castle-vanguard': thirtyNinthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];