Add Nanzhong stabilization battle

This commit is contained in:
2026-06-23 20:32:53 +09:00
parent 199a1cee68
commit eb471d9648
11 changed files with 850 additions and 60 deletions

View File

@@ -48,6 +48,10 @@ import {
fortySixthBattleMap,
fortySixthBattleUnits,
fortySixthBattleVictoryPages,
fortySeventhBattleBonds,
fortySeventhBattleMap,
fortySeventhBattleUnits,
fortySeventhBattleVictoryPages,
firstBattleMap,
firstBattleUnits,
firstBattleVictoryPages,
@@ -235,7 +239,8 @@ export type BattleScenarioId =
| 'forty-third-battle-gongan-collapse'
| 'forty-fourth-battle-maicheng-isolation'
| 'forty-fifth-battle-yiling-vanguard'
| 'forty-sixth-battle-yiling-fire';
| 'forty-sixth-battle-yiling-fire'
| 'forty-seventh-battle-nanzhong-stabilization';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2987,6 +2992,66 @@ export const fortySixthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fortySeventhBattleScenario: BattleScenarioDefinition = {
id: 'forty-seventh-battle-nanzhong-stabilization',
title: '남중 안정로',
victoryConditionLabel: '남중 반란 지휘선 진정',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'백제성의 유탁 뒤 촉한은 제갈량을 중심으로 다시 숨을 고르려 합니다. 그러나 남중의 반란군은 그 틈을 타 성도 남쪽 길과 창고를 흔듭니다.',
'옹개의 지휘선을 흩뜨리되 마을과 창고를 함부로 불태우지 마십시오. 남중 평정은 적을 모두 쓰러뜨리는 싸움이 아니라, 돌아설 마음을 남겨 두는 싸움입니다.',
'제갈량은 반드시 생존해야 합니다. 조운과 왕평으로 산길을 열고, 마량과 황권으로 마을과 보급을 안정시키면 다음 남만 본전의 발판이 생깁니다.'
],
map: fortySeventhBattleMap,
units: fortySeventhBattleUnits,
bonds: fortySeventhBattleBonds,
mapTextureKey: 'battle-map-forty-seventh',
leaderUnitId: 'nanzhong-leader-yong-kai',
quickVictoryTurnLimit: 78,
baseVictoryGold: 10120,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '옹개 지휘선 진정',
rewardGold: 6840,
unitId: 'nanzhong-leader-yong-kai'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1860,
unitId: 'zhuge-liang'
},
{
id: 'villages',
kind: 'secure-terrain',
label: '남중 마을 안정',
rewardGold: 3420,
terrain: 'village'
},
{
id: 'supply-camps',
kind: 'secure-terrain',
label: '남쪽 창고 확보',
rewardGold: 2720,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '78턴 이내 안정',
rewardGold: 2360,
maxTurn: 78
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 50', '상처약 40', '탁주 17', '남중 산길 지도 1', '마을 회유 문서 1'],
victoryPages: fortySeventhBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -3035,7 +3100,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'forty-third-battle-gongan-collapse': fortyThirdBattleScenario,
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario,
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario,
'forty-sixth-battle-yiling-fire': fortySixthBattleScenario
'forty-sixth-battle-yiling-fire': fortySixthBattleScenario,
'forty-seventh-battle-nanzhong-stabilization': fortySeventhBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];