package metier; import java.util.Objects; import javax.swing.Icon; import javax.swing.JOptionPane; /** * Classe Mère Personnage * @author Dominique_2 * @version 20170215 */ public class Personnage { // Variables membres private String nom; private String img; private int energie; private int dureeVie; /** * Valorisation des variables membres * @param nom nom du personnage * @param img nom de l'image du personnage * @param energie valeur énergétique * @param dureeVie durée de vie, en année */ public Personnage(String nom, String img, int energie, int dureeVie) { this.nom = nom; this.img = img; this.energie = energie; this.dureeVie = dureeVie; } public Personnage() { // throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody } /** * Permet d'obtenir les valeurs des attributs de l'objet courant * @return liste des attributs avec leurs valeurs */ @Override public String toString() { return "Nom\t" + nom + "\nEnergie\t" + energie + "\nDuree de vie\t" + dureeVie + "\n"+this.getClass().getSimpleName(); } @Override public int hashCode() { int hash = 3; hash = 47 * hash + Objects.hashCode(this.nom); hash = 47 * hash + Objects.hashCode(this.img); hash = 47 * hash + this.energie; hash = 47 * hash + this.dureeVie; return hash; } /** * Comparaison de l'objet courant avec l'objet passé en paramètre * @param obj objet à comparer avec l'objet courant * @return true : les 2 objets sont identiques, false sinon */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final Personnage other = (Personnage) obj; if (this.energie != other.energie) { return false; } if (this.dureeVie != other.dureeVie) { return false; } if (!Objects.equals(this.nom, other.nom)) { return false; } if (!Objects.equals(this.img, other.img)) { return false; } return true; } /** * Get the value of energie * * @return the value of energie */ public int getEnergie() { return energie; } /** * Set the value of energie * * @param energie new value of energie */ public void setEnergie(int energie) { this.energie = energie; } /** * Get the value of dureeVie * * @return the value of dureeVie */ public int getDureeVie() { return dureeVie; } /** * Set the value of dureeVie * * @param dureeVie new value of dureeVie */ public void setDureeVie(int dureeVie) { this.dureeVie = dureeVie; } /** * Get the value of img * * @return the value of img */ public String getImg() { return img; } /** * Set the value of img * * @param img new value of img */ public void setImg(String img) { this.img = img; } /** * Get the value of nom * * @return the value of nom */ public String getNom() { return nom; } /** * Set the value of nom * * @param nom new value of nom */ public void setNom(String nom) { this.nom = nom; } public String rencontrer(Personnage unPerso) { String titre = this.getNom() + " rencontre " + unPerso.getNom(); String message = "Bonjour " + unPerso.getNom() + " !"; JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); //Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); return message; } public String saluer(Personnage unPerso){ String titre = this.getNom() + " salue " + unPerso.getNom(); String message = "Bonjour " + unPerso.getNom() + " Comment allez-vous ajourd'hui"; //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); return message; } /** * Cette fonction permet de faire varier l'energie de l'objet émetteur * @param nb l'énergie à faire varier de this.energie */ public void varierEnergie(int nb){ if ( (this.energie+ nb) >= 0){ this.energie += nb; } else{ JOptionPane.showMessageDialog(null,"Il m'est impossible d'avoir une énergie négative.\n Je dois revenir plus fort","Pouvoir insuffisant !", JOptionPane.INFORMATION_MESSAGE); } } /** * Cette fonction permet de faire varier la vie de l'objet émetteur * @param nb l'énergie à faire varier de this.dureeVie */ public void varierDureeVie(int nb){ if ( (this.dureeVie+ nb) >= 0){ this.dureeVie += nb; } else{ JOptionPane.showMessageDialog(null,"Je me meurt\n Adieu monde cruel","Mortalité !", JOptionPane.INFORMATION_MESSAGE); } } }