Add Yangping Pass scout chapter

This commit is contained in:
2026-06-23 13:22:13 +09:00
parent edbdaac773
commit c724d9d48f
12 changed files with 890 additions and 39 deletions

View File

@@ -43,6 +43,10 @@ import {
tenthBattleMap,
tenthBattleUnits,
tenthBattleVictoryPages,
thirtyFifthBattleBonds,
thirtyFifthBattleMap,
thirtyFifthBattleUnits,
thirtyFifthBattleVictoryPages,
thirtyFourthBattleBonds,
thirtyFourthBattleMap,
thirtyFourthBattleUnits,
@@ -175,7 +179,8 @@ export type BattleScenarioId =
| 'thirty-first-battle-luo-main-gate'
| 'thirty-second-battle-mianzhu-gate'
| 'thirty-third-battle-chengdu-surrender'
| 'thirty-fourth-battle-jiameng-pass';
| 'thirty-fourth-battle-jiameng-pass'
| 'thirty-fifth-battle-yangping-scout';
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
@@ -2177,6 +2182,69 @@ export const thirtyFourthBattleScenario: BattleScenarioDefinition = {
nextCampScene: 'CampScene'
};
export const thirtyFifthBattleScenario: BattleScenarioDefinition = {
id: 'thirty-fifth-battle-yangping-scout',
title: '양평관 정찰전',
victoryConditionLabel: '양평관 선봉 격파',
defeatConditionLabel: '유비 또는 마초 퇴각',
openingObjectiveLines: [
'양평관은 한중 전선으로 들어가는 첫 관문입니다. 관문을 빼앗기보다 지형과 보급로를 확인하는 것이 목표입니다.',
'마초는 이번 전장이 합류 후 첫 출전입니다. 서량 기병의 속도를 활용하되 유비군의 전열과 너무 멀어지지 않게 해야 합니다.',
'장위의 선봉과 염포의 책략대를 물리치고 관문 창고를 확보하면, 흩어진 서량 기병과 마대가 합류할 길이 열립니다.'
],
map: thirtyFifthBattleMap,
units: thirtyFifthBattleUnits,
bonds: thirtyFifthBattleBonds,
mapTextureKey: 'battle-map-thirty-fifth',
leaderUnitId: 'yangping-leader-zhang-wei',
quickVictoryTurnLimit: 52,
baseVictoryGold: 5900,
objectives: [
{
id: 'leader',
kind: 'defeat-leader',
label: '양평관 선봉 격파',
rewardGold: 3720,
unitId: 'yangping-leader-zhang-wei'
},
{
id: 'liu-bei',
kind: 'keep-unit-alive',
label: '유비 생존',
rewardGold: 1000,
unitId: 'liu-bei'
},
{
id: 'ma-chao',
kind: 'keep-unit-alive',
label: '마초 생존',
rewardGold: 1500,
unitId: 'ma-chao'
},
{
id: 'yangping-storehouse',
kind: 'secure-terrain',
label: '양평관 창고 확보',
rewardGold: 1760,
terrain: 'village'
},
{
id: 'quick',
kind: 'quick-victory',
label: '52턴 이내 승리',
rewardGold: 1360,
maxTurn: 52
}
],
defeatConditions: [
{ kind: 'unit-defeated', unitId: 'liu-bei' },
{ kind: 'unit-defeated', unitId: 'ma-chao' }
],
itemRewards: ['콩 24', '상처약 18', '탁주 8', '서량장창 +1', '마대 합류'],
victoryPages: thirtyFifthBattleVictoryPages,
nextCampScene: 'CampScene'
};
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
@@ -2213,7 +2281,8 @@ export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition>
'thirty-first-battle-luo-main-gate': thirtyFirstBattleScenario,
'thirty-second-battle-mianzhu-gate': thirtySecondBattleScenario,
'thirty-third-battle-chengdu-surrender': thirtyThirdBattleScenario,
'thirty-fourth-battle-jiameng-pass': thirtyFourthBattleScenario
'thirty-fourth-battle-jiameng-pass': thirtyFourthBattleScenario,
'thirty-fifth-battle-yangping-scout': thirtyFifthBattleScenario
};
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];