package game.view.fight;
import beans.core.GeneralConstant;
import beans.enumeration.Target;
import game.model.fight.FightModel;
import game.model.fight.ListActionModel;
import game.model.fight.ListPersoModel;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JPanel;
/**
* Vue du modèle de combat.
*
* Ici sera visualisé un combat.
*
* @author Alexandre
* @version FightView 1.0
* @since Game 1.0
*/
public class FightView extends JPanel implements Observer {
/**
* Modèle observé.
*
* @since FightView 1.0
*/
private FightModel model;
/**
* Vue des statistiques des combattants.
*
* @since FightView 1.0
*/
private ListPerso statsPerso;
/**
* Vue des actions des combattants.
*
* @since FightView 1.0
*/
private ListAction actionList;
/**
* Créer la vue.
*
* @param model Le modèle de combat à observer.
* @since FightView 1.0
*/
public FightView(final FightModel model) {
// Enregistrer le modèle observé
this.model = model;
model.addObserver(this);
final ListPersoModel listPersoModel = model.getListPersoModel();
// Initialiser la vue des stats des combattants
statsPerso = new ListPerso(listPersoModel);
final ListActionModel listActionModel = new ListActionModel(listPersoModel);
actionList = new ListAction(listActionModel);
}
/**
* Dessiner la fenêtre correspondant à la vue du combat.
*
* @param g Le pinceau de dessin.
* @since FightView 1.0
*/
@Override
public void paintComponent(Graphics g) {
// Vider la fenêtre
g.clearRect(0, 0, GeneralConstant.TAILLE_ECRAN_X, GeneralConstant.TAILLE_ECRAN_Y);
// Mettre un fong bleu
g.setColor(Color.BLUE);
g.fillRect(0, 0, GeneralConstant.TAILLE_ECRAN_X, GeneralConstant.TAILLE_ECRAN_Y);
//Dessiner la vue des stats des combattants
g.drawImage(statsPerso.getImage(), 0 , GeneralConstant.TAILLE_ECRAN_Y - statsPerso.SIZE_Y - 10, null);
//g.drawImage(actionList.getImage(), GeneralConstant.TAILLE_ECRAN_X/2 , GeneralConstant.TAILLE_ECRAN_Y - statsPerso.SIZE_Y - 10, null);
}
/**
* Mettre à jour le modèle.
*
* @param o L'objet modifié.
* @param arg Les arguments de modification.
* @since FightView 1.0
*/
@Override
public void update(Observable o, Object arg) {
repaint();
}
}