Refine Yuan refuge battle flow

This commit is contained in:
2026-07-04 17:05:16 +09:00
parent 06aaae75d4
commit 3b8e8ad969
3 changed files with 114 additions and 21 deletions

View File

@@ -1973,16 +1973,88 @@ export const fifteenthBattleScenario: BattleScenarioDefinition = {
victoryConditionLabel: '채양 격파', victoryConditionLabel: '채양 격파',
defeatConditionLabel: '유비 퇴각', defeatConditionLabel: '유비 퇴각',
openingObjectiveLines: [ openingObjectiveLines: [
'유비군은 조조의 추격을 피해 원소 진영으로 향합니다. 채양을 격파하면 북상로의 압박을 끊고 접선지로 나아갈 수 있습니다.', '유비군은 조조의 추격을 피해 원소 진영으로 향합니다. 손건의 통행 문서가 닿으려면 채양의 추격대를 떨쳐 내고 북동쪽 접선지까지 길을 열어야 합니다.',
'강줄기와 고갯길 사이로 추격 기병이 파고들고, 궁병은 접선지를 향한 길을 끊으려 합니다. 전열을 세우면서도 손건과 간옹의 책략 지원을 살려야 합니다.', '채양 본진의 봉화대를 끊지 못하면 후방 추격 기병이 계속 따라붙습니다. 장비는 남쪽 추격로를 막고, 관우는 고갯길을 밀어 접선지 앞 수비선을 흔드십시오.',
'원소 사자가 기다리는 북동쪽 접선지를 확보하고 24턴 안에 승리하면 다음 의탁 장을 더 유리하게 시작합니다.' '원소 사자가 기다리는 북동쪽 요새 접선지를 확보하고 55턴 안에 승리하면, 조운의 재합류와 다음 의탁로를 더 안정적으로 준비할 수 있습니다.'
], ],
tacticalGuide: {
summary: '서남 진영에서 중앙 고갯길을 밀고, 채양 본진 봉화대를 끊어 북동쪽 원소 접선지로 나아가는 도주/접선 전투입니다.',
route: '서남 진영 → 중앙 고갯길 → 채양 본진 봉화대 → 원소 사자 접선지',
focus:
'채양만 향해 달리면 뒤따라온 기병과 고지 궁병이 유비의 후방을 찌릅니다. 장비는 남쪽 추격로를 막고, 관우는 중앙 고갯길을 지나 채양 본진 봉화대를 끊으며, 손건과 간옹은 접선 문서와 책략 지원을 맡아야 합니다.',
roles: [
'유비: 의탁 명분 유지와 생존',
'관우: 중앙 고갯길 정면 돌파',
'장비: 남쪽 추격 기병 차단',
'손건: 원소 접선 문서 정리',
'간옹: 추격대 동요와 책략 지원',
'미축: 장기 도주전 보급 유지'
],
events: {
'village-approach': {
title: '접선 핵심 지점 접근',
lines: [
'이 지점을 잡으면 조조군의 추격로와 원소 사자에게 닿는 길이 함께 열립니다.',
'주변 방어 병력을 정리한 뒤 손건의 문서를 앞세우면 접선 명분을 잃지 않고 북상할 수 있습니다.'
]
},
'enemy-posture': {
title: '채양의 추격 진형',
lines: [
'채양은 북동쪽 요새에 버티고, 기병은 남쪽 길을 타고 후방을 물려 합니다.',
'장비로 추격로를 끊고 관우가 중앙을 누르면 손건과 간옹이 접선 문서를 안전하게 밀어 올릴 수 있습니다.'
]
},
'cavalry-approach': {
title: '조조군 추격 기병',
lines: [
'기병이 길을 따라 유비의 후방을 노립니다.',
'장비를 남쪽 길목에 세워 먼저 받아치면 접선지로 나아갈 전열이 흐트러지지 않습니다.'
]
},
'leader-wavering': {
title: '채양 수비선 동요',
lines: [
'추격로와 접선지가 흔들리자 채양의 봉쇄선이 좁아지고 있습니다.',
'유비를 무리하게 앞세우지 말고 관우와 장비가 양쪽 압박을 유지하면 북상로가 열립니다.'
]
}
}
},
sortie: {
sortieLimit: 6,
requiredUnits: ['liu-bei'],
recommendedUnits: [
{ unitId: 'liu-bei', role: 'support', reason: '원소에게 의탁할 명분과 생존 조건을 모두 짊어집니다. 후방 지휘를 맡깁니다.' },
{ unitId: 'guan-yu', role: 'front', reason: '중앙 고갯길과 접선지 앞 수비선을 정면에서 밀어낼 핵심 전열입니다.' },
{ unitId: 'zhang-fei', role: 'flank', reason: '남쪽으로 붙는 추격 기병을 받아쳐 후방 길목을 끊는 역할입니다.' },
{ unitId: 'sun-qian', role: 'support', reason: '원소 사자와의 접선 문서를 정리해 접선지 확보 목표에 직접 힘을 보탭니다.' },
{ unitId: 'jian-yong', role: 'support', reason: '간옹의 말과 책략은 채양 추격대의 전열을 늦추는 데 유리합니다.' },
{ unitId: 'mi-zhu', role: 'reserve', reason: '긴 도주전에서 회복품과 보급선을 유지해 다음 의탁로까지 피해를 줄입니다.' }
],
recommendedClasses: [
{ label: '의탁 지휘', classKeys: ['lord'], reason: '유비 생존과 전후 명분이 원소 의탁 흐름을 좌우합니다.' },
{ label: '고갯길 전열', classKeys: ['infantry'], reason: '중앙 수비선과 채양 본진 앞 보병을 안정적으로 밀 수 있습니다.' },
{ label: '추격 차단', classKeys: ['spearman'], reason: '길을 따라 따라붙는 기병을 받아치고 후방을 지키기 좋습니다.' },
{ label: '접선 문서', classKeys: ['strategist'], reason: '원소 사자와의 접선 명분, 궁병 견제, 책략 지원이 함께 필요합니다.' },
{ label: '보급 유지', classKeys: ['quartermaster'], reason: '도주전은 피해 누적이 크므로 회복품과 보급 보존이 다음 전투 여유로 이어집니다.' }
],
deploymentSlots: [
{ role: 'support', unitId: 'liu-bei', x: 3, y: 18, label: '후방 지휘' },
{ role: 'front', unitId: 'guan-yu', x: 4, y: 17, label: '고갯길 전열' },
{ role: 'flank', unitId: 'zhang-fei', x: 4, y: 19, label: '추격 차단' },
{ role: 'support', unitId: 'sun-qian', x: 5, y: 18, label: '접선 문서' },
{ role: 'support', unitId: 'jian-yong', x: 5, y: 20, label: '책략 지원' },
{ role: 'reserve', unitId: 'mi-zhu', x: 3, y: 20, label: '보급 유지' }
],
note: '원소 의탁로는 중앙 고갯길을 열고 채양 본진 봉화대를 끊은 뒤 북동쪽 접선지로 오르는 전투입니다. 추천 배치는 장비가 남쪽 기병을 막고, 관우가 고갯길을 열며, 손건과 간옹이 접선 문서와 책략으로 전열을 받치는 형태입니다.'
},
map: fifteenthBattleMap, map: fifteenthBattleMap,
units: fifteenthBattleUnits, units: fifteenthBattleUnits,
bonds: fifteenthBattleBonds, bonds: fifteenthBattleBonds,
mapTextureKey: 'battle-map-fifteenth', mapTextureKey: 'battle-map-fifteenth',
leaderUnitId: 'yuan-refuge-leader-cai-yang', leaderUnitId: 'yuan-refuge-leader-cai-yang',
quickVictoryTurnLimit: 24, quickVictoryTurnLimit: 55,
baseVictoryGold: 1760, baseVictoryGold: 1760,
objectives: [ objectives: [
{ {
@@ -2004,18 +2076,38 @@ export const fifteenthBattleScenario: BattleScenarioDefinition = {
kind: 'secure-terrain', kind: 'secure-terrain',
label: '원소 사자 접선지 확보', label: '원소 사자 접선지 확보',
rewardGold: 640, rewardGold: 640,
terrain: 'fort' terrain: 'fort',
targetTile: { x: 31, y: 12, radius: 4 },
threatRadius: 0
},
{
id: 'rear-guard',
kind: 'secure-terrain',
label: '채양 본진 봉화대 차단',
rewardGold: 520,
terrain: 'fort',
targetTile: { x: 31, y: 11, radius: 3 },
threatRadius: 0
}, },
{ {
id: 'quick', id: 'quick',
kind: 'quick-victory', kind: 'quick-victory',
label: '24턴 이내 승리', label: '55턴 이내 승리',
rewardGold: 500, rewardGold: 500,
maxTurn: 24 maxTurn: 55
} }
], ],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }], defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
itemRewards: ['콩 6', '상처약 4', '탁주 2', '원소 접선 문서 +1'], itemRewards: ['콩 6', '상처약 4', '탁주 2', '원소 접선 문서 +1'],
campaignReward: {
supplies: ['콩 6', '상처약 4', '탁주 2'],
equipment: ['원소 접선 문서 1'],
reputation: ['조조 추격 차단 +1', '원소 의탁 명분 +1'],
recruits: ['zhao-yun'],
unlockBattleId: 'sixteenth-battle-liu-biao-refuge',
unlockLabel: '유표 의탁로 개방',
note: '채양 본진 봉화대와 원소 사자 접선지를 함께 확보해 조조군의 추격 명분을 끊고, 조운이 다시 유비군에 합류할 길을 엽니다.'
},
victoryPages: fifteenthBattleVictoryPages, victoryPages: fifteenthBattleVictoryPages,
nextCampScene: 'CampScene' nextCampScene: 'CampScene'
}; };

View File

@@ -1263,7 +1263,7 @@ export const fifteenthBattleIntroPages: StoryPage[] = [
chapter: '북쪽의 초대', chapter: '북쪽의 초대',
background: 'story-wandering', background: 'story-wandering',
speaker: '손건', speaker: '손건',
text: '원소 진영에서 사자가 내려왔습니다. 조조를 떠난 주공을 받아들일 뜻은 있으나, 북상로 곳곳에는 조조군 추격대가 깔려 있습니다.' text: '원소 진영에서 사자가 내려왔습니다. 북동쪽 요새 앞에서 접선하자 하나, 채양의 추격대가 강가 길목과 고갯길을 나누어 막고 있습니다.'
}, },
{ {
id: 'fifteenth-liu-bei-under-yuan-shadow', id: 'fifteenth-liu-bei-under-yuan-shadow',
@@ -1272,7 +1272,7 @@ export const fifteenthBattleIntroPages: StoryPage[] = [
background: 'story-wandering', background: 'story-wandering',
speaker: '유비', speaker: '유비',
portrait: 'liuBei', portrait: 'liuBei',
text: '원소의 깃발 아래로 들어가는 일은 뜻을 접는 일이 아니다. 지금은 큰 세력의 틈에서 백성을 지킬 시간을 얻어야 한다.' text: '원소의 깃발 아래로 들어가는 일은 뜻을 접는 일이 아니다. 조조의 칼끝을 피하고 백성을 지킬 시간을 얻기 위해, 오늘은 의탁할 길을 열어야 한다.'
}, },
{ {
id: 'fifteenth-guan-yu-pursuit-road', id: 'fifteenth-guan-yu-pursuit-road',
@@ -1281,7 +1281,7 @@ export const fifteenthBattleIntroPages: StoryPage[] = [
background: 'story-wandering', background: 'story-wandering',
speaker: '관우', speaker: '관우',
portrait: 'guanYu', portrait: 'guanYu',
text: '추격대가 강가와 고갯길을 나누어 막고 있습니다. 채양의 군세를 물리치고 접선지를 확보해야 원소 진영과 이어질 수 있습니다.' text: '채양 본진의 봉화대를 그냥 두면 후방 기병이 계속 따라붙습니다. 제가 고갯길을 밀겠습니다. 장비가 남쪽 추격로를 끊으면 접선지 앞 수비선이 흔들릴 것입니다.'
}, },
{ {
id: 'fifteenth-yuan-road-sortie', id: 'fifteenth-yuan-road-sortie',
@@ -1290,7 +1290,7 @@ export const fifteenthBattleIntroPages: StoryPage[] = [
background: 'story-wandering', background: 'story-wandering',
speaker: '장비', speaker: '장비',
portrait: 'zhangFei', portrait: 'zhangFei',
text: '쫓아오는 놈들이 조조의 명이라 떠들어도 결국 길을 막는 적일 뿐입니다. 형님, 이번엔 북쪽 길을 시원하게 열어 봅시다!' text: '좋습니다. 저는 남쪽 길에서 달려드는 놈들을 받아치겠습니다. 손건은 문서를 챙기고, 간옹은 적 전열을 흔드시오. 형님은 뒤에서 접선 명분을 지켜 주십시오!'
} }
]; ];
@@ -1300,7 +1300,7 @@ export const fifteenthBattleVictoryPages: StoryPage[] = [
bgm: 'militia-theme', bgm: 'militia-theme',
chapter: '추격을 끊다', chapter: '추격을 끊다',
background: 'story-wandering', background: 'story-wandering',
text: '채양의 추격대가 흩어지자 북상로의 먼지가 잠시 가라앉았다. 유비군은 원소의 사자가 기다리는 접선지에 닿을 수 있었다.' text: '채양 본진 봉화대와 북동쪽 접선지가 차례로 열리자 추격대는 더는 유비군의 뒤를 물지 못했다. 원소의 사자는 손건의 문서를 확인하고 군막 안으로 길을 내주었다.'
}, },
{ {
id: 'fifteenth-yuan-camp-opens', id: 'fifteenth-yuan-camp-opens',
@@ -1308,16 +1308,16 @@ export const fifteenthBattleVictoryPages: StoryPage[] = [
chapter: '원소의 장막', chapter: '원소의 장막',
background: 'story-wandering', background: 'story-wandering',
speaker: '간옹', speaker: '간옹',
text: '원소의 진영은 넓고 군세는 크지만, 그만큼 말과 눈도 많습니다. 몸을 맡기되 마음까지 맡기지는 말아야 하겠지요.' text: '원소의 진영은 넓고 군세는 크지만, 그만큼 말과 눈도 많습니다. 오늘 접선은 살 길을 얻은 일이지, 마음까지 맡긴 일은 아니라고 보아야 하겠지요.'
}, },
{ {
id: 'fifteenth-road-to-liu-biao', id: 'fifteenth-road-to-liu-biao',
bgm: 'battle-prep', bgm: 'battle-prep',
chapter: '다음 의탁의 그림자', chapter: '백마의 소식',
background: 'story-wandering', background: 'story-wandering',
speaker: '유비', speaker: '유비',
portrait: 'liuBei', portrait: 'liuBei',
text: '큰 깃발 아래에서도 우리의 뜻은 작아져서는 안 된다. 원소의 군영에서 기회를 살피고, 다시 백성을 지킬 길을 찾아야 한다.' text: '원소의 군영에 머물며 때를 보자. 공손찬 장군의 옛 장수 조운이 이 근처에 있다는 말도 들었다. 다시 뜻을 같이할 인연이 있다면, 다음 길은 더 단단해질 것이다.'
} }
]; ];

View File

@@ -729,13 +729,14 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
'fifteenth-battle-yuan-refuge-road': { 'fifteenth-battle-yuan-refuge-road': {
maxUnits: 6, maxUnits: 6,
recommended: [ recommended: [
{ unitId: 'liu-bei', reason: '원소 진영에 의탁할 명분과 생존 조건을 모두 짊어니다.' }, { unitId: 'liu-bei', reason: '원소에 의탁할 명분과 생존 조건을 모두 짊어지는 후방 지휘관입니다.' },
{ unitId: 'guan-yu', reason: '채양의 수비선을 정면에서 무너뜨릴 전열 핵심입니다.' }, { unitId: 'guan-yu', reason: '중앙 고갯길과 접선지 앞 수비선을 정면에서 밀어낼 전열 핵심입니다.' },
{ unitId: 'zhang-fei', reason: '추격 기병의 돌파를 받아치고 북상로를 벌리는 데 강합니다.' }, { unitId: 'zhang-fei', reason: '남쪽으로 붙는 추격 기병을 받아쳐 고갯길 후방을 끊는 역할입니다.' },
{ unitId: 'jian-yong', reason: '원소 사자와의 접선 명분을 조율하고 책략 지원을 맡습니다.' }, { unitId: 'sun-qian', reason: '원소 사자와의 접선 문서를 정리해 접선지 확보 목표에 직접 힘을 보탭니다.' },
{ unitId: 'sun-qian', reason: '문서와 외교 판단으로 접선지 확보 목표에 직접 힘을 보탭니다.' } { unitId: 'jian-yong', reason: '간옹의 말과 책략 지원은 채양 추격대의 전열을 늦추는 데 유리합니다.' },
{ unitId: 'mi-zhu', reason: '긴 도주전에서 회복품과 보급선을 유지해 다음 의탁로까지 피해를 줄입니다.' }
], ],
note: '원소 의탁로는 추격 기병과 고지 궁병이 함께 압박합니다. 전열을 두껍게 세우되 책사와 보급 장수도 빼지 않는 편이 안정적입니다.' note: '원소 의탁로는 중앙 고갯길을 열고 채양 본진 봉화대를 끊은 뒤 북동쪽 접선지로 오르는 전투입니다. 장비가 남쪽 기병을 막고, 관우가 고갯길을 열며, 손건과 간옹이 접선 문서와 책략으로 전열을 받치는 편이 안정적입니다.'
}, },
'sixteenth-battle-liu-biao-refuge': { 'sixteenth-battle-liu-biao-refuge': {
maxUnits: 6, maxUnits: 6,