#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 * - Drone: spawns an orbiting combat drone * ═══════════════════════════════════════════════════ */ typedef enum PowerupKind { POWERUP_HEALTH, POWERUP_JETPACK, 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_drone(EntityManager *em, Vec2 pos); Entity *powerup_spawn_gun(EntityManager *em, Vec2 pos); #endif /* JNR_POWERUP_H */