Add Changsha veteran chapter

This commit is contained in:
2026-06-23 08:30:43 +09:00
parent 98876673a8
commit 2402e1c38f
11 changed files with 1217 additions and 31 deletions

View File

@@ -59,6 +59,10 @@ import {
twentyFifthBattleMap,
twentyFifthBattleUnits,
twentyFifthBattleVictoryPages,
twentySixthBattleBonds,
twentySixthBattleMap,
twentySixthBattleUnits,
twentySixthBattleVictoryPages,
twentiethBattleBonds,
twentiethBattleMap,
twentiethBattleUnits,
@@ -130,7 +134,8 @@ export type BattleScenarioId =
| 'twenty-second-battle-red-cliffs-fire'
| 'twenty-third-battle-jingzhou-south-entry'
| 'twenty-fourth-battle-guiyang-persuasion'
| 'twenty-fifth-battle-wuling-mountain-road';
| 'twenty-fifth-battle-wuling-mountain-road'
| 'twenty-sixth-battle-changsha-veteran';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -1565,6 +1570,69 @@ export const twentyFifthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const twentySixthBattleScenario: BattleScenarioDefinition = {
id: 'twenty-sixth-battle-changsha-veteran',
title: '장사 노장 대면전',
victoryConditionLabel: '한현 퇴각',
defeatConditionLabel: '유비 또는 제갈량 퇴각',
openingObjectiveLines: [
'무릉 산길을 연 유비군은 장사로 향합니다. 장사에는 노장 황충과 의심 많은 태수 한현이 버티고 있습니다.',
'이번 전투는 황충을 욕보이지 않고 한현의 의심을 꺾어야 합니다. 마을을 안정시키고 성문 전열을 흔들어 장사 내부의 길을 여십시오.',
'유비와 제갈량을 지키며 한현을 물러나게 하면 황충과 위연이 군영에 합류합니다.'
],
map: twentySixthBattleMap,
units: twentySixthBattleUnits,
bonds: twentySixthBattleBonds,
mapTextureKey: 'battle-map-twenty-sixth',
leaderUnitId: 'changsha-leader-han-xuan',
quickVictoryTurnLimit: 35,
baseVictoryGold: 3560,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '한현 퇴각',
rewardGold: 2320,
unitId: 'changsha-leader-han-xuan'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 660,
unitId: 'liu-bei'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 940,
unitId: 'zhuge-liang'
},
{
id: 'changsha-village',
kind: 'secure-terrain',
label: '장사 마을 안정',
rewardGold: 1120,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '35턴 이내 승리',
rewardGold: 880,
maxTurn: 35
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
],
itemRewards: ['콩 12', '상처약 8', '탁주 5', '장사 사절 문서 +1', '황충 합류', '위연 합류'],
victoryPages: twentySixthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -1592,7 +1660,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'twenty-second-battle-red-cliffs-fire': twentySecondBattleScenario,
'twenty-third-battle-jingzhou-south-entry': twentyThirdBattleScenario,
'twenty-fourth-battle-guiyang-persuasion': twentyFourthBattleScenario,
'twenty-fifth-battle-wuling-mountain-road': twentyFifthBattleScenario
'twenty-fifth-battle-wuling-mountain-road': twentyFifthBattleScenario,
'twenty-sixth-battle-changsha-veteran': twentySixthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];