Refine Red Cliffs fire battle flow
This commit is contained in:
@@ -2964,16 +2964,80 @@ export const twentySecondBattleScenario: BattleScenarioDefinition = {
|
|||||||
victoryConditionLabel: '조조 본선 퇴각',
|
victoryConditionLabel: '조조 본선 퇴각',
|
||||||
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
defeatConditionLabel: '유비 또는 제갈량 퇴각',
|
||||||
openingObjectiveLines: [
|
openingObjectiveLines: [
|
||||||
'황개의 거짓 항복선이 조조 함대로 향합니다. 조조군 감시선이 화선을 알아차리면 적벽의 불길은 시작되기도 전에 꺼집니다.',
|
'배다리 거점과 강동 포구가 열리자 황개의 거짓 항복선이 조조 함대로 향합니다. 감시선이 화선을 알아차리면 적벽의 불길은 시작되기도 전에 꺼집니다.',
|
||||||
'강 위에는 연환선과 배다리가 얽혀 있습니다. 전열 장수로 갑판 보병을 묶고, 기동 장수로 강안 기병을 끊어 화선 접안로를 열어야 합니다.',
|
'강 위에는 연환선과 배다리가 얽혀 있습니다. 조운은 강안 기병을 끊고, 관우와 장비는 갑판 보병을 묶어 화선 접안로와 동남풍 신호 지점을 열어야 합니다.',
|
||||||
'제갈량을 지키고 조조 본선을 퇴각시키십시오. 화선 준비 지점을 확보하면 적벽대전의 결정적 승리를 얻을 수 있습니다.'
|
'제갈량을 지키고 조조 본선을 퇴각시키십시오. 화선 접안로와 연환선 돌파 지점을 확보하면 형주 남부로 향할 결정적 승리를 얻습니다.'
|
||||||
],
|
],
|
||||||
|
tacticalGuide: {
|
||||||
|
summary: '21전에서 확보한 배다리와 포구를 발판으로, 감시선을 누르고 화선이 조조 본선에 닿을 길을 여는 적벽 결전입니다.',
|
||||||
|
route: '서남 동맹 진영 → 화선 접안로 → 동남풍 신호 지점 → 연환선 돌파 → 조조 본선',
|
||||||
|
focus:
|
||||||
|
'초반에는 조운으로 강안 기병과 감시병을 끊어 화선이 들키지 않게 하고, 관우와 장비가 갑판 보병을 받아내야 합니다. 제갈량은 후방에서 동남풍 타이밍을 보존하고, 유비는 전선이 너무 동쪽으로 찢어지지 않게 지휘하십시오.',
|
||||||
|
roles: [
|
||||||
|
'유비: 동맹 명분과 전선 지휘',
|
||||||
|
'제갈량: 동남풍 판단과 책략 지원',
|
||||||
|
'조운: 강안 기병과 감시병 차단',
|
||||||
|
'관우: 갑판 보병 정면 압박',
|
||||||
|
'장비: 배다리와 연환선 돌파',
|
||||||
|
'미축: 화공전 장기 피해 회복과 보급'
|
||||||
|
],
|
||||||
|
events: {
|
||||||
|
'village-approach': {
|
||||||
|
title: '화선 접안로 접근',
|
||||||
|
lines: [
|
||||||
|
'이 지점을 누르면 황개의 화선이 조조 함대 가까이 붙을 수 있습니다.',
|
||||||
|
'감시병과 선상 궁병을 오래 남겨 두지 말고, 전열을 좁게 유지해 동남풍 신호 지점까지 이어 가십시오.'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'cavalry-approach': {
|
||||||
|
title: '강안 기병 견제',
|
||||||
|
lines: [
|
||||||
|
'조조군 기병이 강안으로 돌아 제갈량과 보급선을 노립니다.',
|
||||||
|
'조운이 먼저 끊어야 화선의 접근과 동남풍 판단이 흔들리지 않습니다.'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'leader-wavering': {
|
||||||
|
title: '조조 본선 동요',
|
||||||
|
lines: [
|
||||||
|
'화선이 연환선 사이로 파고들자 조조 본선의 지휘가 흔들립니다.',
|
||||||
|
'친위를 정리하고 조조를 몰아내면 적벽의 불길이 형주 남부로 가는 길을 엽니다.'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sortie: {
|
||||||
|
sortieLimit: 6,
|
||||||
|
requiredUnits: ['liu-bei', 'zhuge-liang'],
|
||||||
|
recommendedUnits: [
|
||||||
|
{ unitId: 'liu-bei', role: 'reserve', reason: '적벽 결전의 명분이자 패배 조건의 중심입니다.' },
|
||||||
|
{ unitId: 'zhuge-liang', role: 'support', reason: '동남풍과 화공 시점을 판단하는 핵심 책략 담당입니다.' },
|
||||||
|
{ unitId: 'zhao-yun', role: 'flank', reason: '화선을 노리는 강안 기병과 감시병을 빠르게 끊습니다.' },
|
||||||
|
{ unitId: 'guan-yu', role: 'front', reason: '갑판 보병과 본선 친위를 정면에서 받아낼 전열입니다.' },
|
||||||
|
{ unitId: 'zhang-fei', role: 'front', reason: '배다리와 좁은 연환선 길을 밀어붙이는 돌파 역할입니다.' },
|
||||||
|
{ unitId: 'mi-zhu', role: 'support', reason: '화공전의 장기 피해를 버티기 위한 회복과 보급을 맡습니다.' }
|
||||||
|
],
|
||||||
|
recommendedClasses: [
|
||||||
|
{ label: '동맹 지휘', classKeys: ['lord'], reason: '유비가 무너지지 않아야 손유 동맹의 결전 명분이 유지됩니다.' },
|
||||||
|
{ label: '동남풍 책략', classKeys: ['strategist'], reason: '제갈량의 생존과 판단이 화공 성공의 핵심입니다.' },
|
||||||
|
{ label: '갑판 전열', classKeys: ['infantry', 'spearman'], reason: '좁은 배다리와 갑판에서는 튼튼한 전열이 피해를 받아내야 합니다.' },
|
||||||
|
{ label: '강안 기동', classKeys: ['cavalry'], reason: '기동 장수가 감시병과 기병을 먼저 끊어 화선 접안로를 엽니다.' }
|
||||||
|
],
|
||||||
|
deploymentSlots: [
|
||||||
|
{ x: 4, y: 23, role: 'reserve', unitId: 'liu-bei', label: '동맹 지휘' },
|
||||||
|
{ x: 6, y: 21, role: 'front', unitId: 'guan-yu', label: '갑판 전열' },
|
||||||
|
{ x: 6, y: 25, role: 'front', unitId: 'zhang-fei', label: '연환선 돌파' },
|
||||||
|
{ x: 8, y: 20, role: 'flank', unitId: 'zhao-yun', label: '강안 차단' },
|
||||||
|
{ x: 6, y: 22, role: 'support', unitId: 'zhuge-liang', label: '동남풍 판단' },
|
||||||
|
{ x: 5, y: 27, role: 'support', unitId: 'mi-zhu', label: '화공 보급' }
|
||||||
|
],
|
||||||
|
note: '적벽 화공전은 강 위의 결전입니다. 유비와 제갈량을 반드시 포함하고, 조운으로 감시병과 기병을 끊은 뒤 관우와 장비가 화선 접안로와 연환선을 열어야 합니다.'
|
||||||
|
},
|
||||||
map: twentySecondBattleMap,
|
map: twentySecondBattleMap,
|
||||||
units: twentySecondBattleUnits,
|
units: twentySecondBattleUnits,
|
||||||
bonds: twentySecondBattleBonds,
|
bonds: twentySecondBattleBonds,
|
||||||
mapTextureKey: 'battle-map-twenty-second',
|
mapTextureKey: 'battle-map-twenty-second',
|
||||||
leaderUnitId: 'redcliff-fire-leader-cao-cao',
|
leaderUnitId: 'redcliff-fire-leader-cao-cao',
|
||||||
quickVictoryTurnLimit: 31,
|
quickVictoryTurnLimit: 42,
|
||||||
baseVictoryGold: 2840,
|
baseVictoryGold: 2840,
|
||||||
objectives: [
|
objectives: [
|
||||||
{
|
{
|
||||||
@@ -3002,14 +3066,34 @@ export const twentySecondBattleScenario: BattleScenarioDefinition = {
|
|||||||
kind: 'secure-terrain',
|
kind: 'secure-terrain',
|
||||||
label: '화선 접안로 확보',
|
label: '화선 접안로 확보',
|
||||||
rewardGold: 980,
|
rewardGold: 980,
|
||||||
terrain: 'village'
|
terrain: 'village',
|
||||||
|
targetTile: { x: 28, y: 20, radius: 3 },
|
||||||
|
threatRadius: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'wind-signal',
|
||||||
|
kind: 'secure-terrain',
|
||||||
|
label: '동남풍 신호 지점 확보',
|
||||||
|
rewardGold: 880,
|
||||||
|
terrain: 'village',
|
||||||
|
targetTile: { x: 35, y: 14, radius: 4 },
|
||||||
|
threatRadius: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'chain-fleet',
|
||||||
|
kind: 'secure-terrain',
|
||||||
|
label: '연환선 돌파 지점 확보',
|
||||||
|
rewardGold: 1040,
|
||||||
|
terrain: 'fort',
|
||||||
|
targetTile: { x: 36, y: 14, radius: 3 },
|
||||||
|
threatRadius: 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'quick',
|
id: 'quick',
|
||||||
kind: 'quick-victory',
|
kind: 'quick-victory',
|
||||||
label: '31턴 이내 승리',
|
label: '42턴 이내 승리',
|
||||||
rewardGold: 720,
|
rewardGold: 720,
|
||||||
maxTurn: 31
|
maxTurn: 42
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
defeatConditions: [
|
defeatConditions: [
|
||||||
@@ -3017,6 +3101,13 @@ export const twentySecondBattleScenario: BattleScenarioDefinition = {
|
|||||||
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
{ kind: 'unit-defeated', unitId: 'zhuge-liang' }
|
||||||
],
|
],
|
||||||
itemRewards: ['콩 9', '상처약 6', '탁주 4', '화공 전과 +1', '동남풍 기록 +1'],
|
itemRewards: ['콩 9', '상처약 6', '탁주 4', '화공 전과 +1', '동남풍 기록 +1'],
|
||||||
|
campaignReward: {
|
||||||
|
supplies: ['콩 9', '상처약 6', '탁주 4'],
|
||||||
|
reputation: ['적벽 화공 전과 +1', '동남풍 기록 +1', '손유 동맹 명성 +1'],
|
||||||
|
unlockBattleId: 'twenty-third-battle-jingzhou-south-entry',
|
||||||
|
unlockLabel: '형주 남부 진입전 개방',
|
||||||
|
note: '화선 접안로와 동남풍 신호 지점을 확보해 조조 본선을 몰아냈습니다. 조조의 남하가 꺾였으니 유비군은 형주 남부의 길과 민심을 열 차례입니다.'
|
||||||
|
},
|
||||||
victoryPages: twentySecondBattleVictoryPages,
|
victoryPages: twentySecondBattleVictoryPages,
|
||||||
nextCampScene: 'CampScene'
|
nextCampScene: 'CampScene'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -444,8 +444,8 @@ const sortieFlows: Record<string, SortieFlow> = {
|
|||||||
eyebrow: '다음 전장',
|
eyebrow: '다음 전장',
|
||||||
title: twentyThirdBattleScenario.title,
|
title: twentyThirdBattleScenario.title,
|
||||||
description:
|
description:
|
||||||
'적벽의 불길로 조조의 남하가 꺾였습니다. 유비군은 이제 형주 남부의 길목을 열고, 백성을 먼저 안정시키며 머물 땅을 마련해야 합니다.',
|
'화선 접안로와 동남풍 신호 지점을 열어 적벽의 불길이 조조 본선을 물러나게 했습니다. 유비군은 이제 형주 남부의 길목을 열고, 백성을 먼저 안정시키며 머물 땅을 마련해야 합니다.',
|
||||||
rewardHint: `예상 보상: ${twentyThirdBattleScenario.title} 개방 / 마량 합류`,
|
rewardHint: `예상 보상: ${twentyThirdBattleScenario.title} 개방 / 마량 합류 / 적벽 명성`,
|
||||||
nextBattleId: twentyThirdBattleScenario.id,
|
nextBattleId: twentyThirdBattleScenario.id,
|
||||||
campaignStep: 'twenty-third-battle',
|
campaignStep: 'twenty-third-battle',
|
||||||
pages: [...twentySecondBattleVictoryPages, ...twentyThirdBattleIntroPages]
|
pages: [...twentySecondBattleVictoryPages, ...twentyThirdBattleIntroPages]
|
||||||
|
|||||||
@@ -1705,7 +1705,7 @@ export const twentySecondBattleIntroPages: StoryPage[] = [
|
|||||||
chapter: '황개의 결단',
|
chapter: '황개의 결단',
|
||||||
background: 'story-red-cliffs',
|
background: 'story-red-cliffs',
|
||||||
speaker: '주유',
|
speaker: '주유',
|
||||||
text: '황개 장군은 거짓 항복의 배를 준비했습니다. 조조가 그 배를 의심하지 않게 하려면, 유비군은 강안의 감시선을 흔들어 화선이 다가갈 길을 열어야 합니다.'
|
text: '배다리와 포구가 열렸으니 황개 장군의 거짓 항복선도 강 위로 나설 수 있습니다. 조조가 그 배를 의심하지 않게 하려면, 유비군은 강안의 감시선을 흔들어 화선이 다가갈 길을 열어야 합니다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twenty-second-zhuge-wind-watch',
|
id: 'twenty-second-zhuge-wind-watch',
|
||||||
@@ -1713,7 +1713,7 @@ export const twentySecondBattleIntroPages: StoryPage[] = [
|
|||||||
chapter: '동남풍을 기다리다',
|
chapter: '동남풍을 기다리다',
|
||||||
background: 'story-red-cliffs',
|
background: 'story-red-cliffs',
|
||||||
speaker: '제갈량',
|
speaker: '제갈량',
|
||||||
text: '바람은 아직 완전히 돌지 않았습니다. 그러나 때가 오면 불길은 강 위에서 산처럼 번질 것입니다. 그 전까지 조조의 척후와 갑판 궁병을 묶어 두어야 합니다.'
|
text: '바람은 아직 완전히 돌지 않았습니다. 그러나 신호 지점을 잡아 두면 때가 왔을 때 불길은 강 위에서 산처럼 번질 것입니다. 그 전까지 조조의 척후와 갑판 궁병을 묶어 두어야 합니다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twenty-second-liu-bei-fire-line',
|
id: 'twenty-second-liu-bei-fire-line',
|
||||||
@@ -1730,7 +1730,7 @@ export const twentySecondBattleIntroPages: StoryPage[] = [
|
|||||||
chapter: '적벽 화공전',
|
chapter: '적벽 화공전',
|
||||||
background: 'story-red-cliffs',
|
background: 'story-red-cliffs',
|
||||||
speaker: '제갈량',
|
speaker: '제갈량',
|
||||||
text: '조조의 함대가 사슬로 묶인 채 강북에 모였습니다. 화선의 길을 막는 초병을 베고, 조조 본선이 불길에 휩싸일 때까지 전선을 지키십시오.'
|
text: '조조의 함대가 사슬로 묶인 채 강북에 모였습니다. 화선 접안로와 동남풍 신호 지점을 열고, 연환선이 불길에 휩싸일 때까지 전선을 지키십시오.'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -1740,7 +1740,7 @@ export const twentySecondBattleVictoryPages: StoryPage[] = [
|
|||||||
bgm: 'battle-prep',
|
bgm: 'battle-prep',
|
||||||
chapter: '불길이 일다',
|
chapter: '불길이 일다',
|
||||||
background: 'story-red-cliffs',
|
background: 'story-red-cliffs',
|
||||||
text: '화선이 조조군 함대에 닿자 강 위가 붉게 일렁였습니다. 사슬로 묶인 배들은 서로를 구하지 못했고, 장강의 바람은 불길을 북쪽으로 몰아붙였습니다.'
|
text: '화선이 접안로를 지나 조조군 함대에 닿자 강 위가 붉게 일렁였습니다. 사슬로 묶인 배들은 서로를 구하지 못했고, 장강의 바람은 불길을 북쪽으로 몰아붙였습니다.'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'twenty-second-cao-cao-retreat',
|
id: 'twenty-second-cao-cao-retreat',
|
||||||
@@ -1757,7 +1757,7 @@ export const twentySecondBattleVictoryPages: StoryPage[] = [
|
|||||||
background: 'story-red-cliffs',
|
background: 'story-red-cliffs',
|
||||||
speaker: '유비',
|
speaker: '유비',
|
||||||
portrait: 'liuBei',
|
portrait: 'liuBei',
|
||||||
text: '조조의 대군은 물러났지만 우리의 근본은 아직 없습니다. 이제 백성이 머물 땅을 얻고, 형주와 익주로 향할 길을 차근히 세워야 합니다.'
|
text: '조조의 대군은 물러났지만 우리의 근본은 아직 없습니다. 적벽에서 얻은 명성과 동맹의 신뢰를 헛되이 하지 않으려면, 이제 형주 남부의 길과 민심을 차근히 열어야 합니다.'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -857,15 +857,30 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
|
|||||||
},
|
},
|
||||||
'twenty-second-battle-red-cliffs-fire': {
|
'twenty-second-battle-red-cliffs-fire': {
|
||||||
maxUnits: 6,
|
maxUnits: 6,
|
||||||
|
requiredUnitIds: ['liu-bei', 'zhuge-liang'],
|
||||||
recommended: [
|
recommended: [
|
||||||
{ unitId: 'liu-bei', reason: '적벽 결전의 명분과 패배 조건의 중심입니다.' },
|
{ unitId: 'liu-bei', role: 'reserve', reason: '적벽 결전의 명분이자 패배 조건의 중심입니다.' },
|
||||||
{ unitId: 'zhuge-liang', reason: '동남풍과 화공 시점을 판단하는 핵심 책략 담당입니다.' },
|
{ unitId: 'zhuge-liang', role: 'support', reason: '동남풍과 화공 시점을 판단하는 핵심 책략 담당입니다.' },
|
||||||
{ unitId: 'guan-yu', reason: '갑판 보병과 본선 친위를 정면에서 받아낼 전열입니다.' },
|
{ unitId: 'zhao-yun', role: 'flank', reason: '화선을 노리는 강안 기병과 감시병을 빠르게 끊습니다.' },
|
||||||
{ unitId: 'zhao-yun', reason: '화선을 노리는 강안 기병과 척후를 빠르게 끊습니다.' },
|
{ unitId: 'guan-yu', role: 'front', reason: '갑판 보병과 본선 친위를 정면에서 받아낼 전열입니다.' },
|
||||||
{ unitId: 'zhang-fei', reason: '배다리와 좁은 갑판 길을 밀어붙이는 돌파 역할입니다.' },
|
{ unitId: 'zhang-fei', role: 'front', reason: '배다리와 좁은 연환선 길을 밀어붙이는 돌파 역할입니다.' },
|
||||||
{ unitId: 'mi-zhu', reason: '화공전의 장기 피해를 버티기 위한 회복과 보급을 맡습니다.' }
|
{ unitId: 'mi-zhu', role: 'support', reason: '화공전의 장기 피해를 버티기 위한 회복과 보급을 맡습니다.' }
|
||||||
],
|
],
|
||||||
note: '적벽 화공전은 강 위의 결전입니다. 제갈량의 책략과 전열 유지, 화선 접안로 확보를 중심으로 여섯 명을 고르십시오.'
|
recommendedClasses: [
|
||||||
|
{ label: '동맹 지휘', classKeys: ['lord'], reason: '유비가 무너지지 않아야 손유 동맹의 결전 명분이 유지됩니다.' },
|
||||||
|
{ label: '동남풍 책략', classKeys: ['strategist'], reason: '제갈량의 생존과 판단이 화공 성공의 핵심입니다.' },
|
||||||
|
{ label: '갑판 전열', classKeys: ['infantry', 'spearman'], reason: '좁은 배다리와 갑판에서는 튼튼한 전열이 피해를 받아내야 합니다.' },
|
||||||
|
{ label: '강안 기동', classKeys: ['cavalry'], reason: '기동 장수가 감시병과 기병을 먼저 끊어 화선 접안로를 엽니다.' }
|
||||||
|
],
|
||||||
|
deploymentSlots: [
|
||||||
|
{ x: 4, y: 23, role: 'reserve', unitId: 'liu-bei', label: '동맹 지휘' },
|
||||||
|
{ x: 6, y: 21, role: 'front', unitId: 'guan-yu', label: '갑판 전열' },
|
||||||
|
{ x: 6, y: 25, role: 'front', unitId: 'zhang-fei', label: '연환선 돌파' },
|
||||||
|
{ x: 8, y: 20, role: 'flank', unitId: 'zhao-yun', label: '강안 차단' },
|
||||||
|
{ x: 6, y: 22, role: 'support', unitId: 'zhuge-liang', label: '동남풍 판단' },
|
||||||
|
{ x: 5, y: 27, role: 'support', unitId: 'mi-zhu', label: '화공 보급' }
|
||||||
|
],
|
||||||
|
note: '적벽 화공전은 강 위의 결전입니다. 유비와 제갈량을 반드시 포함하고, 조운으로 감시병과 기병을 끊은 뒤 관우와 장비가 화선 접안로와 연환선을 열어야 합니다.'
|
||||||
},
|
},
|
||||||
'twenty-third-battle-jingzhou-south-entry': {
|
'twenty-third-battle-jingzhou-south-entry': {
|
||||||
maxUnits: 6,
|
maxUnits: 6,
|
||||||
|
|||||||
Reference in New Issue
Block a user