Add Meng Huo pacification battle

This commit is contained in:
2026-06-23 20:59:52 +09:00
parent eb471d9648
commit 688b51f3cc
11 changed files with 824 additions and 63 deletions

View File

@@ -44,6 +44,10 @@ import {
fortyFifthBattleMap,
fortyFifthBattleUnits,
fortyFifthBattleVictoryPages,
fortyEighthBattleBonds,
fortyEighthBattleMap,
fortyEighthBattleUnits,
fortyEighthBattleVictoryPages,
fortySixthBattleBonds,
fortySixthBattleMap,
fortySixthBattleUnits,
@@ -240,9 +244,10 @@ export type BattleScenarioId =
| 'forty-fourth-battle-maicheng-isolation'
| 'forty-fifth-battle-yiling-vanguard'
| 'forty-sixth-battle-yiling-fire'
| 'forty-seventh-battle-nanzhong-stabilization';
| 'forty-seventh-battle-nanzhong-stabilization'
| 'forty-eighth-battle-meng-huo-main-force';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
export type BattleObjectiveKind = 'defeat-leader' | 'pacify-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
export type BattleObjectiveDefinition = {
id: string;
@@ -3052,6 +3057,66 @@ export const fortySeventhBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fortyEighthBattleScenario: BattleScenarioDefinition = {
id: 'forty-eighth-battle-meng-huo-main-force',
title: '맹획 본대전',
victoryConditionLabel: '맹획 본대 제압과 회유',
defeatConditionLabel: '제갈량 퇴각',
openingObjectiveLines: [
'남중의 첫 길은 열렸지만 맹획은 더 깊은 숲에서 호족과 맹수 기병을 모았습니다. 오늘의 승리는 적장을 베는 것이 아니라 생포해 돌려보낼 명분을 만드는 데 있습니다.',
'마을, 포로 수용소, 산채 창고를 함부로 불태우지 마십시오. 회유할 사람과 끝까지 싸울 사람을 구분해야 남중이 다시 반란으로 돌아가지 않습니다.',
'제갈량은 반드시 생존해야 합니다. 조운과 마초로 돌격을 막고, 왕평과 황권으로 포로와 산길을 정리하며, 마량으로 마을의 말을 붙잡으십시오.'
],
map: fortyEighthBattleMap,
units: fortyEighthBattleUnits,
bonds: fortyEighthBattleBonds,
mapTextureKey: 'battle-map-forty-eighth',
leaderUnitId: 'menghuo-leader',
quickVictoryTurnLimit: 82,
baseVictoryGold: 10580,
objectives: [
{
id: 'pacify-meng-huo',
kind: 'pacify-leader',
label: '맹획 생포와 회유',
rewardGold: 7200,
unitId: 'menghuo-leader'
},
{
id: 'zhuge-liang',
kind: 'keep-unit-alive',
label: '제갈량 생존',
rewardGold: 1900,
unitId: 'zhuge-liang'
},
{
id: 'amnesty-villages',
kind: 'secure-terrain',
label: '회유 마을 보호',
rewardGold: 3580,
terrain: 'village'
},
{
id: 'captive-camps',
kind: 'secure-terrain',
label: '포로 수용소 확보',
rewardGold: 2860,
terrain: 'camp'
},
{
id: 'quick',
kind: 'quick-victory',
label: '82턴 이내 생포',
rewardGold: 2440,
maxTurn: 82
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 54', '상처약 42', '탁주 18', '맹획 회유 서신 1', '남중 포로 명부 1'],
victoryPages: fortyEighthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -3101,7 +3166,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario,
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario,
'forty-sixth-battle-yiling-fire': fortySixthBattleScenario,
'forty-seventh-battle-nanzhong-stabilization': fortySeventhBattleScenario
'forty-seventh-battle-nanzhong-stabilization': fortySeventhBattleScenario,
'forty-eighth-battle-meng-huo-main-force': fortyEighthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];