Add Mianzhu Gate sortie chapter

This commit is contained in:
2026-06-23 12:15:04 +09:00
parent 004ec3cfff
commit 9ac621da76
11 changed files with 870 additions and 35 deletions

View File

@@ -47,6 +47,10 @@ import {
thirtyFirstBattleMap,
thirtyFirstBattleUnits,
thirtyFirstBattleVictoryPages,
thirtySecondBattleBonds,
thirtySecondBattleMap,
thirtySecondBattleUnits,
thirtySecondBattleVictoryPages,
thirteenthBattleBonds,
thirteenthBattleMap,
thirteenthBattleUnits,
@@ -160,7 +164,8 @@ export type BattleScenarioId =
| 'twenty-eighth-battle-fu-pass-entry'
| 'twenty-ninth-battle-luo-outer-wall'
| 'thirtieth-battle-luofeng-ambush'
| 'thirty-first-battle-luo-main-gate';
| 'thirty-first-battle-luo-main-gate'
| 'thirty-second-battle-mianzhu-gate';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -1973,6 +1978,69 @@ export const thirtyFirstBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirtySecondBattleScenario: BattleScenarioDefinition = {
id: 'thirty-second-battle-mianzhu-gate',
title: '면죽관 압박전',
victoryConditionLabel: '이엄 수비선 격파',
defeatConditionLabel: '유비 또는 엄안 퇴각',
openingObjectiveLines: [
'면죽관은 성도 앞 마지막 완충 지대입니다. 관문을 장악하면 유장의 항복 권고가 현실적인 압박으로 바뀝니다.',
'엄안은 익주 장수들의 마음을 흔드는 첫 증거입니다. 엄안을 지키며 이엄에게 유비군의 군율과 예우를 보여 주십시오.',
'이엄을 격파하되 마을과 창고를 안정시키면 성도 항복 권고의 명분이 강해집니다.'
],
map: thirtySecondBattleMap,
units: thirtySecondBattleUnits,
bonds: thirtySecondBattleBonds,
mapTextureKey: 'battle-map-thirty-second',
leaderUnitId: 'chengdu-leader-li-yan',
quickVictoryTurnLimit: 45,
baseVictoryGold: 5040,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '이엄 수비선 격파',
rewardGold: 3120,
unitId: 'chengdu-leader-li-yan'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 960,
unitId: 'liu-bei'
},
{
id: 'yan-yan',
kind: 'keep-unit-alive',
label: '엄안 생존',
rewardGold: 1260,
unitId: 'yan-yan'
},
{
id: 'mianzhu-storehouse',
kind: 'secure-terrain',
label: '면죽관 창고 확보',
rewardGold: 1540,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '45턴 이내 승리',
rewardGold: 1180,
maxTurn: 45
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'yan-yan' }
],
itemRewards: ['콩 18', '상처약 13', '탁주 7', '성도 항복 권고문 +1', '이엄 합류'],
victoryPages: thirtySecondBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2006,7 +2074,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'twenty-eighth-battle-fu-pass-entry': twentyEighthBattleScenario,
'twenty-ninth-battle-luo-outer-wall': twentyNinthBattleScenario,
'thirtieth-battle-luofeng-ambush': thirtiethBattleScenario,
'thirty-first-battle-luo-main-gate': thirtyFirstBattleScenario
'thirty-first-battle-luo-main-gate': thirtyFirstBattleScenario,
'thirty-second-battle-mianzhu-gate': thirtySecondBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];