Add Shu-Han foundation milestone

This commit is contained in:
2026-06-23 14:34:35 +09:00
parent 43347fb33b
commit 63ac73f08b
7 changed files with 148 additions and 16 deletions

View File

@@ -5854,6 +5854,9 @@ export class CampScene extends Phaser.Scene {
private currentCampTitle() {
const battleId = this.currentCampBattleId();
if (this.campaign?.step === 'shu-han-foundation-camp') {
return '촉한 건국 후 군영';
}
if (this.campaign?.step === 'hanzhong-king-camp') {
return '한중왕 즉위 준비 군영';
}
@@ -6380,7 +6383,7 @@ export class CampScene extends Phaser.Scene {
}
private nextSortieScenario() {
const nextBattleId = getSortieFlow(this.campaign?.latestBattleId).nextBattleId;
const nextBattleId = this.currentSortieFlow().nextBattleId;
return nextBattleId ? getBattleScenario(nextBattleId) : undefined;
}
@@ -6581,7 +6584,7 @@ export class CampScene extends Phaser.Scene {
const selectedSummary = selectedUnits.length > 0 ? `${selectedUnits.length}명 (${selectedPreview}${selectedUnits.length > 3 ? ' 외' : ''})` : '없음';
const inventorySummary =
inventoryLabels.length > 0 ? `${inventoryLabels.slice(0, 4).join(', ')}${inventoryLabels.length > 4 ? ' 외' : ''}` : '없음';
const reward = getSortieFlow(this.campaign?.latestBattleId).rewardHint;
const reward = this.currentSortieFlow().rewardHint;
this.trackSortie(this.add.text(x + 16, y + 10, reward, this.textStyle(13, '#f2e3bf', true))).setDepth(depth + 1);
this.trackSortie(
this.add.text(
@@ -6594,7 +6597,7 @@ export class CampScene extends Phaser.Scene {
}
private nextSortieBriefing() {
const flow = getSortieFlow(this.campaign?.latestBattleId);
const flow = this.currentSortieFlow();
return {
eyebrow: flow.eyebrow,
title: flow.title,
@@ -6602,6 +6605,10 @@ export class CampScene extends Phaser.Scene {
};
}
private currentSortieFlow() {
return getSortieFlow(this.campaign?.latestBattleId, this.campaign?.step);
}
private sortieChecklist(): SortieChecklistItem[] {
const units = this.currentUnits().filter((unit) => unit.faction === 'ally');
const liuBei = units.find((unit) => unit.id === 'liu-bei');
@@ -6668,7 +6675,7 @@ export class CampScene extends Phaser.Scene {
}
private startVictoryStory() {
const flow = getSortieFlow(this.campaign?.latestBattleId);
const flow = this.currentSortieFlow();
if (!this.ensureSortieSelectionSaved()) {
this.showCampNotice('출전할 무장을 선택하세요. 유비는 반드시 출전해야 합니다.');
return;
@@ -6966,7 +6973,7 @@ export class CampScene extends Phaser.Scene {
const activeChapterIndex = this.activeTimelineChapterIndex(completedIds);
const activeChapter = campaignTimelineChapters[activeChapterIndex];
const latestBattleId = this.campaign?.latestBattleId ?? this.report?.battleId;
const flow = getSortieFlow(this.campaign?.latestBattleId);
const flow = this.currentSortieFlow();
const nextBattleId = flow.nextBattleId;
return {
completedKnown,
@@ -6974,8 +6981,8 @@ export class CampScene extends Phaser.Scene {
activeChapterIndex,
activeChapter,
latestBattleTitle: latestBattleId ? getBattleScenario(latestBattleId).title : '없음',
nextBattleTitle: this.campaign?.step === 'hanzhong-king-camp'
? '촉한 건국 준비'
nextBattleTitle: this.campaign?.step === 'shu-han-foundation-camp'
? '형주 방위 긴장'
: nextBattleId
? getBattleScenario(nextBattleId).title
: flow.campaignStep
@@ -6986,7 +6993,7 @@ export class CampScene extends Phaser.Scene {
private activeTimelineChapterIndex(completedIds = this.completedBattleIds()) {
const latestBattleId = this.campaign?.latestBattleId ?? this.report?.battleId;
const nextBattleId = getSortieFlow(this.campaign?.latestBattleId).nextBattleId;
const nextBattleId = this.currentSortieFlow().nextBattleId;
if (!nextBattleId && latestBattleId) {
const latestChapterIndex = campaignTimelineChapters.findIndex((chapter) =>
chapter.battleIds.includes(latestBattleId as BattleScenarioId)