LesSyms4/src/Person/Personnage.java
2015-01-07 09:03:19 +01:00

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