Add King of Hanzhong council milestone
This commit is contained in:
@@ -55,6 +55,7 @@ import {
|
||||
firstBattleVictoryPages,
|
||||
fourthBattleIntroPages,
|
||||
fourthBattleVictoryPages,
|
||||
hanzhongKingCouncilPages,
|
||||
ninthBattleIntroPages,
|
||||
ninthBattleVictoryPages,
|
||||
nineteenthBattleIntroPages,
|
||||
@@ -86,7 +87,6 @@ import {
|
||||
thirtySixthBattleIntroPages,
|
||||
thirtySixthBattleVictoryPages,
|
||||
thirtySeventhBattleIntroPages,
|
||||
thirtySeventhBattleVictoryPages,
|
||||
thirtiethBattleIntroPages,
|
||||
thirtiethBattleVictoryPages,
|
||||
twentyEighthBattleIntroPages,
|
||||
@@ -515,13 +515,14 @@ const sortieFlows: Record<string, SortieFlow> = {
|
||||
},
|
||||
[thirtySeventhBattleScenario.id]: {
|
||||
afterBattleId: thirtySeventhBattleScenario.id,
|
||||
eyebrow: '다음 장 준비',
|
||||
title: '촉한 건국 준비',
|
||||
eyebrow: '군영 의정',
|
||||
title: '한중왕 즉위 준비',
|
||||
description:
|
||||
'한중 결전에서 조조군을 물리치고 북문을 얻었습니다. 다음은 한중왕 즉위와 촉한의 이름을 세우는 정치적 전환을 군영 이벤트와 다음 전장으로 준비해야 합니다.',
|
||||
rewardHint: '다음 장: 한중왕 즉위와 촉한 건국 준비 중',
|
||||
pages: thirtySeventhBattleVictoryPages,
|
||||
unavailableNotice: '한중왕 즉위와 촉한 건국 선포는 다음 작업에서 이어집니다. 유비의 명분, 제갈량의 국정 구상, 관우가 지키는 형주의 긴장을 함께 준비하십시오.'
|
||||
'한중 결전에서 조조군을 물리치고 북문을 얻었습니다. 출진 준비를 통해 새 전투가 아니라 한중왕 즉위 논의를 진행하고, 촉한 건국의 명분을 군영 안에서 정리합니다.',
|
||||
rewardHint: '군영 목표: 한중왕 즉위 준비 / 촉한 건국 명분 정리',
|
||||
campaignStep: 'hanzhong-king-camp',
|
||||
pages: hanzhongKingCouncilPages,
|
||||
unavailableNotice: '한중왕 즉위 준비가 완료되었습니다. 다음 작업에서는 촉한 건국 선포와 형주 방면의 긴장을 이어 준비합니다.'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -2387,6 +2387,43 @@ export const thirtySeventhBattleVictoryPages: StoryPage[] = [
|
||||
}
|
||||
];
|
||||
|
||||
export const hanzhongKingCouncilPages: StoryPage[] = [
|
||||
{
|
||||
id: 'hanzhong-king-council-open',
|
||||
bgm: 'story-dark',
|
||||
chapter: '한중왕 즉위 논의',
|
||||
background: 'story-three-heroes',
|
||||
speaker: '제갈량',
|
||||
text: '한중을 얻은 뒤 군영의 분위기는 전장의 승리에서 나라의 이름으로 옮겨 갔습니다. 이제 유비군은 어디를 지키는 군대인지, 누구의 뜻을 잇는 세력인지 밝혀야 합니다.'
|
||||
},
|
||||
{
|
||||
id: 'hanzhong-king-liu-bei-doubt',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '이름의 무게',
|
||||
background: 'story-liu-bei',
|
||||
speaker: '유비',
|
||||
portrait: 'liuBei',
|
||||
text: '내가 왕의 이름을 받는 것이 백성을 위한 길이라면 마다하지 않겠소. 다만 그 이름이 욕심으로 보인다면 지금까지 따른 이들의 뜻을 해칠까 두렵소.'
|
||||
},
|
||||
{
|
||||
id: 'hanzhong-king-officers',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '장수들의 서명',
|
||||
background: 'story-militia',
|
||||
speaker: '관우',
|
||||
portrait: 'guanYu',
|
||||
text: '형님이 세우는 이름은 한실을 잇기 위한 깃발입니다. 전장마다 모인 장수들이 그 깃발 아래 서명한다면, 병사들도 무엇을 위해 싸우는지 알게 될 것입니다.'
|
||||
},
|
||||
{
|
||||
id: 'hanzhong-king-next-foundation',
|
||||
bgm: 'militia-theme',
|
||||
chapter: '촉한의 문 앞에서',
|
||||
background: 'story-sortie',
|
||||
speaker: '제갈량',
|
||||
text: '한중왕의 격문이 준비되면 다음은 촉한의 이름을 세울 차례입니다. 그러나 나라의 이름은 새 전장을 부릅니다. 형주의 긴장과 북방의 그림자도 함께 보아야 합니다.'
|
||||
}
|
||||
];
|
||||
|
||||
export const firstBattleMap: BattleMap = {
|
||||
width: 20,
|
||||
height: 18,
|
||||
|
||||
@@ -5854,6 +5854,9 @@ export class CampScene extends Phaser.Scene {
|
||||
|
||||
private currentCampTitle() {
|
||||
const battleId = this.currentCampBattleId();
|
||||
if (this.campaign?.step === 'hanzhong-king-camp') {
|
||||
return '한중왕 즉위 준비 군영';
|
||||
}
|
||||
if (battleId === campBattleIds.thirtySeventh) {
|
||||
return '한중 결전 후 군영';
|
||||
}
|
||||
@@ -6673,6 +6676,19 @@ export class CampScene extends Phaser.Scene {
|
||||
|
||||
if (!flow.nextBattleId || !flow.campaignStep || flow.pages.length === 0) {
|
||||
this.hideSortiePrep();
|
||||
if (!flow.nextBattleId && flow.campaignStep && flow.pages.length > 0) {
|
||||
if (this.campaign?.step === flow.campaignStep) {
|
||||
this.showCampNotice(flow.unavailableNotice ?? '다음 장은 아직 준비 중입니다. 군영에서 성장 상태를 정비하세요.');
|
||||
return;
|
||||
}
|
||||
markCampaignStep(flow.campaignStep);
|
||||
this.campaign = getCampaignState();
|
||||
this.scene.start('StoryScene', {
|
||||
pages: flow.pages,
|
||||
nextScene: 'CampScene'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (flow.pages.length > 0) {
|
||||
this.scene.start('StoryScene', {
|
||||
pages: flow.pages,
|
||||
@@ -6950,14 +6966,21 @@ export class CampScene extends Phaser.Scene {
|
||||
const activeChapterIndex = this.activeTimelineChapterIndex(completedIds);
|
||||
const activeChapter = campaignTimelineChapters[activeChapterIndex];
|
||||
const latestBattleId = this.campaign?.latestBattleId ?? this.report?.battleId;
|
||||
const nextBattleId = getSortieFlow(this.campaign?.latestBattleId).nextBattleId;
|
||||
const flow = getSortieFlow(this.campaign?.latestBattleId);
|
||||
const nextBattleId = flow.nextBattleId;
|
||||
return {
|
||||
completedKnown,
|
||||
totalKnown,
|
||||
activeChapterIndex,
|
||||
activeChapter,
|
||||
latestBattleTitle: latestBattleId ? getBattleScenario(latestBattleId).title : '없음',
|
||||
nextBattleTitle: nextBattleId ? getBattleScenario(nextBattleId).title : '준비 중'
|
||||
nextBattleTitle: this.campaign?.step === 'hanzhong-king-camp'
|
||||
? '촉한 건국 준비'
|
||||
: nextBattleId
|
||||
? getBattleScenario(nextBattleId).title
|
||||
: flow.campaignStep
|
||||
? flow.title
|
||||
: '준비 중'
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -373,7 +373,8 @@ export class TitleScene extends Phaser.Scene {
|
||||
campaign.step === 'thirty-fourth-camp' ||
|
||||
campaign.step === 'thirty-fifth-camp' ||
|
||||
campaign.step === 'thirty-sixth-camp' ||
|
||||
campaign.step === 'thirty-seventh-camp'
|
||||
campaign.step === 'thirty-seventh-camp' ||
|
||||
campaign.step === 'hanzhong-king-camp'
|
||||
) {
|
||||
this.scene.start('CampScene');
|
||||
return;
|
||||
|
||||
@@ -115,7 +115,8 @@ export type CampaignStep =
|
||||
| 'thirty-sixth-battle'
|
||||
| 'thirty-sixth-camp'
|
||||
| 'thirty-seventh-battle'
|
||||
| 'thirty-seventh-camp';
|
||||
| 'thirty-seventh-camp'
|
||||
| 'hanzhong-king-camp';
|
||||
|
||||
export type CampaignUnitProgressSnapshot = {
|
||||
unitId: string;
|
||||
|
||||
Reference in New Issue
Block a user