Skip to content
Snippets Groups Projects
Commit 852969d7 authored by LOI Leo's avatar LOI Leo
Browse files

ajout Etats et refactorisation en packages

parent 087ac06f
No related branches found
No related tags found
No related merge requests found
Showing
with 144 additions and 9 deletions
public class BaguetteMagique extends Arme{
public int soin;
}
package arme;
public abstract class Arme { public abstract class Arme {
public int degat = 0; public int degat = 0;
public String nom; public String nom;
public double poids; public double poids;
int getDegat(){ public int getDegat(){
return degat; return degat;
} }
......
package arme;
public class BaguetteMagique extends Arme {
public int soin;
}
public class BatonDeSorcier extends Arme{ package arme;
public class BatonDeSorcier extends Arme {
public String pouvoir; public String pouvoir;
} }
public class Epee extends Arme{ package arme;
public class Epee extends Arme {
public int longueur; public int longueur;
} }
package equipe;
import personnage.Personnage;
import visiteur.Visiteur;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
public class Equipe implements EquipeComponent{ public class Equipe implements EquipeComponent{
int degat = 0; int degat = 0;
int niveau = 0; int niveau = 0;
ArrayList<Personnage> equipe = new ArrayList<>(); public ArrayList<Personnage> equipe = new ArrayList<>();
Iterator<Personnage> it = equipe.iterator(); Iterator<Personnage> it = equipe.iterator();
@Override @Override
......
package equipe;
import personnage.Personnage;
import visiteur.Visiteur;
public interface EquipeComponent { public interface EquipeComponent {
void add(Personnage p); void add(Personnage p);
......
package fabrique;
import personnage.Guerisseur;
import personnage.Personnage;
public class FabriqueGuerisseur extends FabriquePersonnage{ public class FabriqueGuerisseur extends FabriquePersonnage{
@Override @Override
public Personnage createPerso() { public Personnage createPerso() {
......
package fabrique;
import personnage.Guerrier;
import personnage.Personnage;
public class FabriqueGuerrier extends FabriquePersonnage{ public class FabriqueGuerrier extends FabriquePersonnage{
@Override @Override
public Personnage createPerso() { public Personnage createPerso() {
......
package fabrique;
import personnage.Personnage;
public abstract class FabriquePersonnage { public abstract class FabriquePersonnage {
public abstract Personnage createPerso(); public abstract Personnage createPerso();
......
package fabrique;
import personnage.Personnage;
import personnage.Roi;
public class FabriqueRoi extends FabriquePersonnage{ public class FabriqueRoi extends FabriquePersonnage{
@Override @Override
public Personnage createPerso() { public Personnage createPerso() {
......
package fabrique;
import personnage.Personnage;
import personnage.Sorcier;
public class FabriqueSorcier extends FabriquePersonnage{ public class FabriqueSorcier extends FabriquePersonnage{
@Override @Override
public Personnage createPerso() { public Personnage createPerso() {
......
package personnage;
import equipe.EquipeComponent;
import visiteur.Visiteur;
public interface EPersonnage extends EquipeComponent { public interface EPersonnage extends EquipeComponent {
int accept(Visiteur visitor); int accept(Visiteur visitor);
......
package personnage;
import arme.Arme;
import visiteur.Visiteur;
public class Guerisseur extends Personnage { public class Guerisseur extends Personnage {
private int sagesse; private int sagesse;
private String isWhat = "Guerisseur"; private String isWhat = "personnage.Guerisseur";
public Guerisseur(){ public Guerisseur(){
super(); super();
......
package personnage;
import arme.Arme;
import visiteur.Visiteur;
public class Guerrier extends Personnage { public class Guerrier extends Personnage {
private int force; private int force;
private String isWhat = "Guerrier"; private String isWhat = "personnage.Guerrier";
public Guerrier(){ public Guerrier(){
super(); super();
......
package personnage;
import arme.Arme;
import state.Etat;
import state.actif;
import strategy.*;
import visiteur.Visiteur;
public abstract class Personnage implements EPersonnage { public abstract class Personnage implements EPersonnage {
int pointsDeVie; int pointsDeVie;
int niveau; int niveau;
...@@ -5,9 +13,11 @@ public abstract class Personnage implements EPersonnage { ...@@ -5,9 +13,11 @@ public abstract class Personnage implements EPersonnage {
Arme arme; Arme arme;
String isWhat; String isWhat;
CombatStrategy strat; CombatStrategy strat;
Etat etat;
public Personnage(){ public Personnage(){
this.strat = new CombatNeutre(); this.strat = new CombatNeutre();
this.etat = new actif(this);
} }
public Personnage(int pv, int niv, String nom, Arme arme){ public Personnage(int pv, int niv, String nom, Arme arme){
...@@ -46,6 +56,10 @@ public abstract class Personnage implements EPersonnage { ...@@ -46,6 +56,10 @@ public abstract class Personnage implements EPersonnage {
return strat.bonusDefense(); return strat.bonusDefense();
} }
public void setEtat(Etat etat) {
this.etat = etat;
}
public String getIsWhat() { public String getIsWhat() {
return isWhat; return isWhat;
} }
......
package personnage;
import arme.Arme;
import visiteur.Visiteur;
public class Roi extends Personnage { public class Roi extends Personnage {
private int force; private int force;
private String royaume; private String royaume;
private String isWhat = "Roi"; private String isWhat = "personnage.Roi";
public Roi(int pv, int niv, String nom, Arme arme, int force, String royaume) { public Roi(int pv, int niv, String nom, Arme arme, int force, String royaume) {
super(pv, niv, nom, arme); super(pv, niv, nom, arme);
......
package personnage;
import arme.Arme;
import visiteur.Visiteur;
public class Sorcier extends Personnage { public class Sorcier extends Personnage {
private int intelligence; private int intelligence;
private String isWhat = "Sorcier"; private String isWhat = "personnage.Sorcier";
public Sorcier(){ public Sorcier(){
super(); super();
......
package state;
import personnage.Personnage;
public abstract class Etat {
Personnage perso;
public Etat(Personnage perso){
this.perso = perso;
}
public String onActif(){
perso.setEtat(new actif(perso));
return "Personnage actif";
}
public String onEndormi(){
perso.setEtat(new endormi(perso));
return "Le personnage s'endort";
}
public String onBlesse(){
perso.setEtat(new blesse(perso));
return "Le personnag est blessé, ses degats et pv sont reduits";
}
public String onMort(){
perso.setEtat(new mort(perso));
return "Le personnage vient de mourir";
}
public String onEmpoisonne(){
perso.setEtat(new empoisonne(perso));
return "Le personnage est empoisonne ses pv vont baisser chaque tour";
}
}
package state;
import personnage.Personnage;
public class actif extends Etat{
public actif(Personnage perso) {
super(perso);
}
@Override
public String onActif() {
return "Personnage déjà actif";
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment