#include "blueprints.h"

/* One entry for A.6c. More coming in A.6f. The sentinel at index 0 lets
   callers loop from i=1 and skip the no-op, matching Brogue's convention. */
const blueprint_t blueprint_catalog[] = {
    /* 0: sentinel */
    { .name = "(none)", .feature_count = 0 },

    /* 1: Reward Vault
       A small pocket behind a chokepoint, carpeted, containing 3-5 pedestals
       each bearing an item. The gate cell is marked as a vestibule candidate
       (used by the cascade in A.6d; for A.6c it's just an entry marker). */
    {
        .name          = "Reward Vault",
        .depth_min     = 1,
        .depth_max     = 26,
        .room_size_min = 6,
        .room_size_max = 40,
        .frequency     = 100,
        .flags         = BP_VESTIBULE | BP_REWARD,
        .feature_count = 3,
        .features = {
            /* Carpet paints every interior floor; purely visual. */
            { .terrain = 0, .marker = MK_CARPET, .min_count = 0, .max_count = 0,
              .flags = MF_EVERYWHERE },
            /* Pedestals with items — blocking, since you walk around them. */
            { .terrain = 0, .marker = MK_PEDESTAL, .min_count = 3, .max_count = 5,
              .flags = MF_TREAT_AS_BLOCKING },
            /* Gate cell — will spawn a vestibule child once A.6d lands. */
            { .terrain = 0, .marker = MK_NONE, .min_count = 1, .max_count = 1,
              .flags = MF_BUILD_AT_ORIGIN | MF_PERMIT_BLOCKING | MF_BUILD_VESTIBULE },
        },
    },
};

const int NUM_BLUEPRINTS = (int)(sizeof(blueprint_catalog) / sizeof(blueprint_catalog[0]));
