package fr.iutfbleau.projetAgile.Puissance4.Controller;

import fr.iutfbleau.projetAgile.Puissance4.Event.*;
import fr.iutfbleau.projetAgile.Puissance4.View.Puissance4Panel;

public class ModelEventListener implements GridChangedListener  {

    private Puissance4Panel panel;

    /**
     * Constructeur
     * @param p
     */
    public ModelEventListener(Puissance4Panel p) {
        this.panel = p;
    }

    /**
     * Ajoute un pion à l'emplacement modifié dans la grille
     */
    @Override
    public void gridChanged(GridEvent e) {
        this.panel.addPlayerPiece(e.getColumn(), e.getRow(), e.getPlayer());
    }

    @Override
    public void statusChanged(StatusEvent e) {
        this.panel.changeLabel(e.getPlayerTurn());
        this.panel.changeHoverColor(e.getPlayerTurn());
        this.panel.setGameStatus(e.getStatus(), e.getPlayerTurn(), e.getPlayerOneScore(), e.getPlayerTwoScore(), e.getPlayerThreeScore());
    }

    @Override 
    public void playerRemove(PlayerEvent e){
        this.panel.removePlayer(e.getJ(), e.getGrille());
    }
}
