Add Hanzhong decisive battle chapter

This commit is contained in:
2026-06-23 14:09:12 +09:00
parent 24b7db0b14
commit b4c34afeed
11 changed files with 894 additions and 41 deletions

View File

@@ -67,6 +67,10 @@ import {
thirtySixthBattleMap,
thirtySixthBattleUnits,
thirtySixthBattleVictoryPages,
thirtySeventhBattleBonds,
thirtySeventhBattleMap,
thirtySeventhBattleUnits,
thirtySeventhBattleVictoryPages,
thirteenthBattleBonds,
thirteenthBattleMap,
thirteenthBattleUnits,
@@ -185,7 +189,8 @@ export type BattleScenarioId =
| 'thirty-third-battle-chengdu-surrender'
| 'thirty-fourth-battle-jiameng-pass'
| 'thirty-fifth-battle-yangping-scout'
| 'thirty-sixth-battle-dingjun-vanguard';
| 'thirty-sixth-battle-dingjun-vanguard'
| 'thirty-seventh-battle-hanzhong-decisive';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2313,6 +2318,69 @@ export const thirtySixthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirtySeventhBattleScenario: BattleScenarioDefinition = {
id: 'thirty-seventh-battle-hanzhong-decisive',
title: '한중 결전',
victoryConditionLabel: '조조 본진 격파',
defeatConditionLabel: '유비 또는 왕평 퇴각',
openingObjectiveLines: [
'한중 결전은 정군산 이후 북문 전체를 안정시키는 싸움입니다. 조조군 본진을 흔들어 한중의 주도권을 완전히 가져오십시오.',
'왕평은 이번 전장의 길잡이입니다. 왕평이 무너지면 산길과 보급로를 잇는 계획도 무너집니다.',
'황충과 법정은 정군산의 여세를 이어 고지를 누르고, 마초와 마대는 조조군 기병의 퇴로를 끊어 한중을 유비군의 깃발 아래 묶으십시오.'
],
map: thirtySeventhBattleMap,
units: thirtySeventhBattleUnits,
bonds: thirtySeventhBattleBonds,
mapTextureKey: 'battle-map-thirty-seventh',
leaderUnitId: 'hanzhong-leader-cao-cao',
quickVictoryTurnLimit: 58,
baseVictoryGold: 6840,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '조조 본진 격파',
rewardGold: 4320,
unitId: 'hanzhong-leader-cao-cao'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1120,
unitId: 'liu-bei'
},
{
id: 'wang-ping',
kind: 'keep-unit-alive',
label: '왕평 생존',
rewardGold: 1680,
unitId: 'wang-ping'
},
{
id: 'hanzhong-storehouse',
kind: 'secure-terrain',
label: '한중 보급 창고 확보',
rewardGold: 2040,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '58턴 이내 승리',
rewardGold: 1560,
maxTurn: 58
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'wang-ping' }
],
itemRewards: ['콩 30', '상처약 22', '탁주 10', '한중 병법서 1', '한중왕 즉위 준비'],
victoryPages: thirtySeventhBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2351,7 +2419,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'thirty-third-battle-chengdu-surrender': thirtyThirdBattleScenario,
'thirty-fourth-battle-jiameng-pass': thirtyFourthBattleScenario,
'thirty-fifth-battle-yangping-scout': thirtyFifthBattleScenario,
'thirty-sixth-battle-dingjun-vanguard': thirtySixthBattleScenario
'thirty-sixth-battle-dingjun-vanguard': thirtySixthBattleScenario,
'thirty-seventh-battle-hanzhong-decisive': thirtySeventhBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];