// effects.hpp - Constants per a efectes visuals (fireworks, etc.) // © 2026 JailDesigner #pragma once #include namespace Defaults::FX::Firework { // Color per defecte. La caller pot fer override (p.ex. heretar del pare), // però per defecte no l'heretem — feel més neutre/lluminós. constexpr SDL_Color DEFAULT_COLOR = {.r = 255, .g = 255, .b = 255, .a = 255}; // Velocitat inicial radial al spawn (px/s) i variació entre punts. constexpr float SPEED = 250.0F; constexpr float SPEED_VARIATION = 30.0F; // ± // Quantitat de línies per burst (per defecte). constexpr int N_POINTS = 100; // Distribució angular: jitter aleatori sobre el repartiment uniforme. constexpr float ANGULAR_JITTER_DEG = 12.0F; // Fase 1 (creixement): la línia neix amb longitud 0 i creix fins a max. constexpr float GROW_DURATION = 0.08F; // s constexpr float MAX_LENGTH = 25.0F; // px // Fricció lineal (px/s²). Negativa per frenar. constexpr float FRICTION = -180.0F; // Llindar de mort: per sota d'aquesta longitud (px) o brillor, la // partícula es marca inactiva. constexpr float MIN_LENGTH = 0.5F; constexpr float MIN_BRIGHTNESS = 0.02F; // Brillor inicial per defecte. constexpr float INITIAL_BRIGHTNESS = 1.0F; // Restitució en rebot contra els límits del PLAYAREA (mateix patró que debris). constexpr float RESTITUTION_BOUNDS = 0.7F; // Mida del pool. 8 punts × ~25 bursts simultanis. constexpr int POOL_SIZE = 2000; } // namespace Defaults::FX::Firework