// ship.hpp - Configuració de la nau (invulnerabilitat, parpelleig)
// © 2026 JailDesigner

#pragma once

namespace Defaults::Ship {

    // Invulnerabilidad post-respawn
    constexpr float INVULNERABILITY_DURATION = 3.0F;  // Segundos de invulnerabilidad

    // Parpadeo visual durante invulnerabilidad
    constexpr float BLINK_VISIBLE_TIME = 0.1F;    // Tiempo visible (segundos)
    constexpr float BLINK_INVISIBLE_TIME = 0.1F;  // Tiempo invisible (segundos)
    // Frecuencia total: 0.2s/ciclo = 5 Hz (~15 parpadeos en 3s)

    // Cuerpo físico
    constexpr float MASS = 10.0F;            // Masa de referencia para choques
    constexpr float RESTITUTION = 0.6F;      // Rebote moderado contra paredes
    constexpr float LINEAR_DAMPING = 1.5F;   // Fricción exponencial (s⁻¹)
    constexpr float ANGULAR_DAMPING = 0.0F;  // Rotación 100% por input (no inercial)

    // Empuje visual: escala proporcional a la velocidad (0..200 px/s → 1.0..1.5)
    // Mantiene la sensación del Pascal original.
    constexpr float VISUAL_PUSH_DIVISOR = 33.33F;  // SPEED / DIVISOR = empuje visual
    constexpr float VISUAL_SCALE_DIVISOR = 12.0F;  // SCALE = 1 + (PUSH / DIVISOR)

    // Estat "ferit": entre primera col·lisió amb enemic i recuperació o segona col·lisió mortal.
    namespace Hurt {
        constexpr float DURATION = 15.0F;  // Segons en estat ferit (provisional)
        constexpr float BLINK_HZ = 10.0F;  // Freqüència parpelleig color normal ↔ ferit
    }  // namespace Hurt

}  // namespace Defaults::Ship
