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;
}