Add Luofeng Slope ambush chapter

This commit is contained in:
2026-06-23 10:09:41 +09:00
parent cc6365d5ba
commit 0872c584b4
11 changed files with 1250 additions and 34 deletions

View File

@@ -95,6 +95,10 @@ import {
seventhBattleMap,
seventhBattleUnits,
seventhBattleVictoryPages,
thirtiethBattleBonds,
thirtiethBattleMap,
thirtiethBattleUnits,
thirtiethBattleVictoryPages,
sixthBattleBonds,
sixthBattleMap,
sixthBattleUnits,
@@ -150,7 +154,8 @@ export type BattleScenarioId =
| 'twenty-sixth-battle-changsha-veteran'
| 'twenty-seventh-battle-yizhou-relief-road'
| 'twenty-eighth-battle-fu-pass-entry'
| 'twenty-ninth-battle-luo-outer-wall';
| 'twenty-ninth-battle-luo-outer-wall'
| 'thirtieth-battle-luofeng-ambush';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -1837,6 +1842,69 @@ export const twentyNinthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirtiethBattleScenario: BattleScenarioDefinition = {
id: 'thirtieth-battle-luofeng-ambush',
title: '낙봉파 매복전',
victoryConditionLabel: '장임 매복 격파',
defeatConditionLabel: '유비 또는 방통 퇴각',
openingObjectiveLines: [
'낙성 본성으로 가는 빠른 길인 낙봉파에 장임의 매복이 숨어 있습니다. 좁은 길과 고지 궁병을 동시에 살피며 진군해야 합니다.',
'오의가 새로 출전 후보에 들어왔습니다. 낙성의 길을 아는 오의를 데려가면 매복 위치를 읽기 쉽지만, 여섯 명 제한은 더 빡빡해집니다.',
'유비와 방통을 지키며 장임의 매복을 격파하십시오. 낙봉파를 넘으면 낙성 본성 공략이 열립니다.'
],
map: thirtiethBattleMap,
units: thirtiethBattleUnits,
bonds: thirtiethBattleBonds,
mapTextureKey: 'battle-map-thirtieth',
leaderUnitId: 'luofeng-leader-zhang-ren',
quickVictoryTurnLimit: 39,
baseVictoryGold: 4440,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '장임 매복 격파',
rewardGold: 2760,
unitId: 'luofeng-leader-zhang-ren'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 820,
unitId: 'liu-bei'
},
{
id: 'pang-tong',
kind: 'keep-unit-alive',
label: '방통 생존',
rewardGold: 1180,
unitId: 'pang-tong'
},
{
id: 'luofeng-village',
kind: 'secure-terrain',
label: '낙봉파 길목 확보',
rewardGold: 1320,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '39턴 이내 승리',
rewardGold: 1040,
maxTurn: 39
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'pang-tong' }
],
itemRewards: ['콩 15', '상처약 11', '탁주 6', '낙봉파 정찰표 +1', '봉추 생환 +1'],
victoryPages: thirtiethBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -1868,7 +1936,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'twenty-sixth-battle-changsha-veteran': twentySixthBattleScenario,
'twenty-seventh-battle-yizhou-relief-road': twentySeventhBattleScenario,
'twenty-eighth-battle-fu-pass-entry': twentyEighthBattleScenario,
'twenty-ninth-battle-luo-outer-wall': twentyNinthBattleScenario
'twenty-ninth-battle-luo-outer-wall': twentyNinthBattleScenario,
'thirtieth-battle-luofeng-ambush': thirtiethBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];