Add Jiangdong envoy sortie chapter

This commit is contained in:
2026-06-23 06:45:10 +09:00
parent 697ce8837d
commit 0af7c9cfe8
11 changed files with 1057 additions and 24 deletions

View File

@@ -39,6 +39,10 @@ import {
thirteenthBattleMap,
thirteenthBattleUnits,
thirteenthBattleVictoryPages,
twentiethBattleBonds,
twentiethBattleMap,
twentiethBattleUnits,
twentiethBattleVictoryPages,
twelfthBattleBonds,
twelfthBattleMap,
twelfthBattleUnits,
@@ -100,7 +104,8 @@ export type BattleScenarioId =
| 'sixteenth-battle-liu-biao-refuge'
| 'seventeenth-battle-wolong-visit-road'
| 'eighteenth-battle-bowang-ambush'
| 'nineteenth-battle-changban-refuge';
| 'nineteenth-battle-changban-refuge'
| 'twentieth-battle-jiangdong-envoy';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -1156,6 +1161,70 @@ export const nineteenthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const twentiethBattleScenario: BattleScenarioDefinition = {
id: 'twentieth-battle-jiangdong-envoy',
title: '강동 사절로',
victoryConditionLabel: '문빙 퇴각',
defeatConditionLabel: '유비, 제갈량 또는 손건 퇴각',
openingObjectiveLines: [
'장판파를 벗어난 유비군은 강동과 손잡을 사절을 보내야 합니다. 문빙의 추격대가 강나루를 닫기 전에 길을 열어야 합니다.',
'이번 전투는 제갈량과 손건을 지키는 것이 핵심입니다. 전열이 다리목을 붙들고, 기동 장수가 추격 기병을 끊어야 사절 문서가 강동으로 향할 수 있습니다.',
'문빙을 퇴각시키고 강나루를 확보하십시오. 제갈량과 손건이 살아남으면 적벽대전으로 향할 외교 명분이 완성됩니다.'
],
map: twentiethBattleMap,
units: twentiethBattleUnits,
bonds: twentiethBattleBonds,
mapTextureKey: 'battle-map-twentieth',
leaderUnitId: 'envoy-road-leader-wen-pin',
quickVictoryTurnLimit: 29,
baseVictoryGold: 2380,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '문빙 퇴각',
rewardGold: 1540,
unitId: 'envoy-road-leader-wen-pin'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 760,
unitId: 'zhuge-liang'
},
{
id: 'sun-qian',
kind: 'keep-unit-alive',
label: '손건 생존',
rewardGold: 620,
unitId: 'sun-qian'
},
{
id: 'river-port',
kind: 'secure-terrain',
label: '강나루 확보',
rewardGold: 860,
terrain: 'fort'
},
{
id: 'quick',
kind: 'quick-victory',
label: '29턴 이내 승리',
rewardGold: 640,
maxTurn: 29
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'zhuge-liang' },
{ kind: 'unit-defeated', unitId: 'sun-qian' }
],
itemRewards: ['콩 8', '상처약 5', '탁주 3', '강동 사절 문서 +1', '화공 논의 +1'],
victoryPages: twentiethBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -1177,7 +1246,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'sixteenth-battle-liu-biao-refuge': sixteenthBattleScenario,
'seventeenth-battle-wolong-visit-road': seventeenthBattleScenario,
'eighteenth-battle-bowang-ambush': eighteenthBattleScenario,
'nineteenth-battle-changban-refuge': nineteenthBattleScenario
'nineteenth-battle-changban-refuge': nineteenthBattleScenario,
'twentieth-battle-jiangdong-envoy': twentiethBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];