#ifndef JNR_POWERUP_H
#define JNR_POWERUP_H

#include "engine/entity.h"

/* ═══════════════════════════════════════════════════
 *  Powerup Pickups
 *
 *  Small collectible items that grant the player
 *  an instant benefit on contact:
 *  - Health:   restores 1 HP
 *  - Jetpack:  instantly refills all dash charges + boost
 *  - Fuel:     instantly fills one jetpack charge
 *  - Drone:    spawns an orbiting combat drone
 * ═══════════════════════════════════════════════════ */

typedef enum PowerupKind {
    POWERUP_HEALTH,
    POWERUP_JETPACK,
    POWERUP_FUEL,
    POWERUP_DRONE,
    POWERUP_GUN,
    POWERUP_KIND_COUNT
} PowerupKind;

typedef struct PowerupData {
    PowerupKind kind;
    float       bob_timer;    /* sine bob animation */
    Vec2        base_pos;     /* original spawn position */
} PowerupData;

/* Register the powerup entity type */
void powerup_register(EntityManager *em);

/* Spawn a specific powerup at a position */
Entity *powerup_spawn(EntityManager *em, Vec2 pos, PowerupKind kind);

/* Convenience spawners for level/levelgen */
Entity *powerup_spawn_health(EntityManager *em, Vec2 pos);
Entity *powerup_spawn_jetpack(EntityManager *em, Vec2 pos);
Entity *powerup_spawn_fuel(EntityManager *em, Vec2 pos);
Entity *powerup_spawn_drone(EntityManager *em, Vec2 pos);
Entity *powerup_spawn_gun(EntityManager *em, Vec2 pos);

#endif /* JNR_POWERUP_H */
