Add Liu Biao refuge chapter and Zhao Yun recruit
This commit is contained in:
@@ -9,6 +9,8 @@ import {
|
||||
caoBreakRecruitUnits,
|
||||
firstBattleBonds,
|
||||
firstBattleUnits,
|
||||
liuBiaoRecruitBonds,
|
||||
liuBiaoRecruitUnits,
|
||||
xuzhouRecruitBonds,
|
||||
xuzhouRecruitUnits,
|
||||
type PortraitKey,
|
||||
@@ -194,7 +196,8 @@ const campBattleIds = {
|
||||
twelfth: 'twelfth-battle-xiapi-outer-siege',
|
||||
thirteenth: 'thirteenth-battle-xiapi-final',
|
||||
fourteenth: 'fourteenth-battle-cao-break',
|
||||
fifteenth: 'fifteenth-battle-yuan-refuge-road'
|
||||
fifteenth: 'fifteenth-battle-yuan-refuge-road',
|
||||
sixteenth: 'sixteenth-battle-liu-biao-refuge'
|
||||
} as const;
|
||||
|
||||
const requiredSortieUnitIds = new Set(['liu-bei']);
|
||||
@@ -349,6 +352,18 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
|
||||
{ unitId: 'sun-qian', reason: '문서와 외교 판단으로 접선지 확보 목표에 직접 힘을 보탭니다.' }
|
||||
],
|
||||
note: '원소 의탁로는 추격 기병과 고지 궁병이 함께 압박합니다. 전열을 두껍게 세우되 책사와 보급 장수도 빼지 않는 편이 안정적입니다.'
|
||||
},
|
||||
'sixteenth-battle-liu-biao-refuge': {
|
||||
maxUnits: 6,
|
||||
recommended: [
|
||||
{ unitId: 'liu-bei', reason: '형주 의탁 명분과 패배 조건의 중심입니다.' },
|
||||
{ unitId: 'zhao-yun', reason: '새로 합류한 백마 기병으로 강가 길목과 추격 기병을 빠르게 끊을 수 있습니다.' },
|
||||
{ unitId: 'guan-yu', reason: '관문 수비대를 정면에서 밀어낼 전열 핵심입니다.' },
|
||||
{ unitId: 'zhang-fei', reason: '중앙 길목의 추격 기병을 받아치고 돌파하는 역할입니다.' },
|
||||
{ unitId: 'sun-qian', reason: '형주 접선 문서와 의탁 명분을 정리해 관문 확보 목표에 힘을 보탭니다.' },
|
||||
{ unitId: 'mi-zhu', reason: '큰 맵의 장기전을 대비한 보급과 회복 운용에 유리합니다.' }
|
||||
],
|
||||
note: '유표 의탁로부터는 합류 무장이 출전 제한보다 많아집니다. 조운의 기동력을 시험할지, 책사와 보급을 두껍게 둘지 직접 고르십시오.'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1621,6 +1636,87 @@ const campDialogues: CampDialogue[] = [
|
||||
rewardExp: 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'liu-zhao-after-liu-biao-refuge',
|
||||
title: '다시 맡긴 창',
|
||||
availableAfterBattleIds: [campBattleIds.sixteenth],
|
||||
unitIds: ['liu-bei', 'zhao-yun'],
|
||||
bondId: 'liu-bei__zhao-yun',
|
||||
rewardExp: 24,
|
||||
lines: [
|
||||
'조운: 형주 관문까지 함께 달리며 확신했습니다. 주공의 깃발은 몸을 숨기는 깃발이 아니라, 다시 백성을 모으는 깃발입니다.',
|
||||
'유비: 자룡이 돌아온 것은 내게 큰 힘이오. 다만 우리는 아직 남의 땅에 의탁한 몸이니, 창끝만큼 마음도 곧아야 하오.',
|
||||
'조운: 그렇다면 제 창은 앞길을 열고, 제 마음은 주공의 뜻이 흐트러지지 않게 지키겠습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'trust-zhao-yun-vanguard',
|
||||
label: '선봉을 맡긴다',
|
||||
response: '유비는 조운에게 다음 행군의 선봉을 맡겼고, 조운은 조용히 말고삐를 잡으며 유비군의 앞길을 정찰했다.',
|
||||
rewardExp: 10
|
||||
},
|
||||
{
|
||||
id: 'ask-zhao-yun-people',
|
||||
label: '백성의 길을 살핀다',
|
||||
response: '조운은 형주 주변의 피난민 길목을 살펴 유비군이 머무는 동안 백성에게 폐가 되지 않을 길을 찾아냈다.',
|
||||
rewardExp: 11
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'guan-zhao-after-liu-biao-refuge',
|
||||
title: '두 충의의 눈',
|
||||
availableAfterBattleIds: [campBattleIds.sixteenth],
|
||||
unitIds: ['guan-yu', 'zhao-yun'],
|
||||
bondId: 'guan-yu__zhao-yun',
|
||||
rewardExp: 20,
|
||||
lines: [
|
||||
'관우: 자룡의 창끝은 빠르되 가볍지 않군. 적을 쫓을 때도 군의 중심을 잃지 않았소.',
|
||||
'조운: 운장께서 전열을 잡아 주셨기에 제가 옆길을 열 수 있었습니다. 충의는 앞뒤가 다르지 않다는 것을 배웠습니다.',
|
||||
'관우: 그렇다면 다음 전장에서도 서로의 빈틈을 맡깁시다. 주공의 길을 지키는 데는 칼과 창이 다르지 않소.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'train-sword-spear-timing',
|
||||
label: '칼과 창의 호흡을 맞춘다',
|
||||
response: '관우와 조운은 짧은 훈련으로 돌파와 엄호의 순서를 맞췄고, 병사들은 두 장수의 호흡을 보고 사기를 얻었다.',
|
||||
rewardExp: 9
|
||||
},
|
||||
{
|
||||
id: 'share-guard-watch',
|
||||
label: '야간 경계를 나눈다',
|
||||
response: '두 사람은 밤 경계를 나누어 섰고, 형주 군영의 낯선 시선 속에서도 유비군의 군율은 흔들리지 않았다.',
|
||||
rewardExp: 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'liu-sun-after-liu-biao-refuge',
|
||||
title: '객장의 예',
|
||||
availableAfterBattleIds: [campBattleIds.sixteenth],
|
||||
unitIds: ['liu-bei', 'sun-qian'],
|
||||
bondId: 'liu-bei__sun-qian',
|
||||
rewardExp: 18,
|
||||
lines: [
|
||||
'손건: 유표가 주공을 예로 맞이했지만, 형주 안의 사람들은 저마다 주공의 이름을 다르게 저울질할 것입니다.',
|
||||
'유비: 손님의 예를 받되 주인의 마음을 어지럽히지는 말아야 하오. 그러나 백성을 돌볼 뜻까지 숨길 수는 없소.',
|
||||
'손건: 그래서 말과 문서의 결을 나누겠습니다. 겉으로는 예를 지키고, 안으로는 뜻을 이어갈 사람을 찾겠습니다.'
|
||||
],
|
||||
choices: [
|
||||
{
|
||||
id: 'write-guest-etiquette',
|
||||
label: '객장의 예를 분명히 한다',
|
||||
response: '손건은 유비군의 군영 예절과 방문 절차를 정리해 형주 관리들의 경계심을 낮췄다.',
|
||||
rewardExp: 8
|
||||
},
|
||||
{
|
||||
id: 'listen-to-jingzhou-scholars',
|
||||
label: '형주 선비들의 말을 듣는다',
|
||||
response: '손건은 형주 선비들의 소문을 모아 융중의 와룡이라는 이름을 유비에게 조심스럽게 전했다.',
|
||||
rewardExp: 9
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
@@ -1703,10 +1799,18 @@ export class CampScene extends Phaser.Scene {
|
||||
return;
|
||||
}
|
||||
|
||||
if (battleId === campBattleIds.fifteenth || battleId === campBattleIds.sixteenth) {
|
||||
this.campaign = ensureCampaignRosterUnits(
|
||||
[...xuzhouRecruitUnits, ...caoBreakRecruitUnits, ...liuBiaoRecruitUnits],
|
||||
[...xuzhouRecruitBonds, ...caoBreakRecruitBonds, ...liuBiaoRecruitBonds]
|
||||
);
|
||||
this.report = this.campaign.firstBattleReport ?? this.report;
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
battleId === campBattleIds.thirteenth ||
|
||||
battleId === campBattleIds.fourteenth ||
|
||||
battleId === campBattleIds.fifteenth
|
||||
battleId === campBattleIds.fourteenth
|
||||
) {
|
||||
this.campaign = ensureCampaignRosterUnits(
|
||||
[...xuzhouRecruitUnits, ...caoBreakRecruitUnits],
|
||||
@@ -1743,6 +1847,9 @@ export class CampScene extends Phaser.Scene {
|
||||
|
||||
private currentCampTitle() {
|
||||
const battleId = this.currentCampBattleId();
|
||||
if (battleId === campBattleIds.sixteenth) {
|
||||
return '형주 의탁 후 군영';
|
||||
}
|
||||
if (battleId === campBattleIds.fifteenth) {
|
||||
return '원소 의탁 후 군영';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user