Add Yiling vanguard chapter

This commit is contained in:
2026-06-23 19:18:14 +09:00
parent f9f0145c02
commit ef20c6460b
11 changed files with 841 additions and 53 deletions

View File

@@ -40,6 +40,10 @@ import {
fortyFourthBattleMap,
fortyFourthBattleUnits,
fortyFourthBattleVictoryPages,
fortyFifthBattleBonds,
fortyFifthBattleMap,
fortyFifthBattleUnits,
fortyFifthBattleVictoryPages,
firstBattleMap,
firstBattleUnits,
firstBattleVictoryPages,
@@ -225,7 +229,8 @@ export type BattleScenarioId =
| 'forty-first-battle-fan-castle-siege'
| 'forty-second-battle-jing-rear-crisis'
| 'forty-third-battle-gongan-collapse'
| 'forty-fourth-battle-maicheng-isolation';
| 'forty-fourth-battle-maicheng-isolation'
| 'forty-fifth-battle-yiling-vanguard';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2857,6 +2862,66 @@ export const fortyFourthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const fortyFifthBattleScenario: BattleScenarioDefinition = {
id: 'forty-fifth-battle-yiling-vanguard',
title: '이릉 진격로',
victoryConditionLabel: '육손 전초선 격파',
defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [
'형주 상실의 비보가 촉한 군영을 뒤흔들었습니다. 유비는 오군을 향해 동진하며 이릉으로 향하는 첫 길을 열고자 합니다.',
'오군은 정면 결전을 피하고 숲길, 강변, 나루에 전초선을 깔았습니다. 길게 늘어선 진영이 끊기지 않게 강변 보급로를 확보하십시오.',
'장비, 조운, 마초처럼 돌파와 기동에 강한 장수로 선봉을 밀고, 제갈량과 황권처럼 보급과 화계를 읽는 참모를 곁에 두면 안정적입니다.'
],
map: fortyFifthBattleMap,
units: fortyFifthBattleUnits,
bonds: fortyFifthBattleBonds,
mapTextureKey: 'battle-map-forty-fifth',
leaderUnitId: 'yiling-leader-lu-xun',
quickVictoryTurnLimit: 74,
baseVictoryGold: 9560,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '육손 전초선 격파',
rewardGold: 6360,
unitId: 'yiling-leader-lu-xun'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1600,
unitId: 'liu-bei'
},
{
id: 'river-camp',
kind: 'secure-terrain',
label: '강변 진영 확보',
rewardGold: 3120,
terrain: 'camp'
},
{
id: 'yiling-road',
kind: 'secure-terrain',
label: '동진로 보급점 확보',
rewardGold: 2480,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '74턴 이내 승리',
rewardGold: 2200,
maxTurn: 74
}
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 46', '상처약 36', '탁주 15', '이릉 동진 지도 1', '강변 진영 말뚝 1'],
victoryPages: fortyFifthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2903,7 +2968,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'forty-first-battle-fan-castle-siege': fortyFirstBattleScenario,
'forty-second-battle-jing-rear-crisis': fortySecondBattleScenario,
'forty-third-battle-gongan-collapse': fortyThirdBattleScenario,
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario
'forty-fourth-battle-maicheng-isolation': fortyFourthBattleScenario,
'forty-fifth-battle-yiling-vanguard': fortyFifthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];