// entities.hpp - Configuració d'objectes del joc (límits i radis de col·lisió)
// © 2026 JailDesigner

#pragma once

#include <cstdint>

namespace Defaults::Entities {

    constexpr int MAX_ORNIS = 15;
    constexpr int MAX_BULLETS = 50;        // per jugador (P1 + P2 = 2× aquest valor)
    constexpr int MAX_ENEMY_BULLETS = 50;  // pool reservat per a bales d'enemic

    // Total real de slots a l'array global bullets_: zona P1, zona P2 i zona enemic.
    // Reservar zones impedeix que les bales d'enemic ocupin slots del jugador.
    constexpr int MAX_BULLETS_TOTAL = (MAX_BULLETS * 2) + MAX_ENEMY_BULLETS;
    constexpr int ENEMY_BULLET_START_IDX = MAX_BULLETS * 2;

    // Convenció d'owner_id per a Bullet::fire:
    //   0..1                       = players (P1, P2)
    //   ENEMY_OWNER_BASE + index   = enemic concret (per identificar el seu autoimpacte)
    // Una bala mata a qualsevol col·lisió excepte amb el seu propi creador.
    constexpr uint8_t ENEMY_OWNER_BASE = 128;

    // SHIP_RADIUS / ENEMY_RADIUS / BULLET_RADIUS han migrat: ara cada entitat
    // calcula el seu collision_radius com a
    //   shape.bounding_radius × shape.scale × shape.collision_factor
    // a partir del seu YAML (data/entities/<name>/<name>.yaml).

}  // namespace Defaults::Entities
