Refine Xiapi outer siege flow
This commit is contained in:
@@ -1556,16 +1556,85 @@ export const twelfthBattleScenario: BattleScenarioDefinition = {
|
|||||||
victoryConditionLabel: '장료 격파',
|
victoryConditionLabel: '장료 격파',
|
||||||
defeatConditionLabel: '유비 퇴각',
|
defeatConditionLabel: '유비 퇴각',
|
||||||
openingObjectiveLines: [
|
openingObjectiveLines: [
|
||||||
'조조는 하비 포위망의 남쪽 둑길을 유비군에게 맡깁니다. 장료를 격파하면 여포군 선봉은 성 안으로 물러납니다.',
|
'허도 입성로에서 군율을 보인 유비군에게 조조는 하비 포위망의 남쪽 둑길을 맡깁니다. 장료를 격파하면 여포군 선봉은 성 안으로 물러납니다.',
|
||||||
'강줄기와 둑길이 전장을 나눕니다. 여포군 기병은 길을 타고 돌파하고, 성루 궁병과 진궁은 후방에서 압박합니다.',
|
'강줄기와 둑길이 전장을 가릅니다. 여포군 기병은 길을 타고 포위망을 찢으려 하고, 진궁과 성루 궁병은 중앙 보급 진영을 압박합니다.',
|
||||||
'둑길 진영을 확보하고 20턴 안에 승리하면 조조 휘하에서의 공적과 유비군의 독자 보급을 함께 지킬 수 있습니다.'
|
'둑길 보급 진영을 확보하고 35턴 안에 승리하면 조조 휘하의 공적과 유비군의 독자 보급 명분을 함께 지킬 수 있습니다.'
|
||||||
],
|
],
|
||||||
|
tacticalGuide: {
|
||||||
|
summary: '서남쪽 진영에서 둑길 보급 진영을 먼저 잡고, 장비가 기병 돌파를 끊는 동안 관우가 장료 선봉을 받아냅니다.',
|
||||||
|
route: '서남 진영 → 둑길 보급 진영 → 중앙 강가 길 → 장료 선봉',
|
||||||
|
focus:
|
||||||
|
'하비 외곽은 물길 때문에 전열이 갈라지기 쉽습니다. 보급 진영을 확보해 회복선을 만들고, 간옹은 진궁과 궁병 압박을 늦추며, 미축은 둑길 전열이 끊기지 않게 받쳐야 합니다.',
|
||||||
|
roles: [
|
||||||
|
'유비: 후방 지휘와 조조군 보고 명분 유지',
|
||||||
|
'관우: 중앙 둑길 정면 전열과 장료 견제',
|
||||||
|
'장비: 남쪽 길 기병 돌파 차단',
|
||||||
|
'간옹: 진궁/궁병 압박 완화와 전황 보고',
|
||||||
|
'미축: 보급 진영 유지와 회복품 운용'
|
||||||
|
],
|
||||||
|
events: {
|
||||||
|
'village-approach': {
|
||||||
|
title: '둑길 보급 진영 접근',
|
||||||
|
lines: [
|
||||||
|
'강가의 보급 진영이 흔들리면 조조군 포위망도 함께 벌어집니다.',
|
||||||
|
'이곳을 확보하면 유비군의 독자 보급선을 지키면서 장료 선봉을 압박할 수 있습니다.'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'enemy-posture': {
|
||||||
|
title: '하비 외곽 진형',
|
||||||
|
lines: [
|
||||||
|
'기병은 남북 둑길을 타고 찌르고, 궁병은 강 건너와 성루에서 사격 각을 잡습니다.',
|
||||||
|
'관우가 중앙을 막고 장비가 남쪽 길을 끊으면 장료가 움직일 공간이 줄어듭니다.'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'cavalry-approach': {
|
||||||
|
title: '여포군 기병 돌파',
|
||||||
|
lines: [
|
||||||
|
'여포군 기병이 둑길을 타고 포위망의 빈틈을 노립니다.',
|
||||||
|
'장비를 길목에 세우고 간옹의 둔화로 속도를 줄이면 보급 진영을 지키기 쉽습니다.'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'leader-wavering': {
|
||||||
|
title: '장료 선봉 흔들림',
|
||||||
|
lines: [
|
||||||
|
'둑길 보급 진영이 안정되자 장료 선봉의 돌파 각이 좁아지고 있습니다.',
|
||||||
|
'유비를 후방에 두고 관우와 장비가 양쪽 길을 압박하면 마지막 전열이 무너집니다.'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sortie: {
|
||||||
|
sortieLimit: 5,
|
||||||
|
requiredUnits: ['liu-bei'],
|
||||||
|
recommendedUnits: [
|
||||||
|
{ unitId: 'liu-bei', role: 'support', reason: '조조 휘하 작전에서도 유비군의 명분을 지켜야 합니다. 후방 지휘와 생존이 우선입니다.' },
|
||||||
|
{ unitId: 'guan-yu', role: 'front', reason: '중앙 둑길에서 장료 선봉을 받아낼 정면 전열입니다.' },
|
||||||
|
{ unitId: 'zhang-fei', role: 'flank', 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: 'jian-yong', x: 5, y: 20, label: '책략 견제' },
|
||||||
|
{ role: 'reserve', unitId: 'mi-zhu', x: 3, y: 21, label: '보급 유지' }
|
||||||
|
],
|
||||||
|
note: '하비 외곽전은 길이 좁고 물길이 전열을 자릅니다. 추천 배치는 관우가 중앙 둑길을 버티고, 장비가 기병 돌파를 끊으며, 간옹과 미축이 책략/보급으로 전열을 붙잡는 형태입니다.'
|
||||||
|
},
|
||||||
map: twelfthBattleMap,
|
map: twelfthBattleMap,
|
||||||
units: twelfthBattleUnits,
|
units: twelfthBattleUnits,
|
||||||
bonds: twelfthBattleBonds,
|
bonds: twelfthBattleBonds,
|
||||||
mapTextureKey: 'battle-map-twelfth',
|
mapTextureKey: 'battle-map-twelfth',
|
||||||
leaderUnitId: 'xiapi-leader-zhang-liao',
|
leaderUnitId: 'xiapi-leader-zhang-liao',
|
||||||
quickVictoryTurnLimit: 20,
|
quickVictoryTurnLimit: 35,
|
||||||
baseVictoryGold: 1440,
|
baseVictoryGold: 1440,
|
||||||
objectives: [
|
objectives: [
|
||||||
{
|
{
|
||||||
@@ -1585,20 +1654,30 @@ export const twelfthBattleScenario: BattleScenarioDefinition = {
|
|||||||
{
|
{
|
||||||
id: 'camp',
|
id: 'camp',
|
||||||
kind: 'secure-terrain',
|
kind: 'secure-terrain',
|
||||||
label: '하비 둑길 진영 확보',
|
label: '둑길 보급 진영 확보',
|
||||||
rewardGold: 500,
|
rewardGold: 500,
|
||||||
terrain: 'camp'
|
terrain: 'camp',
|
||||||
|
targetTile: { x: 23, y: 15, radius: 4 },
|
||||||
|
threatRadius: 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'quick',
|
id: 'quick',
|
||||||
kind: 'quick-victory',
|
kind: 'quick-victory',
|
||||||
label: '20턴 이내 승리',
|
label: '35턴 이내 승리',
|
||||||
rewardGold: 390,
|
rewardGold: 390,
|
||||||
maxTurn: 20
|
maxTurn: 35
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
||||||
itemRewards: ['콩 4', '상처약 3', '탁주 2', '하비 포위 공적 +1'],
|
itemRewards: ['콩 4', '상처약 3', '탁주 2', '하비 포위 공적 +1'],
|
||||||
|
campaignReward: {
|
||||||
|
supplies: ['콩 4', '상처약 3', '탁주 2'],
|
||||||
|
equipment: ['병법서 1'],
|
||||||
|
reputation: ['하비 포위 공적 +1'],
|
||||||
|
unlockBattleId: 'thirteenth-battle-xiapi-final',
|
||||||
|
unlockLabel: '하비 결전 개방',
|
||||||
|
note: '하비 외곽의 둑길과 보급 진영을 장악해 조조군 포위망이 성문과 수문까지 좁혀집니다.'
|
||||||
|
},
|
||||||
victoryPages: twelfthBattleVictoryPages,
|
victoryPages: twelfthBattleVictoryPages,
|
||||||
nextCampScene: 'CampScene'
|
nextCampScene: 'CampScene'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -333,7 +333,8 @@ const sortieFlows: Record<string, SortieFlow> = {
|
|||||||
afterBattleId: twelfthBattleScenario.id,
|
afterBattleId: twelfthBattleScenario.id,
|
||||||
eyebrow: '다음 전장',
|
eyebrow: '다음 전장',
|
||||||
title: thirteenthBattleScenario.title,
|
title: thirteenthBattleScenario.title,
|
||||||
description: '하비 외곽 포위망이 좁혀졌고, 여포의 마지막 운명도 가까워졌습니다. 성문과 수문을 뚫고 여포를 격파하면 조조 휘하에서 깊어지는 긴장이 다음 흐름으로 이어집니다.',
|
description:
|
||||||
|
'하비 외곽의 둑길 보급 진영을 장악하면서 포위망이 성문과 수문까지 좁혀졌습니다. 이제 여포의 마지막 돌파를 꺾어야 하며, 조조 휘하에서 깊어지는 긴장도 함께 드러납니다.',
|
||||||
rewardHint: `예상 보상: ${thirteenthBattleScenario.title} 개방`,
|
rewardHint: `예상 보상: ${thirteenthBattleScenario.title} 개방`,
|
||||||
nextBattleId: thirteenthBattleScenario.id,
|
nextBattleId: thirteenthBattleScenario.id,
|
||||||
campaignStep: 'thirteenth-battle',
|
campaignStep: 'thirteenth-battle',
|
||||||
|
|||||||
@@ -1080,7 +1080,7 @@ export const twelfthBattleIntroPages: StoryPage[] = [
|
|||||||
bgm: 'story-dark',
|
bgm: 'story-dark',
|
||||||
chapter: '조조의 명',
|
chapter: '조조의 명',
|
||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
text: '허도에 머문 지 오래지 않아 조조는 유비군을 하비 포위전에 부른다. 여포를 치는 명령은 서주를 잃은 한을 풀 기회이자, 조조의 칼끝이 어디를 향하는지 가늠하는 시험이었다.'
|
text: '허도 입성로에서 군율을 보인 뒤, 조조는 곧장 유비군을 하비 포위전에 불렀다. 여포를 치는 명령은 서주를 잃은 한을 풀 기회이자, 조조의 칼끝이 어디를 향하는지 가늠하는 두 번째 시험이었다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twelfth-xiapi-shadow',
|
id: 'twelfth-xiapi-shadow',
|
||||||
@@ -1088,7 +1088,7 @@ export const twelfthBattleIntroPages: StoryPage[] = [
|
|||||||
chapter: '하비의 물길',
|
chapter: '하비의 물길',
|
||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
speaker: '미축',
|
speaker: '미축',
|
||||||
text: '하비 외곽은 강과 진흙이 얽혀 있습니다. 보급로를 끊고 둑길을 잡지 못하면, 여포군 기병이 포위망의 빈틈을 찢고 나올 것입니다.'
|
text: '하비 외곽은 강과 진흙이 얽혀 있습니다. 중앙의 둑길 보급 진영을 잡지 못하면, 여포군 기병이 포위망의 빈틈을 찢고 조조군 장부에는 우리 실책만 남을 것입니다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twelfth-brothers-before-lubu',
|
id: 'twelfth-brothers-before-lubu',
|
||||||
@@ -1097,7 +1097,7 @@ export const twelfthBattleIntroPages: StoryPage[] = [
|
|||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
speaker: '장비',
|
speaker: '장비',
|
||||||
portrait: 'zhangFei',
|
portrait: 'zhangFei',
|
||||||
text: '형님, 이번엔 여포의 이름만 들어도 창끝이 뜨겁습니다. 허나 서두르지 않겠습니다. 먼저 포위망을 조이고, 놈의 날뛰는 길을 끊겠습니다.'
|
text: '형님, 여포의 이름만 들어도 창끝이 뜨겁습니다. 허나 이번엔 서두르지 않겠습니다. 남쪽 둑길을 끊어 기병이 날뛰는 길부터 막겠습니다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twelfth-xiapi-sortie',
|
id: 'twelfth-xiapi-sortie',
|
||||||
@@ -1106,7 +1106,7 @@ export const twelfthBattleIntroPages: StoryPage[] = [
|
|||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
speaker: '유비',
|
speaker: '유비',
|
||||||
portrait: 'liuBei',
|
portrait: 'liuBei',
|
||||||
text: '여포를 치는 싸움이 조조의 명이라 해도, 서주 백성이 다시 짓밟히지 않게 하는 일은 우리의 뜻이다. 물길을 잡고 포위망을 열어라.'
|
text: '관우는 중앙 둑길을 지키고, 장비는 기병을 막아라. 간옹과 미축은 보급 진영을 놓치지 마라. 조조의 명을 따르되, 서주 백성이 다시 짓밟히지 않게 하는 일은 우리의 뜻이다.'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -1116,7 +1116,7 @@ export const twelfthBattleVictoryPages: StoryPage[] = [
|
|||||||
bgm: 'militia-theme',
|
bgm: 'militia-theme',
|
||||||
chapter: '무너진 외곽 진영',
|
chapter: '무너진 외곽 진영',
|
||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
text: '유비군은 하비 외곽의 둑길과 보급 진영을 장악했다. 여포군 선봉은 성 안으로 물러났고, 조조군은 포위망을 한층 더 좁혔다.'
|
text: '유비군은 하비 외곽의 둑길 보급 진영을 장악했고, 장료의 선봉은 성 안으로 물러났다. 조조군은 포위망을 성문과 수문 가까이까지 좁혔다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twelfth-cao-cao-watches',
|
id: 'twelfth-cao-cao-watches',
|
||||||
@@ -1124,7 +1124,7 @@ export const twelfthBattleVictoryPages: StoryPage[] = [
|
|||||||
chapter: '칭찬과 감시',
|
chapter: '칭찬과 감시',
|
||||||
background: 'story-wandering',
|
background: 'story-wandering',
|
||||||
speaker: '간옹',
|
speaker: '간옹',
|
||||||
text: '현덕, 조조는 오늘의 공을 칭찬하겠지만 동시에 더 깊이 살필 걸세. 여포를 치는 동안에도, 우리가 조조의 손안에만 있지 않다는 것을 잊지 말아야 하네.'
|
text: '현덕, 조조는 오늘의 공을 칭찬하겠지만 동시에 더 깊이 살필 걸세. 다음은 하비 성문과 수문일 테니, 여포를 치는 동안에도 우리가 조조의 손안에만 있지 않다는 것을 잊지 말아야 하네.'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -695,12 +695,13 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
|
|||||||
'twelfth-battle-xiapi-outer-siege': {
|
'twelfth-battle-xiapi-outer-siege': {
|
||||||
maxUnits: 5,
|
maxUnits: 5,
|
||||||
recommended: [
|
recommended: [
|
||||||
{ unitId: 'liu-bei', reason: '조조 휘하 작전에서도 유비군의 명분을 지켜야 합니다.' },
|
{ unitId: 'liu-bei', reason: '조조 휘하 작전에서도 유비군의 명분을 지켜야 합니다. 후방 지휘와 생존이 우선입니다.' },
|
||||||
{ unitId: 'zhang-fei', reason: '여포군 기병 돌파를 막고 둑길을 압박합니다.' },
|
{ unitId: 'guan-yu', reason: '중앙 둑길에서 장료 선봉을 받아낼 정면 전열입니다.' },
|
||||||
{ unitId: 'jian-yong', reason: '조조군 감시 속 명분과 보고 문서를 조율합니다.' },
|
{ unitId: 'zhang-fei', reason: '여포군 기병 돌파를 남쪽 길목에서 끊는 측면 차단에 좋습니다.' },
|
||||||
{ unitId: 'mi-zhu', reason: '강가 포위전의 보급과 회복 운용에 유리합니다.' }
|
{ unitId: 'jian-yong', reason: '진궁과 궁병 압박을 늦추고 조조군 보고 문서를 조율합니다.' },
|
||||||
|
{ unitId: 'mi-zhu', reason: '둑길 보급 진영을 지키고 회복품 운용을 안정시킵니다.' }
|
||||||
],
|
],
|
||||||
note: '하비 외곽전은 강줄기와 둑길이 전장을 나눕니다. 돌파와 보급, 조조군 보고까지 함께 고려하십시오.'
|
note: '하비 외곽전은 강줄기와 둑길이 전장을 나눕니다. 보급 진영을 먼저 안정시키고, 장비로 기병 돌파를 끊은 뒤 장료 선봉을 압박하십시오.'
|
||||||
},
|
},
|
||||||
'thirteenth-battle-xiapi-final': {
|
'thirteenth-battle-xiapi-final': {
|
||||||
maxUnits: 5,
|
maxUnits: 5,
|
||||||
|
|||||||
Reference in New Issue
Block a user