import java.awt.Color;
import java.awt.Graphics;

public class BonusMalus extends ObjetGraphique {

    public boolean estBonus;
    public boolean actif = true; // Permet de le faire disparaître une fois ramassé
    public int taille = 15;

    public BonusMalus(double startX, double startY, boolean bonus) {
        this.x = startX;
        this.y = startY;
        this.estBonus = bonus;
    }

    @Override
    void Afficher(Graphics g) {
        if (!actif) return; // S'il a été ramassé, on ne le dessine plus
        
        if (estBonus) {
            g.setColor(Color.green); // Carré jaune (Bonus)
            g.fillRect((int)x, (int)y - taille / 2, taille, taille);
        } else {
            g.setColor(Color.red); // Triangle rouge (Malus)
            int[] xPoints = {(int)x, (int)x + taille / 2, (int)x + taille};
            int[] yPoints = {(int)y + taille / 2, (int)y - taille / 2, (int)y + taille / 2};
            g.fillPolygon(xPoints, yPoints, 3);
        }
    }

    @Override
    void Animer() {
        this.x -= 5; // Il se déplace vers la gauche à la même vitesse que la ligne
    }
    
    // Vérifie si le joueur touche l'objet
    public boolean estTouche(Cercle c) {
        if (!actif) return false;
        
        // Calcul de la distance entre le centre de l'objet et le centre du joueur
        double centreItemX = x + taille / 2.0;
        double centreItemY = y;
        double distance = Math.sqrt(Math.pow(centreItemX - c.x, 2) + Math.pow(centreItemY - c.y, 2));
        
        // Si la distance est inférieure au rayon du joueur, c'est touché !
        return distance < (c.getRayon() + taille / 2.0);
    }
}