/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package game.view.inventory;
import beans.serializable.Skill;
import game.entity.Alphabet;
import game.model.inventory.InventorySkillModel;
import game.view.ListScreen;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.util.Observable;
/**
* Vue du modèle de la liste de compétences
*
* @author Elragos
* @version InventorySkillScreen 1.0
* @since Game 1.0
*/
public class InventorySkillScreen extends InventoryScreenPatern {
/**
* Modèle contenant la liste de compétences
*
* @since InventorySpellScreen 1.0
*/
private InventorySkillModel skills;
/**
* La liste de compétences à afficher
*
* @since InventorySkillScreen 1.0
* @see ListScreen
*/
private ListScreen listScreen;
/**
* Constructeur de la vue, prend un modèle pour référence.
*
* @param inventoryModel le modèle de référence.
* @since InventorySkillScreen 1.0
* @see InventorySkillModel
*/
public InventorySkillScreen(final InventorySkillModel skillsModel) {
this.skills = skillsModel;
skills.addObserver(this);
listScreen = new ListScreen(skills.getListModel());
}
/**
* Récupérer l'image représentant le menu.
*
* @return l'image représentant le menu
* @since InventorySpellScreen 1.0
* @see Image
*/
@Override
public Image getImage() {
//Initialiser l'affichage
final BufferedImage image = new BufferedImage(background.getWidth(null), background.getHeight(null), BufferedImage.TYPE_INT_ARGB);
final Graphics2D graphic = image.createGraphics();
graphic.drawImage(background, 0, 0, null);
//Afficher la liste de compétences
final Image imageListScreen = listScreen.getImage();
if (imageListScreen != null) {
graphic.drawImage(listScreen.getImage(), 20, 50, null);
}
//Afficher la description de la compétences courant
Skill currentSkill = skills.getCurrentSkill();
//Affichage de la description
graphic.drawImage(Alphabet.createString(currentSkill.getDescription().toString(), image.getWidth()), 20, image.getHeight() - 200, null);
//Affichage de la cible
graphic.drawImage(Alphabet.createString("Cible : " + currentSkill.getTarget().toString(), image.getWidth()), 20, image.getHeight() - 150, null);
//Affichage de la cible
graphic.drawImage(Alphabet.createString("Cout : " + skills.displayCout(currentSkill.getCost()), image.getWidth()), 20, image.getHeight() - 100, null);
graphic.dispose();
return image;
}
/**
* Méthode appelé lors de la mise à jour du modèle observé.
*image
* @param o le modèle qui a été mis à jour.
* @param arg les arguments de mise à jour (non utilisé).
* @since InventorySkiellScreen 1.0
* @see InventorySkillModel
*/
@Override
public void update(final Observable o, final Object arg) {
skills = (InventorySkillModel) o;
}
}