import type { GameState } from '@rpg/engine';
/**
* Квест «Три цветка» (docs/world.md, акт 1): Ирвин просит собрать
* лунные колокольчики у Серых прудов и посадить их на лугу.
* Прогресс — во флагах/варах GameState, чтобы переживал сейвы.
*/
export const QUEST_FLOWERS = 3;
/** Одна строка журнала квестов. */
export interface QuestEntry {
done: boolean;
text: string;
}
/** Журнал квестов по флагам GameState. */
export function questLog(state: GameState): QuestEntry[] {
const entries: QuestEntry[] = [];
if (state.hasFlag('quest_bells_taken')) {
const n = Math.min(state.getNumber('flowers'), QUEST_FLOWERS);
entries.push({
done: state.hasFlag('quest_bells_done'),
text: `Собрать лунные колокольчики у Серых прудов (${n}/${QUEST_FLOWERS})`
});
}
if (state.hasFlag('quest_bells_done')) {
entries.push({ done: true, text: 'Цветы посажены у тропы. Поляна гудит.' });
}
return entries;
}
/** Предметы инвентаря по флагам/варам GameState. */
export function inventoryItems(state: GameState): string[] {
const items: string[] = [];
if (state.hasFlag('got_cloth')) items.push('Вощёное полотно');
const flowers = state.getNumber('flowers');
if (flowers > 0) items.push(`Лунный колокольчик ×${flowers}`);
if (items.length === 0) items.push('— пусто —');
return items;
}