Add Yiling fire attack chapter

This commit is contained in:
2026-06-23 19:46:28 +09:00
parent ef20c6460b
commit d88cc65972
11 changed files with 856 additions and 54 deletions

View File

@@ -44,6 +44,10 @@ import {
fortyFifthBattleMap,
fortyFifthBattleUnits,
fortyFifthBattleVictoryPages,
fortySixthBattleBonds,
fortySixthBattleMap,
fortySixthBattleUnits,
fortySixthBattleVictoryPages,
firstBattleMap,
firstBattleUnits,
firstBattleVictoryPages,
@@ -230,7 +234,8 @@ export type BattleScenarioId =
| 'forty-second-battle-jing-rear-crisis'
| 'forty-third-battle-gongan-collapse'
| 'forty-fourth-battle-maicheng-isolation'
| 'forty-fifth-battle-yiling-vanguard';
| 'forty-fifth-battle-yiling-vanguard'
| 'forty-sixth-battle-yiling-fire';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2922,6 +2927,66 @@ export const fortyFifthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fortySixthBattleScenario: BattleScenarioDefinition = {
id: 'forty-sixth-battle-yiling-fire',
title: '이릉 화공전',
victoryConditionLabel: '오군 화공망 돌파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'육손은 긴 촉한 진영이 마른 숲과 강변 군막 사이로 늘어진 순간을 기다렸습니다. 오군의 화공이 시작되며 진영 곳곳이 끊어집니다.',
'불타는 군막을 모두 지키려 하기보다, 서쪽 협곡과 강변 물길을 열어 병사를 모아야 합니다. 마을과 군막 지점을 확보하면 퇴로가 안정됩니다.',
'황권과 제갈량은 화공의 번짐을 읽고, 조운과 왕평은 흩어진 길을 찾습니다. 누가 퇴로를 맡고 누가 불길을 뚫을지 출진 편성에서 결정하십시오.'
],
map: fortySixthBattleMap,
units: fortySixthBattleUnits,
bonds: fortySixthBattleBonds,
mapTextureKey: 'battle-map-forty-sixth',
leaderUnitId: 'yiling-fire-leader-lu-xun',
quickVictoryTurnLimit: 76,
baseVictoryGold: 9840,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '육손 화공 지휘선 돌파',
rewardGold: 6600,
unitId: 'yiling-fire-leader-lu-xun'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1700,
unitId: 'liu-bei'
},
{
id: 'fire-camps',
kind: 'secure-terrain',
label: '불타는 군막 수습',
rewardGold: 3300,
terrain: 'camp'
},
{
id: 'retreat-road',
kind: 'secure-terrain',
label: '서쪽 퇴로 확보',
rewardGold: 2600,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '76턴 이내 돌파',
rewardGold: 2280,
maxTurn: 76
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 48', '상처약 38', '탁주 16', '화공 방화선 표식 1', '백제성 퇴로 지도 1'],
victoryPages: fortySixthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2969,7 +3034,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'forty-second-battle-jing-rear-crisis': fortySecondBattleScenario,
'forty-third-battle-gongan-collapse': fortyThirdBattleScenario,
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario,
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario,
'forty-sixth-battle-yiling-fire': fortySixthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];