128 lines
3.8 KiB
Java
128 lines
3.8 KiB
Java
package metier;
|
|
import java.util.Objects;
|
|
import javax.swing.Icon;
|
|
import javax.swing.JOptionPane;
|
|
|
|
/**
|
|
* Classe Guerrier, hérite de la classe Personnage
|
|
* @author Dominique_2
|
|
* @version 20170115
|
|
*/
|
|
public class Guerrier extends Personnage{
|
|
// Variable membre
|
|
private String arme;
|
|
|
|
/**
|
|
* Valorisation des variables membres
|
|
* @param nom nom du guerrier
|
|
* @param img nom de l'image représentant le guerrier
|
|
* @param energie valeur énergétique du guerrier
|
|
* @param dureeVie durée de vie du guerrier
|
|
* @param arme armu du guerrier
|
|
*/
|
|
public Guerrier(String nom, String img, int energie, int dureeVie, String arme) {
|
|
super(nom, img, energie, dureeVie);
|
|
this.arme = arme;
|
|
}
|
|
/**
|
|
* Permet d'obtenir les valeurs des attributs de l'objet courant
|
|
* @return liste des attributs avec leurs valeurs
|
|
*/
|
|
@Override
|
|
public String toString() {
|
|
return super.toString() + "\tArme=" + arme;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
int hash = 7;
|
|
hash = super.hashCode() + (13 * hash + Objects.hashCode(this.arme));
|
|
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 Guerrier other = (Guerrier) obj;
|
|
if (!Objects.equals(this.arme, other.arme)) {
|
|
return false;
|
|
}
|
|
if(!super.equals(obj)){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get the value of arme
|
|
*
|
|
* @return the value of arme
|
|
*/
|
|
public String getArme() {
|
|
return arme;
|
|
}
|
|
|
|
/**
|
|
* Set the value of arme
|
|
*
|
|
* @param arme new value of arme
|
|
*/
|
|
public void setArme(String arme) {
|
|
this.arme = arme;
|
|
}
|
|
|
|
@Override
|
|
public String saluer(Personnage unPerso){
|
|
String titre = this.getNom() + " salue " + unPerso.getNom();
|
|
String message ;
|
|
/**if(unPerso instanceof Guerrier){
|
|
message = "Bonjour " + unPerso.getNom() + " Comment allez-vous ajourd'hui";
|
|
}
|
|
else{
|
|
|
|
}**/
|
|
message = "Bonjour " + unPerso.getNom() + "Barre toi avant que je n'utilise mon "+ this.arme;
|
|
//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;
|
|
}
|
|
|
|
@Override
|
|
public String rencontrer(Personnage unPerso) {
|
|
this.saluer(unPerso); //appelle de la contion saluer
|
|
int pts_attaque = 0;
|
|
int pts_defense = 0;
|
|
do{
|
|
pts_attaque = Jeu.genererNbAleatoire(0, 10);
|
|
pts_defense = Jeu.genererNbAleatoire(0, 10);
|
|
}while(pts_attaque == pts_defense);
|
|
|
|
if(pts_attaque > pts_defense){
|
|
unPerso.varierDureeVie(-1);
|
|
unPerso.varierEnergie(-2);
|
|
return "Tu as perdu, Tu es maintenant à "+unPerso.getEnergie()+ "energie et "+unPerso.getDureeVie()+ " PV !!";
|
|
}else{ // pts_defense > pts_attaque
|
|
this.varierEnergie(-1);
|
|
unPerso.varierEnergie(2);
|
|
return "Mon energie est à "+ this.getEnergie() + "et toi qui m'a vaincu tu es à "+ unPerso.getEnergie();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|