JeuDeRole/JDR/src/metier/Sorcier.java

117 lines
4.1 KiB
Java

package metier;
import java.util.Objects;
import java.util.Scanner;
import javax.swing.Icon;
import javax.swing.JOptionPane;
/**
*
* @author Dominique_2
*/
public class Sorcier extends Personnage {
private String baguette;
private String enigme;
Enigme[] enigmes1 = {
new Enigme("Qu?est ce qui est plus grand que la Tour Eiffel, mais infiniment moins lourd ?","ombre"),
new Enigme("Girafe = 3, Éléphant = 3, Hippopotame = 5, Lion = ? ?","2"),
new Enigme("Qu'est-ce qui commence la nuit et termine le matin ?","n"),
new Enigme("Qu'est-ce qui fait le tour de la maison sans bouger ?","mur")
};
Enigme[] enigmes2 = {
new Enigme("Considérez la suite de chiffre suivante : 0 1 1 2 3 5 8 Quel chiffre suit le 8 ?","13"),
new Enigme("Prenez une pizza et placez-la devant vous. En combien de morceaux maximum pouvez-vous la couper en effectuant seulement six coups de couteau ?","16"),
new Enigme("C'est le jour de la paie. La poule reçoit 7 euros. L'abeille reçoit 21 euros. L'araignée reçoit 28 euros. Combien reçoit le chien ?","14"),
new Enigme("Un escargot est au fond d'un puits de 10 mètres. Chaque matin il monte de 3 mètres et chaque nuit il descend de 2 mètres. Combien de jours lui faudra-t-il pour sortir de ce puits ?","7")
};
public Sorcier(String nom, String img, int energie, int dureeVie, String baguette) {
super(nom, img, energie, dureeVie);
this.baguette = baguette;
}
@Override
public int hashCode() {
int hash = 7;
hash = super.hashCode() + (73 * hash + Objects.hashCode(this.baguette));
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Sorcier other = (Sorcier) obj;
if (!Objects.equals(this.baguette, other.baguette)) {
return false;
}
if (!super.equals(obj)) {
return false;
}
return true;
}
@Override
public String toString() {
return super.toString() + "\tBaguette=" + baguette + "\nNb Enigmes";
}
/**
* Get the value of baguette
*
* @return the value of baguette
*/
public String getBaguette() {
return baguette;
}
/**
* Set the value of baguette
*
* @param baguette new value of baguette
*/
public void setBaguette(String baguette) {
this.baguette = baguette;
}
@Override
public String saluer(Personnage unPerso){
String titre = this.getNom() + " salue " + unPerso.getNom();
String message ;
message = "Bonjour " + unPerso.getNom() + " Tu es sous ma dépendance ";
//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){
Scanner LectureClavier =new Scanner(System.in);
String titre = this.getNom() + " rencontre " + unPerso.getNom();
String message = "Je vais te détruire";
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);
Enigme enigm = enigmes1[(int)(Math.random() * 3)];
System.out.println(enigm.Question());
String reponse = LectureClavier.nextLine();
if (reponse.equals(enigm.Reponse())){
unPerso.varierDureeVie(1);
}
else{
unPerso.varierDureeVie(-2);
}
return message;
}
}