import Phaser from 'phaser';

/**
 * Classe Obstacle
 * Représente un obstacle qui peut blesser le joueur
 */
export class Obstacle extends Phaser.Physics.Arcade.Sprite {
    constructor(scene: Phaser.Scene, x: number, y: number) {
        super(scene, x, y, 'obstacle');

        scene.add.existing(this);
        scene.physics.add.existing(this);

        // Créer texture temporaire si elle n'existe pas
        if (!scene.textures.exists('obstacle')) {
            this.createPlaceholderTexture(scene);
        }

        this.setTexture('obstacle');
    }

    /**
     * Crée une texture temporaire pour l'obstacle
     */
    private createPlaceholderTexture(scene: Phaser.Scene): void {
        const graphics = scene.add.graphics();

        // Dessin d'un obstacle (pic/épine)
        graphics.fillStyle(0xF44336, 1);
        graphics.fillTriangle(20, 0, 40, 60, 0, 60);

        graphics.generateTexture('obstacle', 40, 60);
        graphics.destroy();
    }
}
