// Constantes du jeu

// Dimensions
export const GAME_WIDTH = 1280;
export const GAME_HEIGHT = 720;

// Physique joueur
export const PLAYER_GRAVITY = 800;
export const PLAYER_JUMP_VELOCITY = -550; // Augmenté pour atteindre les plateformes
export const PLAYER_MAX_SPEED = 300;
export const PLAYER_ACCELERATION = 50;
export const PLAYER_MAX_JUMPS = 2; // Nombre de sauts autorisés (double saut)

// Hitbox spécifique par joueur
// User1 et User2 ont les mêmes dimensions (93x224px) et la même hitbox
export const USER1_HITBOX = {
    width: 50,
    height: 130,
    spriteHeight: 224
};

export const USER2_HITBOX = {
    width: 50,
    height: 130,
    spriteHeight: 224
};

// ========================================
// GYROSCOPE - CONFIGURATION PAR PLATEFORME
// ========================================
// Les plateformes iOS et Android ont des comportements différents
// pour le DeviceOrientationEvent. Ces configurations sont séparées
// pour faciliter le réglage et le débogage sur chaque appareil.

// Configuration ANDROID
// ---------------------
export const GYRO_DEADZONE_ANDROID = 3;        // Zone morte (degrés) - en-dessous, pas de mouvement (réduit pour détecter plus tôt)
export const GYRO_MAX_TILT_ANDROID = 30;       // Tilt maximum pris en compte (degrés) - augmenté pour plus d'amplitude
export const GYRO_SENSITIVITY_ANDROID = 8;     // Multiplicateur de vitesse (réduit pour contrôle plus précis)
export const GYRO_CALIBRATION_SAMPLES_ANDROID = 10; // Nombre d'échantillons pour calibration initiale
export const GYRO_INVERT_BETA_ANDROID = false; // PAS d'inversion pour Android (false = pencher avant = avancer)
export const GYRO_USE_GAMMA_ANDROID = false;   // FALSE = beta (rotation autour de X = AVANT/ARRIÈRE), true = gamma (gauche/droite)
export const GYRO_USE_ALPHA_ANDROID = false;   // false = utiliser beta/gamma, true = alpha (rotation axe Z = boussole) - NON ADAPTÉ pour paysage

// Configuration iOS
// -----------------
export const GYRO_DEADZONE_IOS = 5;            // Zone morte (degrés) - augmentée pour plus de stabilité
export const GYRO_MAX_TILT_IOS = 45;           // Tilt maximum pris en compte (degrés) - augmenté pour nécessiter plus d'angle
export const GYRO_SENSITIVITY_IOS = 8;         // Multiplicateur de vitesse (réduit pour contrôle plus précis)
export const GYRO_CALIBRATION_SAMPLES_IOS = 20; // Nombre d'échantillons pour calibration (plus stable sur iOS)
export const GYRO_INVERT_BETA_IOS = false;     // Inverser la lecture du beta (false = pas d'inversion)
export const GYRO_USE_GAMMA_IOS = false;       // Utiliser beta (avant/arrière) en paysage pour iOS
export const GYRO_USE_ALPHA_IOS = false;       // iOS n'utilise pas alpha

// Compatibilité (valeurs par défaut si plateforme non détectée)
export const GYRO_DEADZONE = GYRO_DEADZONE_ANDROID;
export const GYRO_MAX_TILT = GYRO_MAX_TILT_ANDROID;
export const GYRO_SENSITIVITY = GYRO_SENSITIVITY_ANDROID;

// Niveau
export const LEVEL_DURATION = 180; // 3 minutes en secondes
export const LEVEL_LENGTH = 10000; // Longueur du niveau en pixels (alternative au timer)

// Système de vies
export const PLAYER_STARTING_LIVES = 3; // Nombre de vies au départ
export const RESPAWN_INVINCIBILITY_TIME = 2000; // Temps d'invincibilité après respawn (ms)

// Coffre final
export const CHEST_REQUIRED_GIFTS = 13; // Nombre de cadeaux requis pour ouvrir le coffre

// Obstacles (champignons)
export const MIN_MUSHROOMS = 25; // Nombre minimum de champignons places

// Couleurs
export const COLOR_PRIMARY = 0x4CAF50;
export const COLOR_DANGER = 0xF44336;
export const COLOR_GIFT = 0xFFEB3B;
export const COLOR_SKY = 0x87CEEB;
