Refine Tianshui northern advance battle flow

This commit is contained in:
2026-07-05 00:12:22 +09:00
parent 379ad28522
commit 98eff7aa7a
3 changed files with 111 additions and 7 deletions

View File

@@ -8143,6 +8143,80 @@ export const fiftySixthBattleScenario: BattleScenarioDefinition = {
'이번 전투는 적장을 베는 것만으로 끝나지 않습니다. 천수 길목, 물길, 마을, 가정으로 이어지는 고개를 함께 보아야 북벌이 끊기지 않습니다.',
'곽회를 물러나게 하고 강유의 움직임을 확인하십시오. 다음 전선에서 그 이름이 촉한에 어떤 의미가 될지 여기서 처음 드러납니다.'
],
tacticalGuide: {
summary: '천수로 향하는 물길과 마을을 안정시키며 곽회의 방어선을 밀고, 강유의 기동을 무리하게 쫓기보다 전술 의도를 확인합니다.',
route: '기산 진영 -> 하곡 물길 -> 천수 마을 -> 가정 고개 -> 곽회 본영',
focus: '물길 마을과 천수 진군로를 먼저 잡고, 강유가 움직이는 중앙 고개에서는 기동대를 깊게 넣지 말고 왕평과 조운으로 퇴로를 남기십시오.',
roles: ['제갈량: 천수 전선 총지휘', '왕평: 가정 고개와 물길 판단', '조운/마대: 강유와 위군 기병 대응', '황권/마량: 마을과 보급 안정', '법정: 방어선 빈틈 파악'],
events: {
'village-approach': {
title: '물길 마을 접근',
lines: [
'마량: 천수의 마을은 아직 어느 편에도 마음을 주지 않았습니다.',
'마을을 안정시키면 강유의 움직임을 읽을 말길도 열립니다.'
]
},
'vanguard-broken': {
title: '천수 진군로 돌파',
lines: [
'왕평: 길은 열려 보여도 가정으로 이어지는 고개가 멉니다.',
'전열을 길게 늘이지 말고 물길과 보급을 붙잡은 채 밀어 올리십시오.'
]
},
'cavalry-approach': {
title: '강유의 기동',
lines: [
'조운: 강유의 움직임은 단순한 추격이 아닙니다. 퇴로를 보며 찔러 옵니다.',
'마대: 깊이 쫓기보다 옆길을 막아 기동의 뜻을 확인하겠습니다.'
]
},
'enemy-posture': {
title: '곽회 방어선',
lines: [
'법정: 곽회는 길목보다 보급이 끊기는 순간을 기다립니다.',
'제갈량을 노출시키지 말고 가정 고개와 마을 사이의 전선을 짧게 유지하십시오.'
]
},
'leader-wavering': {
title: '젊은 장수의 이름',
lines: [
'제갈량: 강유는 꺾어 버릴 이름이 아니라 살펴야 할 재능입니다.',
'오늘의 목적은 땅을 얻는 것뿐 아니라 다음 전선에서 사람을 얻을 길을 남기는 것입니다.'
]
}
}
},
sortie: {
sortieLimit: 7,
requiredUnits: ['zhuge-liang'],
recommendedUnits: [
{ unitId: 'zhuge-liang', role: 'support', reason: '천수 진군과 강유의 움직임을 직접 판단해야 하는 총지휘관입니다.' },
{ unitId: 'wang-ping', role: 'front', reason: '가정으로 이어지는 고개와 물길이 먼 지형을 읽는 핵심 장수입니다.' },
{ unitId: 'zhao-yun', role: 'front', reason: '강유와 위군 기병의 빠른 움직임에 대응할 기동 담당입니다.' },
{ unitId: 'huang-quan', role: 'support', reason: '천수 길목의 보급선과 물길 확보 목표에서 안정적인 판단을 제공합니다.' },
{ unitId: 'ma-liang', role: 'support', reason: '천수 마을과 강유 접촉의 명분을 부드럽게 정리할 문사입니다.' },
{ unitId: 'fa-zheng', role: 'support', reason: '위군 방어선의 빈틈과 장수들의 속내를 읽는 책략 담당입니다.' },
{ unitId: 'ma-dai', role: 'flank', reason: '서량 기병의 감각으로 우회 기병과 물목 차단에 대응하기 좋습니다.' }
],
recommendedClasses: [
{ label: '천수 총지휘', classKeys: ['strategist'], reason: '제갈량이 물길, 고개, 강유 관찰 목표를 함께 판단합니다.' },
{ label: '가정 고개 확인', classKeys: ['infantry', 'spearman'], reason: '가정으로 이어지는 고개를 무리 없이 밀고 퇴로를 남깁니다.' },
{ label: '강유 기동 대응', classKeys: ['cavalry'], reason: '강유와 위군 기병의 빠른 압박을 따라잡되 깊게 물리지 않습니다.' },
{ label: '물길 마을 안정', classKeys: ['strategist', 'archer'], reason: '마을 주변을 안정시켜 북벌군의 명분과 보급을 지킵니다.' },
{ label: '방어선 책략', classKeys: ['strategist'], reason: '곽회의 방어선과 군리의 빈틈을 읽어 진군로를 엽니다.' }
],
deploymentSlots: [
{ x: 36, y: 74, role: 'support', unitId: 'zhuge-liang', label: '천수 지휘' },
{ x: 45, y: 69, role: 'front', unitId: 'wang-ping', label: '고개 판단' },
{ x: 42, y: 72, role: 'front', unitId: 'zhao-yun', label: '강유 대응' },
{ x: 35, y: 71, role: 'support', unitId: 'huang-quan', label: '물길 보급' },
{ x: 39, y: 68, role: 'support', unitId: 'ma-liang', label: '마을 명분' },
{ x: 25, y: 70, role: 'support', unitId: 'fa-zheng', label: '방어선 파악' },
{ x: 48, y: 72, role: 'flank', unitId: 'ma-dai', label: '우회 차단' }
],
note:
'천수 진군로는 길을 뚫는 전투이면서 강유의 재능을 처음 확인하는 전장입니다. 제갈량을 중심으로 지형, 기동, 보급, 설득 역할을 7명 안에 담으십시오.'
},
map: fiftySixthBattleMap,
units: fiftySixthBattleUnits,
bonds: fiftySixthBattleBonds,
@@ -8177,21 +8251,27 @@ export const fiftySixthBattleScenario: BattleScenarioDefinition = {
kind: 'secure-terrain',
label: '천수 진군로 확보',
rewardGold: 5400,
terrain: 'road'
terrain: 'road',
targetTile: { x: 76, y: 54, radius: 6 },
threatRadius: 0
},
{
id: 'jieting-forts',
kind: 'secure-terrain',
label: '가정 고개 요새 압박',
rewardGold: 5060,
terrain: 'fort'
terrain: 'fort',
targetTile: { x: 89, y: 40, radius: 6 },
threatRadius: 0
},
{
id: 'waterline-villages',
kind: 'secure-terrain',
label: '물길 마을 안정',
rewardGold: 4740,
terrain: 'village'
terrain: 'village',
targetTile: { x: 92, y: 56, radius: 5 },
threatRadius: 0
},
{
id: 'quick',
@@ -8203,6 +8283,14 @@ export const fiftySixthBattleScenario: BattleScenarioDefinition = {
],
defeatConditions: [{ kind: 'unit-defeated', unitId: 'zhuge-liang' }],
itemRewards: ['콩 62', '상처약 46', '탁주 23', '천수 진군 장부 1', '가정 지형 표식 1'],
campaignReward: {
supplies: ['콩 62', '상처약 46', '탁주 23'],
equipment: ['천수 진군 장부 1'],
reputation: ['가정 지형 표식 1'],
unlockLabel: '가정 배치',
note:
'천수 진군로를 확보하고 강유의 재능을 확인했습니다. 물길 마을과 가정 고개 정보가 다음 가정 배치 판단의 근거가 됩니다.'
},
victoryPages: fiftySixthBattleVictoryPages,
nextCampScene: 'CampScene'
};

View File

@@ -3909,7 +3909,7 @@ export const fiftySixthBattleIntroPages: StoryPage[] = [
chapter: '천수 방면',
background: 'story-tianshui-front',
speaker: '마량',
text: '기산 길목을 확보하자 천수와 가정 사이의 성들이 급히 봉화를 올렸습니다. 위군은 조진의 전초대가 물러난 틈을 곽회에게 맡기고, 젊은 장수 강유가 산길의 허점을 살피고 있다고 합니다.'
text: '기산 길목을 확보하자 천수와 가정 사이의 성들이 급히 봉화를 올렸습니다. 위군은 조진의 전초대가 물러난 틈을 곽회에게 맡기고, 젊은 장수 강유가 물길과 고개의 허점을 살피고 있다고 합니다.'
},
{
id: 'fifty-sixth-qishan-council',
@@ -3917,7 +3917,7 @@ export const fiftySixthBattleIntroPages: StoryPage[] = [
chapter: '진군로 재편',
background: 'story-tianshui-front',
speaker: '제갈량',
text: '북벌은 빠르게 밀어붙이는 것보다 끊기지 않는 것이 중요합니다. 조운은 우회로를 보고, 황권과 마량은 마을과 창고를 묶고, 왕평은 가정으로 이어지는 고개를 살펴 주십시오.'
text: '북벌은 빠르게 밀어붙이는 것보다 끊기지 않는 것이 중요합니다. 조운은 강유의 기동을 보고, 황권과 마량은 물길 마을과 창고를 묶고, 왕평은 가정으로 이어지는 고개를 살펴 주십시오.'
},
{
id: 'fifty-sixth-jiang-wei-shadow',
@@ -3925,7 +3925,7 @@ export const fiftySixthBattleIntroPages: StoryPage[] = [
chapter: '젊은 장수의 그림자',
background: 'story-tianshui-front',
speaker: '조운',
text: '강유라는 장수는 평범한 수비장이 아닙니다. 정면에서만 치면 곽회의 방어선에 묶이고, 너무 깊이 들어가면 가정 방면의 퇴로가 끊깁니다. 이번 싸움은 적장 하나보다 전선 전체를 읽는 싸움이 되겠습니다.'
text: '강유라는 장수는 평범한 수비장이 아닙니다. 정면에서만 치면 곽회의 방어선에 묶이고, 너무 깊이 들어가면 가정 방면의 퇴로가 끊깁니다. 이번 싸움은 적장 하나보다 강유의 기동, 물길 마을, 가정 고개를 함께 읽는 싸움이 되겠습니다.'
}
];
@@ -3935,7 +3935,7 @@ export const fiftySixthBattleVictoryPages: StoryPage[] = [
bgm: 'militia-theme',
chapter: '천수 진군로 확보',
background: 'story-tianshui-front',
text: '곽회의 방어선은 물러났고, 천수로 향하는 길에는 촉한군의 표식이 세워졌습니다. 그러나 강유의 움직임은 끝내 가볍지 않았고, 위군은 가정 방면으로 더 넓은 방어선을 펼치기 시작했습니다.'
text: '곽회의 방어선은 물러났고, 천수로 향하는 길에는 촉한군의 표식이 세워졌습니다. 물길 마을도 약탈 없이 안정되었으나, 강유의 움직임은 끝내 가볍지 않았고 위군은 가정 방면으로 더 넓은 방어선을 펼치기 시작했습니다.'
},
{
id: 'fifty-sixth-victory-jiang-wei',

View File

@@ -1854,6 +1854,22 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
{ unitId: 'fa-zheng', reason: '위군 방어선의 빈틈과 장수들의 속내를 읽는 책략 담당입니다.' },
{ unitId: 'ma-dai', reason: '서량 기병의 감각으로 우회 기병과 물목 차단에 대응하기 좋습니다.' }
],
recommendedClasses: [
{ label: '천수 총지휘', classKeys: ['strategist'], reason: '제갈량이 물길, 고개, 강유 관찰 목표를 함께 판단합니다.' },
{ label: '가정 고개 확인', classKeys: ['infantry', 'spearman'], reason: '가정으로 이어지는 고개를 무리 없이 밀고 퇴로를 남깁니다.' },
{ label: '강유 기동 대응', classKeys: ['cavalry'], reason: '강유와 위군 기병의 빠른 압박을 따라잡되 깊게 물리지 않습니다.' },
{ label: '물길 마을 안정', classKeys: ['strategist', 'archer'], reason: '마을 주변을 안정시켜 북벌군의 명분과 보급을 지킵니다.' },
{ label: '방어선 책략', classKeys: ['strategist'], reason: '곽회의 방어선과 군리의 빈틈을 읽어 진군로를 엽니다.' }
],
deploymentSlots: [
{ x: 36, y: 74, role: 'support', unitId: 'zhuge-liang', label: '천수 지휘' },
{ x: 45, y: 69, role: 'front', unitId: 'wang-ping', label: '고개 판단' },
{ x: 42, y: 72, role: 'front', unitId: 'zhao-yun', label: '강유 대응' },
{ x: 35, y: 71, role: 'support', unitId: 'huang-quan', label: '물길 보급' },
{ x: 39, y: 68, role: 'support', unitId: 'ma-liang', label: '마을 명분' },
{ x: 25, y: 70, role: 'support', unitId: 'fa-zheng', label: '방어선 파악' },
{ x: 48, y: 72, role: 'flank', unitId: 'ma-dai', label: '우회 차단' }
],
note: '천수 진군로는 길을 뚫는 전투이면서 강유의 재능을 처음 확인하는 전장입니다. 제갈량을 중심으로 지형, 기동, 보급, 설득 역할을 7명 안에 담으십시오.'
},
'fifty-seventh-battle-jieting-crisis': {