// enemies.hpp - Constants tècniques compartides per al sistema d'enemics.
// © 2026 JailDesigner
//
// Tots els paràmetres jugables (physics, animation, wounded, spawn,
// behavior, colors, scoring) viuen a data/entities/<type>/<type>.yaml i
// s'accedeixen via EnemyRegistry::get(EnemyType). Aquí només queda el
// que no és per personalitzar per tipus.

#pragma once

namespace Defaults::Enemies::Spawn {

    // Sostre de reintents al cercar una posició de spawn que respecti el
    // safety_distance del tipus. No és un paràmetre jugable: és el llindar
    // tècnic abans de caure a un fallback aleatori amb advertència.
    constexpr int MAX_SPAWN_ATTEMPTS = 50;

}  // namespace Defaults::Enemies::Spawn

namespace Defaults::Enemies::Visual {

    // Duració del "flash" que dispara l'acció FLASH (feedback per impacte
    // parcial en enemics HP>1). Curt: l'efecte ha de llegir-se com un cop,
    // no com una transició.
    constexpr float FLASH_DURATION = 0.08F;

}  // namespace Defaults::Enemies::Visual

namespace Defaults::Enemies::Debris {

    // Escala dels fragments per a l'acció CREATE_DEBRIS_PARTIAL (xip d'impacte
    // en enemics HP>1). 0.3 = trossos petits, com de "casc esquerdat".
    constexpr float PARTIAL_PIECE_SCALE = 0.3F;

}  // namespace Defaults::Enemies::Debris

namespace Defaults::Enemies::Fireworks {

    // Paràmetres del firework "petit" per a l'acció CREATE_FIREWORKS_SMALL
    // (feedback per impacte parcial en enemics HP>1). Pocs punts i baixa
    // velocitat: una espurna breu, no una explosió.
    constexpr int SMALL_N_POINTS = 20;
    constexpr float SMALL_SPEED = 250.0F;

}  // namespace Defaults::Enemies::Fireworks
