78 lines
2.1 KiB
Java
78 lines
2.1 KiB
Java
package Person;
|
|
|
|
import Cases.CaseAbstraite;
|
|
import Comportements.ComportementCombat;
|
|
import Comportements.ComportementEmmetreSon;
|
|
import Composition.PersonnagesAbstraits;
|
|
import Observateur.ObservateurAbstrait;
|
|
import Observateur.Organisation;
|
|
|
|
public class Personnage extends PersonnagesAbstraits implements ObservateurAbstrait {
|
|
protected CaseAbstraite caseCourante;
|
|
protected String nom;
|
|
protected ComportementCombat comportementCombat;
|
|
protected ComportementEmmetreSon comportementEmmetreSon;
|
|
protected eMode etatFonctionnement = eMode.ND;
|
|
|
|
protected Personnage(Organisation etatMajor, String nom) {
|
|
this.nom = nom;
|
|
this.comportementCombat = null;
|
|
this.comportementEmmetreSon = null;
|
|
|
|
if (etatMajor != null)
|
|
etatMajor.attach(this);
|
|
}
|
|
|
|
public String getNom() {
|
|
return nom;
|
|
}
|
|
|
|
public void setComportementCombat(ComportementCombat comportementCombat) {
|
|
this.comportementCombat = comportementCombat;
|
|
}
|
|
|
|
public void setComportementEmmetreSon(ComportementEmmetreSon comportementEmmetreSon) {
|
|
this.comportementEmmetreSon = comportementEmmetreSon;
|
|
}
|
|
public String EmmetreSon() {
|
|
return this.comportementEmmetreSon.emmetreSon();
|
|
}
|
|
|
|
public String Combattre() {
|
|
if (this.comportementCombat != null)
|
|
return this.comportementCombat.combattre() + " \n" + this.getEtat();
|
|
else {
|
|
return "Ohhh, je suis trop faible pour combattre !";
|
|
}
|
|
}
|
|
|
|
|
|
public void update(eMode comportement) {
|
|
this.etatFonctionnement = comportement;
|
|
}
|
|
|
|
public String getEtat() {
|
|
String etat;
|
|
switch (etatFonctionnement) {
|
|
case GUERRE:
|
|
etat = "En Guerre !";
|
|
break;
|
|
case PAIX:
|
|
etat = "En paix !";
|
|
break;
|
|
default:
|
|
etat = "De quoi ?";
|
|
break;
|
|
}
|
|
return etat;
|
|
}
|
|
|
|
public CaseAbstraite getCaseCourante() {
|
|
return caseCourante;
|
|
}
|
|
|
|
public void setCaseCourante(CaseAbstraite caseCourante) {
|
|
this.caseCourante = caseCourante;
|
|
}
|
|
}
|