// border.hpp - Configuració del border del playfield (estàtic + reaccions)
// © 2026 JailDesigner

#pragma once

namespace Defaults::Border {

    // Desplaçament del border per impactes
    constexpr float MAX_DISPLACEMENT_PX = 6.0F;           // tope màxim de separació respecte la posició natural
    constexpr float DISPLACEMENT_RECOVERY_PER_S = 30.0F;  // px/s tornant cap a 0 (ease lineal)

    // Flash al impacte. Intensitat proporcional al desplaçament:
    //   max displacement → color = FLASH_COLOR pur
    //   0 displacement   → color = oscil·lador (base verd)
    // La línia es dibuixa amb el color resultant del lerp; no hi ha sobreposició.
    constexpr bool FLASH_ENABLED = true;
    constexpr unsigned char FLASH_COLOR_R = 180;
    constexpr unsigned char FLASH_COLOR_G = 255;
    constexpr unsigned char FLASH_COLOR_B = 180;

    // Conversió velocitat d'impacte → strength del bump
    constexpr float BUMP_VELOCITY_REFERENCE = 120.0F;  // px/s donen strength 1.0
    constexpr float BUMP_MIN_VELOCITY = 20.0F;         // sota d'açò no genera bump (filtrar fregaments)

    // Bump generat per explosions properes a la paret.
    constexpr float EXPLOSION_FALLOFF_PX = 80.0F;    // més enllà d'aquesta distància, sense bump
    constexpr float EXPLOSION_BASE_STRENGTH = 0.7F;  // strength màxim (a 0 px de la paret)

}  // namespace Defaults::Border
