feat: add playable first-battle militia camp
This commit is contained in:
@@ -5,7 +5,7 @@ export const prologueVillageId = 'zhuo-prologue';
|
||||
export const prologueVillageRequiredObjectiveIds = [
|
||||
'meet-zhang-fei',
|
||||
'meet-guan-yu',
|
||||
'check-supplies'
|
||||
'register-volunteers'
|
||||
] as const;
|
||||
|
||||
export type PrologueVillageRequiredObjectiveId =
|
||||
@@ -16,30 +16,34 @@ export const prologueVillageObjectiveDefinitions: ReadonlyArray<{
|
||||
label: string;
|
||||
shortLabel: string;
|
||||
location: string;
|
||||
prerequisiteId?: PrologueVillageRequiredObjectiveId;
|
||||
}> = [
|
||||
{
|
||||
id: 'meet-zhang-fei',
|
||||
label: '장터 주점에서 장비와 이야기하기',
|
||||
shortLabel: '장비와 대화',
|
||||
location: '서쪽 주점'
|
||||
label: '모병 격문 앞에서 장비와 뜻을 나누기',
|
||||
shortLabel: '격문 앞의 장비',
|
||||
location: '서쪽 모병 격문'
|
||||
},
|
||||
{
|
||||
id: 'meet-guan-yu',
|
||||
label: '동쪽 장터에서 관우의 정찰 듣기',
|
||||
shortLabel: '관우와 대화',
|
||||
location: '동쪽 장터'
|
||||
label: '주점에 들어온 관우의 뜻을 듣기',
|
||||
shortLabel: '주점의 관우',
|
||||
location: '동쪽 주점 앞',
|
||||
prerequisiteId: 'meet-zhang-fei'
|
||||
},
|
||||
{
|
||||
id: 'check-supplies',
|
||||
label: '의병소에서 무기와 보급 확인하기',
|
||||
shortLabel: '출전 준비',
|
||||
location: '남동쪽 의병소'
|
||||
id: 'register-volunteers',
|
||||
label: '모병 관리에게 세 사람의 뜻을 밝히기',
|
||||
shortLabel: '의병 등록',
|
||||
location: '남동쪽 모병소',
|
||||
prerequisiteId: 'meet-guan-yu'
|
||||
},
|
||||
{
|
||||
id: 'make-oath',
|
||||
label: '복숭아 동산에서 두 사람과 결의하기',
|
||||
shortLabel: '도원결의',
|
||||
location: '북쪽 복숭아 동산'
|
||||
location: '북쪽 복숭아 동산',
|
||||
prerequisiteId: 'register-volunteers'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -59,6 +63,7 @@ export type PrologueVillageNpcDefinition = {
|
||||
direction: 'south' | 'east' | 'north' | 'west';
|
||||
objectiveId?: PrologueVillageRequiredObjectiveId;
|
||||
dialogue: PrologueVillageDialogueLine[];
|
||||
lockedDialogue?: PrologueVillageDialogueLine[];
|
||||
repeatDialogue?: PrologueVillageDialogueLine[];
|
||||
};
|
||||
|
||||
@@ -66,41 +71,50 @@ export const prologueVillageNpcDefinitions: readonly PrologueVillageNpcDefinitio
|
||||
{
|
||||
id: 'zhang-fei',
|
||||
name: '장비',
|
||||
role: '뜻을 함께할 호걸',
|
||||
role: '격문 앞에서 만난 호걸',
|
||||
textureKey: 'unit-zhang-fei',
|
||||
x: 360,
|
||||
y: 495,
|
||||
direction: 'east',
|
||||
objectiveId: 'meet-zhang-fei',
|
||||
dialogue: [
|
||||
{
|
||||
speaker: '전황',
|
||||
text: '유비가 모병 격문을 읽고 길게 탄식하자, 등 뒤에서 우렁찬 목소리가 날아왔다.'
|
||||
},
|
||||
{
|
||||
speaker: '장비',
|
||||
textureKey: 'unit-zhang-fei',
|
||||
text: '나라가 어지러운데 뜻 있는 사내가 어찌 팔짱만 끼고 있겠소! 내 재산을 내어 의병을 모으겠소.'
|
||||
text: '대장부가 나라를 위해 힘을 내지 않고 어찌 한숨만 쉰단 말이오? 뜻이 있다면 행동으로 보입시다!'
|
||||
},
|
||||
{
|
||||
speaker: '유비',
|
||||
textureKey: 'unit-liu-bei',
|
||||
text: '백성을 지키려는 마음이 같다면 힘을 합칩시다. 먼저 싸울 사람과 물자를 갖추어야 하오.'
|
||||
text: '나는 중산정왕의 후손 유비요. 황건을 물리쳐 백성을 편안하게 하고 싶으나, 홀로는 힘이 모자라 탄식했소.'
|
||||
},
|
||||
{
|
||||
speaker: '장비',
|
||||
textureKey: 'unit-zhang-fei',
|
||||
text: '좋소! 내가 장터 사람들을 모아 두겠소. 의병소의 준비를 확인한 뒤 복숭아 동산에서 다시 만납시다.'
|
||||
text: '나는 장비라 하오. 이 고을에서 술과 고기를 팔며 장원을 돌보고 있소. 뜻있는 이를 돕고자 모은 재산이 있으니 함께 의병을 일으킵시다.'
|
||||
},
|
||||
{
|
||||
speaker: '유비',
|
||||
textureKey: 'unit-liu-bei',
|
||||
text: '백성을 지키려는 마음이 같으니 더없이 든든하오. 주점에서 사람을 모을 방도를 자세히 의논합시다.'
|
||||
}
|
||||
],
|
||||
repeatDialogue: [
|
||||
{
|
||||
speaker: '장비',
|
||||
textureKey: 'unit-zhang-fei',
|
||||
text: '사람들에게 뜻을 전하고 있소. 관우와 의병소도 둘러본 뒤 동산으로 오시오!'
|
||||
text: '주점에 군문으로 향한다는 붉은 얼굴의 나그네가 들었소. 범상치 않은 사람이니 함께 만나 봅시다!'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'guan-yu',
|
||||
name: '관우',
|
||||
role: '길목을 살피는 무인',
|
||||
role: '군문으로 향하던 나그네',
|
||||
textureKey: 'unit-guan-yu',
|
||||
x: 1110,
|
||||
y: 460,
|
||||
@@ -108,67 +122,89 @@ export const prologueVillageNpcDefinitions: readonly PrologueVillageNpcDefinitio
|
||||
objectiveId: 'meet-guan-yu',
|
||||
dialogue: [
|
||||
{
|
||||
speaker: '관우',
|
||||
textureKey: 'unit-guan-yu',
|
||||
text: '북쪽 길을 살펴보니 황건 잔당이 마을 어귀로 내려오고 있습니다. 더 늦으면 백성이 위험합니다.'
|
||||
speaker: '전황',
|
||||
text: '손수레를 세운 붉은 얼굴의 나그네가 주점에 들어와, 군문에 자원하러 가는 길이라며 술을 청했다.'
|
||||
},
|
||||
{
|
||||
speaker: '유비',
|
||||
textureKey: 'unit-liu-bei',
|
||||
text: '우리가 먼저 길목을 막아야겠군요. 함께 백성을 구하는 길을 열어 주시겠소?'
|
||||
text: '기상이 범상치 않으십니다. 존함과 이곳 군문을 찾은 까닭을 여쭈어도 되겠소?'
|
||||
},
|
||||
{
|
||||
speaker: '관우',
|
||||
textureKey: 'unit-guan-yu',
|
||||
text: '뜻이 올바르다면 천 리라도 함께하겠습니다. 준비를 마치고 복숭아 동산에서 맹세하지요.'
|
||||
text: '나는 하동 해량 출신 관우라 합니다. 고을의 힘 있는 자가 약한 이를 짓밟는 것을 참지 못해 그를 베고 여러 해 떠돌았습니다.'
|
||||
},
|
||||
{
|
||||
speaker: '장비',
|
||||
textureKey: 'unit-zhang-fei',
|
||||
text: '마침 우리는 황건을 막을 의병을 일으키려던 참이오. 힘보다 의를 먼저 보는 사람이라면 더 들을 것도 없겠소!'
|
||||
},
|
||||
{
|
||||
speaker: '관우',
|
||||
textureKey: 'unit-guan-yu',
|
||||
text: '두 분의 뜻이 백성을 향한다면 이 관우도 함께하겠습니다. 같은 뜻이 쉽게 흩어지지 않도록 맹세로 굳히지요.'
|
||||
}
|
||||
],
|
||||
lockedDialogue: [
|
||||
{
|
||||
speaker: '전황',
|
||||
text: '붉은 얼굴의 나그네가 주점 앞에 손수레를 세우고 군문 쪽을 살핀다. 먼저 모병 격문 앞의 호걸과 이야기해 보자.'
|
||||
}
|
||||
],
|
||||
repeatDialogue: [
|
||||
{
|
||||
speaker: '관우',
|
||||
textureKey: 'unit-guan-yu',
|
||||
text: '적은 보병을 앞세우고 뒤에서 활을 쏠 것입니다. 준비가 끝나는 대로 북문으로 나가야 합니다.'
|
||||
text: '장비 공의 장원 뒤에 복숭아꽃이 한창이라 들었습니다. 모병소에 뜻을 밝힌 뒤 그곳에서 다시 뵙지요.'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'quartermaster',
|
||||
name: '의병소 관리인',
|
||||
role: '무기와 보급 담당',
|
||||
id: 'recruiting-clerk',
|
||||
name: '탁현 모병 관리',
|
||||
role: '의병 명부 담당',
|
||||
textureKey: 'unit-shu-officer',
|
||||
x: 1045,
|
||||
y: 760,
|
||||
direction: 'east',
|
||||
objectiveId: 'check-supplies',
|
||||
objectiveId: 'register-volunteers',
|
||||
dialogue: [
|
||||
{
|
||||
speaker: '의병소 관리인',
|
||||
speaker: '탁현 모병 관리',
|
||||
textureKey: 'unit-shu-officer',
|
||||
text: '장비 공이 맡긴 돈으로 창과 연습검을 손질했습니다. 콩과 상처약도 각 조에 나누어 두었습니다.'
|
||||
text: '성명과 출신, 의병을 일으키는 뜻을 명부에 남겨 주십시오. 인가가 나면 모인 군마와 병기를 막사에서 정식으로 나누겠습니다.'
|
||||
},
|
||||
{
|
||||
speaker: '유비',
|
||||
textureKey: 'unit-liu-bei',
|
||||
text: '좋습니다. 무기보다 먼저 사람을 살피고, 다친 이는 곧바로 뒤로 물리도록 전해 주시오.'
|
||||
text: '탁현의 유비, 하동의 관우, 이 고을의 장비요. 위로는 나라의 어려움에 보답하고 아래로는 백성을 편안하게 하고자 모였소.'
|
||||
},
|
||||
{
|
||||
speaker: '의병소 관리인',
|
||||
speaker: '탁현 모병 관리',
|
||||
textureKey: 'unit-shu-officer',
|
||||
text: '출전 준비를 마쳤습니다. 이제 동료들과 결의하면 북문을 열겠습니다.'
|
||||
text: '세 분의 뜻을 군후 추정께 보고하겠습니다. 결의를 마친 뒤 장비 공의 장원 밖 의용군 막사로 와 주십시오.'
|
||||
}
|
||||
],
|
||||
lockedDialogue: [
|
||||
{
|
||||
speaker: '탁현 모병 관리',
|
||||
textureKey: 'unit-shu-officer',
|
||||
text: '함께 이름을 올릴 동료가 모두 정해지면 다시 오십시오.'
|
||||
}
|
||||
],
|
||||
repeatDialogue: [
|
||||
{
|
||||
speaker: '의병소 관리인',
|
||||
speaker: '탁현 모병 관리',
|
||||
textureKey: 'unit-shu-officer',
|
||||
text: '무기와 보급은 모두 나누었습니다. 북문을 나서기 전에 동산에서 동료들과 합류하십시오.'
|
||||
text: '명부는 접수되었습니다. 복숭아 동산에서 뜻을 굳힌 뒤 의용군 막사로 가시면 군후 추정이 기다릴 것입니다.'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'market-villager',
|
||||
name: '탁현 주민',
|
||||
role: '장터 소식',
|
||||
role: '장터의 목소리',
|
||||
textureKey: 'unit-shu-infantry',
|
||||
x: 745,
|
||||
y: 620,
|
||||
@@ -177,17 +213,16 @@ export const prologueVillageNpcDefinitions: readonly PrologueVillageNpcDefinitio
|
||||
{
|
||||
speaker: '탁현 주민',
|
||||
textureKey: 'unit-shu-infantry',
|
||||
text: '서쪽 주점의 장비 공과 동쪽 장터의 긴 수염 무인이 의병 이야기를 나누고 있었습니다.'
|
||||
text: '황건 무리가 길을 막은 뒤로 장터에 곡식이 끊겼습니다. 싸움이 두렵지만, 우리를 먼저 생각해 주는 의병이라면 힘을 보태겠습니다.'
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
const openingPageIds = new Set(['yellow-turban-chaos', 'liu-bei-resolve']);
|
||||
const brotherhoodPageIds = new Set(['militia-rises']);
|
||||
const departurePageIds = new Set([
|
||||
'first-sortie',
|
||||
'yellow-turban-nearby',
|
||||
'first-battle-plan-talk',
|
||||
'battle-briefing'
|
||||
]);
|
||||
|
||||
@@ -195,6 +230,10 @@ export function prologueOpeningPages(): StoryPage[] {
|
||||
return selectProloguePages(openingPageIds);
|
||||
}
|
||||
|
||||
export function prologueBrotherhoodPages(): StoryPage[] {
|
||||
return selectProloguePages(brotherhoodPageIds);
|
||||
}
|
||||
|
||||
export function prologueDeparturePages(): StoryPage[] {
|
||||
return selectProloguePages(departurePageIds);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user