Add final Meng Huo capture battle
This commit is contained in:
@@ -30,6 +30,7 @@ import {
|
||||
mengHuoFourthCaptureBonds,
|
||||
mengHuoFifthCaptureBonds,
|
||||
mengHuoSixthCaptureBonds,
|
||||
mengHuoFinalCaptureBonds,
|
||||
mengHuoThirdCaptureBonds,
|
||||
fanCastleBonds,
|
||||
fanCastleSiegeBonds,
|
||||
@@ -419,7 +420,8 @@ const campaignTimelineChapters: CampaignTimelineChapter[] = [
|
||||
'fiftieth-battle-meng-huo-third-capture',
|
||||
'fifty-first-battle-meng-huo-fourth-capture',
|
||||
'fifty-second-battle-meng-huo-fifth-capture',
|
||||
'fifty-third-battle-meng-huo-sixth-capture'
|
||||
'fifty-third-battle-meng-huo-sixth-capture',
|
||||
'fifty-fourth-battle-meng-huo-final-capture'
|
||||
],
|
||||
nextHints: ['왕업 선언', '번성 포위', '형주 위기', '이릉 화공', '남중 안정', '맹획 회유', '칠종칠금']
|
||||
}
|
||||
@@ -478,7 +480,8 @@ const campBattleIds = {
|
||||
fiftieth: 'fiftieth-battle-meng-huo-third-capture',
|
||||
fiftyFirst: 'fifty-first-battle-meng-huo-fourth-capture',
|
||||
fiftySecond: 'fifty-second-battle-meng-huo-fifth-capture',
|
||||
fiftyThird: 'fifty-third-battle-meng-huo-sixth-capture'
|
||||
fiftyThird: 'fifty-third-battle-meng-huo-sixth-capture',
|
||||
fiftyFourth: 'fifty-fourth-battle-meng-huo-final-capture'
|
||||
} as const;
|
||||
|
||||
const defaultRequiredSortieUnitIds = ['liu-bei'];
|
||||
@@ -1123,6 +1126,20 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
|
||||
{ unitId: 'ma-dai', reason: '마대는 남중 기동대의 움직임을 따라잡고 계곡 측면을 막습니다.' }
|
||||
],
|
||||
note: '칠종칠금 6차전은 맹획의 남은 자존심을 마주하는 전투입니다. 공격력만 높이기보다 마을 신뢰, 신뢰 장부, 계곡 퇴로, 잔당 차단 역할을 균형 있게 고르십시오.'
|
||||
},
|
||||
'fifty-fourth-battle-meng-huo-final-capture': {
|
||||
maxUnits: 7,
|
||||
requiredUnitIds: ['zhuge-liang'],
|
||||
recommended: [
|
||||
{ unitId: 'zhuge-liang', reason: '제갈량은 필수 출전입니다. 일곱 번째 생포를 항복과 남중 평정으로 완성해야 합니다.' },
|
||||
{ unitId: 'huang-quan', reason: '황권은 일곱 번의 약속을 장부로 남겨 항복 조건을 분명히 합니다.' },
|
||||
{ unitId: 'ma-liang', reason: '마량은 촌장들이 보는 회의장에서 남중이 받아들일 말을 고릅니다.' },
|
||||
{ unitId: 'wang-ping', reason: '왕평은 회의장 길과 마을길을 나누어 군율이 흔들리지 않게 합니다.' },
|
||||
{ unitId: 'zhao-yun', reason: '조운은 빠른 기동으로 항복로를 해치려는 잔당을 끊습니다.' },
|
||||
{ unitId: 'ma-dai', reason: '마대는 남중 기동대를 따라잡되 항복로를 밟지 않는 절제가 필요합니다.' },
|
||||
{ unitId: 'huang-zhong', reason: '황충은 고지 궁병과 주술사를 멀리서 억제해 회의장 압박을 줄입니다.' }
|
||||
],
|
||||
note: '칠종칠금 7차전은 남중 평정의 결말입니다. 맹획을 마지막으로 생포하되, 촌장 증언 마을, 항복 회의장 길, 최후 잔당 요새를 함께 관리할 편성을 고르십시오.'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -5584,6 +5601,87 @@ const campDialogues: CampDialogue[] = [
|
||||
rewardExp: 21
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'final-capture-zhuge-huangquan-oath',
|
||||
title: '일곱 번의 약속',
|
||||
availableAfterBattleIds: [campBattleIds.fiftyFourth],
|
||||
unitIds: ['zhuge-liang', 'huang-quan'],
|
||||
bondId: 'zhuge-liang__huang-quan_final-capture',
|
||||
rewardExp: 78,
|
||||
lines: [
|
||||
'황권: 맹획의 항복은 말로 끝나지 않습니다. 어떤 약속을 남기느냐가 남중의 다음 질서를 정할 것입니다.',
|
||||
'제갈량: 그렇습니다. 우리가 이긴 기록보다 우리가 지킨 약속이 더 오래 남아야 합니다.',
|
||||
'황권: 남중 평정 장부에는 벌할 이름보다 지켜야 할 약속을 먼저 적겠습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'seal-nanzhong-oath',
|
||||
label: '남중 서약을 봉한다',
|
||||
response: '제갈량은 항복 서약의 문장을 낮추었고, 황권은 촌장들이 확인할 수 있도록 약속 조항을 따로 봉했습니다.',
|
||||
rewardExp: 26
|
||||
},
|
||||
{
|
||||
id: 'write-pacification-ledger',
|
||||
label: '평정 장부를 쓴다',
|
||||
response: '황권은 각 마을에 남길 약속을 정리했고, 제갈량은 군사들이 남중 백성을 징발하지 못하게 군령을 덧붙였습니다.',
|
||||
rewardExp: 25
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'final-capture-maliang-wangping-council',
|
||||
title: '마을과 회의장',
|
||||
availableAfterBattleIds: [campBattleIds.fiftyFourth],
|
||||
unitIds: ['ma-liang', 'wang-ping'],
|
||||
bondId: 'ma-liang__wang-ping_final-capture',
|
||||
rewardExp: 72,
|
||||
lines: [
|
||||
'마량: 회의장에서 맹획이 고개를 숙였어도, 마을길이 어지러우면 항복은 오래가지 않습니다.',
|
||||
'왕평: 그래서 군대가 떠난 뒤에도 남을 표식이 필요합니다. 길과 말이 함께 남아야 합니다.',
|
||||
'마량: 촌장들이 스스로 설명할 수 있는 표식을 남기겠습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'leave-council-markers',
|
||||
label: '회의장 표식을 남긴다',
|
||||
response: '왕평은 회의장과 마을을 잇는 낮은 길에 표식을 남겼고, 마량은 그 뜻을 촌장들의 말로 바꾸었습니다.',
|
||||
rewardExp: 24
|
||||
},
|
||||
{
|
||||
id: 'prepare-village-notices',
|
||||
label: '마을 고시문을 나눈다',
|
||||
response: '마량은 마을마다 다른 고시문을 적었고, 왕평은 병사들이 어느 길을 지나지 말아야 하는지 표시했습니다.',
|
||||
rewardExp: 23
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'final-capture-zhaoyun-madai-pursuit',
|
||||
title: '멈추는 추격',
|
||||
availableAfterBattleIds: [campBattleIds.fiftyFourth],
|
||||
unitIds: ['zhao-yun', 'ma-dai'],
|
||||
bondId: 'zhao-yun__ma-dai_final-capture',
|
||||
rewardExp: 68,
|
||||
lines: [
|
||||
'마대: 마지막 전투에서 가장 어려운 일은 달리는 것이 아니라 멈추는 것이었습니다.',
|
||||
'조운: 항복로를 밟으면 승리도 원한이 됩니다. 빠른 기병일수록 군율을 먼저 알아야 합니다.',
|
||||
'마대: 남중을 떠날 때도 그 선은 남겨 두겠습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'mark-surrender-road',
|
||||
label: '항복로를 표시한다',
|
||||
response: '조운은 항복로를 지키는 흰 깃발을 세웠고, 마대는 기병이 그 선을 넘지 않도록 회수 신호를 다시 맞췄습니다.',
|
||||
rewardExp: 23
|
||||
},
|
||||
{
|
||||
id: 'train-returning-patrol',
|
||||
label: '귀환 순찰을 훈련한다',
|
||||
response: '마대는 남중 기병의 발걸음을 익혔고, 조운은 촉한군이 떠난 뒤에도 순찰선이 마을을 누르지 않게 정했습니다.',
|
||||
rewardExp: 22
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@@ -7949,6 +8047,65 @@ const campVisits: CampVisitDefinition[] = [
|
||||
itemRewards: ['상처약 14']
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'final-capture-pacification-ledger',
|
||||
title: '남중 평정 장부',
|
||||
location: '남중 회의장',
|
||||
availableAfterBattleIds: [campBattleIds.fiftyFourth],
|
||||
bondId: 'zhuge-liang__huang-quan_final-capture',
|
||||
description: '제갈량과 황권이 맹획의 항복 뒤 남중 각 마을에 남길 약속과 촉한군의 금지 군령을 정리합니다.',
|
||||
lines: [
|
||||
'황권: 이제 이 장부는 포로의 이름이 아니라 지켜야 할 약속의 목록이 되었습니다.',
|
||||
'제갈량: 남중을 얻었다고 해서 남중을 마음대로 써도 된다는 뜻은 아닙니다.',
|
||||
'회의장 중앙에는 남중 평정 장부와 촉한군 금지 군령이 함께 놓였습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'seal-pacification-ledger',
|
||||
label: '평정 장부를 봉한다',
|
||||
response: '황권은 평정 장부를 봉했고, 제갈량은 남중 마을 징발 금지 군령을 함께 낭독하게 했습니다.',
|
||||
bondExp: 58,
|
||||
itemRewards: ['남중 평정 장부 1']
|
||||
},
|
||||
{
|
||||
id: 'send-council-copies',
|
||||
label: '회의장 사본을 보낸다',
|
||||
response: '제갈량은 촌장들이 직접 확인할 사본을 나누었고, 황권은 각 사본에 약속의 기준을 적었습니다.',
|
||||
bondExp: 56,
|
||||
gold: 1960,
|
||||
itemRewards: ['상처약 16']
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'final-capture-menghuo-oath',
|
||||
title: '맹획 항복 서약',
|
||||
location: '남중 대천막',
|
||||
availableAfterBattleIds: [campBattleIds.fiftyFourth],
|
||||
bondId: 'ma-liang__wang-ping_final-capture',
|
||||
description: '마량과 왕평이 맹획의 항복 서약을 촌장들이 이해할 말과 길표식으로 풀어 남깁니다.',
|
||||
lines: [
|
||||
'마량: 맹획의 항복문이 너무 높은 말로만 쓰이면, 마을 사람들은 다시 남의 약속처럼 여길 것입니다.',
|
||||
'왕평: 길표식도 함께 남기겠습니다. 어느 길로 군대가 떠나고, 어느 길로 장터가 다시 열리는지 보여야 합니다.',
|
||||
'대천막 밖에는 촉한군이 떠날 길과 남중 사람들이 오갈 길이 서로 다른 표식으로 나뉘었습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'record-menghuo-oath',
|
||||
label: '맹획 서약을 적는다',
|
||||
response: '마량은 맹획의 항복 서약을 짧게 다시 적었고, 왕평은 마을 사람들이 볼 길목에 같은 표식을 세웠습니다.',
|
||||
bondExp: 56,
|
||||
itemRewards: ['맹획 항복 서약 1']
|
||||
},
|
||||
{
|
||||
id: 'open-market-road',
|
||||
label: '장터길을 다시 연다',
|
||||
response: '왕평은 장터로 이어지는 낮은 길을 열었고, 마량은 촌장들이 직접 장터 재개를 알리게 했습니다.',
|
||||
bondExp: 54,
|
||||
itemRewards: ['콩 16', '탁주 4']
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@@ -8050,7 +8207,8 @@ export class CampScene extends Phaser.Scene {
|
||||
battleId === campBattleIds.fiftieth ||
|
||||
battleId === campBattleIds.fiftyFirst ||
|
||||
battleId === campBattleIds.fiftySecond ||
|
||||
battleId === campBattleIds.fiftyThird
|
||||
battleId === campBattleIds.fiftyThird ||
|
||||
battleId === campBattleIds.fiftyFourth
|
||||
) {
|
||||
this.campaign = ensureCampaignRosterUnits(
|
||||
[
|
||||
@@ -8106,7 +8264,8 @@ export class CampScene extends Phaser.Scene {
|
||||
...mengHuoThirdCaptureBonds,
|
||||
...mengHuoFourthCaptureBonds,
|
||||
...mengHuoFifthCaptureBonds,
|
||||
...mengHuoSixthCaptureBonds
|
||||
...mengHuoSixthCaptureBonds,
|
||||
...mengHuoFinalCaptureBonds
|
||||
]
|
||||
);
|
||||
this.report = this.campaign.firstBattleReport ?? this.report;
|
||||
@@ -8744,6 +8903,9 @@ export class CampScene extends Phaser.Scene {
|
||||
if (this.campaign?.step === 'baidi-entrustment-camp') {
|
||||
return '백제성 유탁 후 군영';
|
||||
}
|
||||
if (battleId === campBattleIds.fiftyFourth) {
|
||||
return '남중 평정 후 군영';
|
||||
}
|
||||
if (battleId === campBattleIds.fiftyThird) {
|
||||
return '칠종칠금 6차전 후 군영';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user