Add Gongan collapse chapter

This commit is contained in:
2026-06-23 18:01:03 +09:00
parent 8591fd7fa3
commit dd6d85ffe9
11 changed files with 908 additions and 50 deletions

View File

@@ -32,6 +32,10 @@ import {
fortySecondBattleMap,
fortySecondBattleUnits,
fortySecondBattleVictoryPages,
fortyThirdBattleBonds,
fortyThirdBattleMap,
fortyThirdBattleUnits,
fortyThirdBattleVictoryPages,
firstBattleMap,
firstBattleUnits,
firstBattleVictoryPages,
@@ -215,7 +219,8 @@ export type BattleScenarioId =
| 'thirty-ninth-battle-fan-castle-vanguard'
| 'fortieth-battle-han-river-flood'
| 'forty-first-battle-fan-castle-siege'
| 'forty-second-battle-jing-rear-crisis';
| 'forty-second-battle-jing-rear-crisis'
| 'forty-third-battle-gongan-collapse';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2721,6 +2726,69 @@ export const fortySecondBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fortyThirdBattleScenario: BattleScenarioDefinition = {
id: 'forty-third-battle-gongan-collapse',
title: '공안 성문 변고',
victoryConditionLabel: '여몽 본대 저지',
defeatConditionLabel: '유비 또는 관우 퇴각',
openingObjectiveLines: [
'강릉 나루의 정찰대는 물러났지만 공안 성문에는 더 큰 균열이 생겼습니다. 강동 본대가 성문 안쪽의 흔들림을 이용하기 전에 여몽을 저지하십시오.',
'부사인과 미방의 병사들은 아직 완전히 돌아서지 않았습니다. 성문과 창고를 지키면 후방의 신뢰를 조금이라도 붙들 수 있습니다.',
'마량, 미축, 황권, 왕평 같은 후방 수습 담당을 데려가면 장부와 지형, 성문 병사들의 흔들림을 읽기 좋습니다.'
],
map: fortyThirdBattleMap,
units: fortyThirdBattleUnits,
bonds: fortyThirdBattleBonds,
mapTextureKey: 'battle-map-forty-third',
leaderUnitId: 'jing-collapse-leader-lu-meng',
quickVictoryTurnLimit: 70,
baseVictoryGold: 8920,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '여몽 본대 저지',
rewardGold: 5840,
unitId: 'jing-collapse-leader-lu-meng'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1380,
unitId: 'liu-bei'
},
{
id: 'guan-yu',
kind: 'keep-unit-alive',
label: '관우 생존',
rewardGold: 2160,
unitId: 'guan-yu'
},
{
id: 'gongan-gate',
kind: 'secure-terrain',
label: '공안 성문 확보',
rewardGold: 2820,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '70턴 이내 승리',
rewardGold: 2040,
maxTurn: 70
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'guan-yu' }
],
itemRewards: ['콩 42', '상처약 32', '탁주 13', '공안 성문 기록 1', '부사인 군령서 1'],
victoryPages: fortyThirdBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2765,7 +2833,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'thirty-ninth-battle-fan-castle-vanguard': thirtyNinthBattleScenario,
'fortieth-battle-han-river-flood': fortiethBattleScenario,
'forty-first-battle-fan-castle-siege': fortyFirstBattleScenario,
'forty-second-battle-jing-rear-crisis': fortySecondBattleScenario
'forty-second-battle-jing-rear-crisis': fortySecondBattleScenario,
'forty-third-battle-gongan-collapse': fortyThirdBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];