JeuDeRole/JDR/src/metier/Personnage.java
2025-02-10 09:01:41 +01:00

203 lines
5.6 KiB
Java

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);
}
}
}