// debris.hpp - Fragment de línia volant (explosió de formes)
// © 2025 Port a C++20 amb SDL3

#pragma once
#include "core/types.hpp"

namespace Effects {

// Debris: un segment de línia que vola perpendicular a sí mateix
// Representa un fragment d'una forma destruïda (nau, enemic, bala)
struct Debris {
        // Geometria del segment (2 punts en coordenades mundials)
        Punt p1;  // Punt inicial del segment
        Punt p2;  // Punt final del segment

        // Física
        Punt velocitat;     // Velocitat en px/s (components x, y)
        float acceleracio;  // Acceleració negativa (fricció) en px/s²

        // Rotació
        float angle_rotacio;         // Angle de rotació acumulat (radians)
        float velocitat_rot;         // Velocitat de rotació de TRAYECTORIA (rad/s)
        float velocitat_rot_visual;  // Velocitat de rotació VISUAL del segment (rad/s)

        // Estat de vida
        float temps_vida;  // Temps transcorregut (segons)
        float temps_max;   // Temps de vida màxim (segons)
        bool actiu;        // Està actiu?

        // Shrinking (reducció de distància entre punts)
        float factor_shrink;  // Factor de reducció per segon (0.0-1.0)

        // Rendering
        float brightness;  // Factor de brillantor (0.0-1.0, heretat de l'objecte original)
};

}  // namespace Effects
