diff --git a/src/effet/EffetTarget.java b/src/effet/EffetTarget.java index 51badc9..1e74626 100644 --- a/src/effet/EffetTarget.java +++ b/src/effet/EffetTarget.java @@ -3,12 +3,20 @@ package effet; import effet.action.Action; import main.Joueur; -public abstract class EffetTarget extends Effet{ +public class EffetTarget extends Effet{ + private Joueur target; + public EffetTarget(Action action) { super(action); } + + public void setTarget(Joueur target) { + this.target = target; + } - public abstract void utiliser(Joueur joueur); + public void utiliser(Joueur joueur) { + this.getAction().affecte(joueur, target); + } } diff --git a/src/main/Joueur.java b/src/main/Joueur.java index 301a341..fa58d9f 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -108,8 +108,8 @@ public class Joueur { if(blessure > 0) { - j2.addStat(PLAYER_HP, -blessure); - //this.cartePersonnage.attaquer(j2); + j2.addToStat(PLAYER_HP, -blessure); + this.cartePersonnage.attaquer(j2, blessure); } } @@ -125,7 +125,7 @@ public class Joueur { return nbToursImmune > 0 ? 0 : 1; } - private void addStat(String key, int valeur) + public void addToStat(String key, int valeur) { int valeurBase = this.getStat(key); this.setStat(Joueur.PLAYER_HP,valeurBase+valeur); diff --git a/src/personnage/Allie.java b/src/personnage/Allie.java index 3d564c1..1f0637d 100644 --- a/src/personnage/Allie.java +++ b/src/personnage/Allie.java @@ -46,4 +46,10 @@ public class Allie extends Unique{ } } + @Override + public void attaquer(Joueur j, int blessure) { + + + } + } diff --git a/src/personnage/Bob.java b/src/personnage/Bob.java index f80453f..b953c8e 100644 --- a/src/personnage/Bob.java +++ b/src/personnage/Bob.java @@ -2,6 +2,8 @@ package personnage; import condition.Condition; import condition.ConditionStatistiques; +import effet.EffetTarget; +import effet.action.ActionVoler; import main.Joueur; public class Bob extends CartePersonnage{ @@ -10,16 +12,32 @@ public class Bob extends CartePersonnage{ super(nom,desc, hp, joueur); Condition condition = new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_NB_EQUIPEMENTS, 5, ConditionStatistiques.MORE); this.setCondition(condition); + + + EffetTarget effet = new EffetTarget(new ActionVoler()); + this.setEffet(effet); } - - public void attaquer(Joueur j) { + @Override + public void attaquer(Joueur j, int attaque) { + if(attaque >= 2 && j.getRevele()) { + + Joueur thisJoueur = this.getJoueur(); + + if(thisJoueur.choisir()) { + ((EffetTarget)this.getEffet()).setTarget(j); + utiliser(); + } + } } @Override public void utiliser() { - // TODO Auto-generated method stub - + Joueur j = this.getJoueur(); + this.getEffet().utiliser(j); } + + + } diff --git a/src/personnage/CartePersonnage.java b/src/personnage/CartePersonnage.java index 66346df..724ad2c 100644 --- a/src/personnage/CartePersonnage.java +++ b/src/personnage/CartePersonnage.java @@ -7,30 +7,28 @@ public abstract class CartePersonnage extends CarteCondition { private int pv; private Joueur joueur; - public CartePersonnage(String nom, String description, int pv, Joueur joueur) { super(nom, description); this.pv = pv; this.joueur = joueur; } - public abstract void utiliser(); - public void attaquer(Joueur j) {}; + public abstract void attaquer(Joueur j, int blessure); public boolean victoire(){ - return false; - } + return this.getCondition().isTrue(this.joueur); + } public Joueur getJoueur() { return joueur; - }; + } public void setJoueur(Joueur j) { joueur=j; - }; + } public void deplacer() { diff --git a/src/personnage/Charles.java b/src/personnage/Charles.java index 9267706..d451a68 100644 --- a/src/personnage/Charles.java +++ b/src/personnage/Charles.java @@ -5,11 +5,10 @@ import effet.EffetSelf; import effet.action.Action; import effet.action.ActionAltererStatistiquesJoueur; import main.Joueur; +import main.Plateau; public class Charles extends CartePersonnage{ - //constructeur - public Charles(String nom, int hp, Joueur joueur) { super(nom, nom, hp, joueur); @@ -19,13 +18,14 @@ public class Charles extends CartePersonnage{ } - //m�thode - public void attaquer(Joueur j) { - super.attaquer(j); - if(this.getJoueur().getRevele()) - { - utiliser(this.getJoueur()); - super.attaquer(j); + public void attaquer(Joueur j, int blessure) { + + if(this.getJoueur().getRevele()){ + + // TODO Choisir effet + Plateau p = j.getPlateau(); + utiliser(); + p.attaquer(this.getJoueur(), j); } } diff --git a/src/personnage/Daniel.java b/src/personnage/Daniel.java index 9fcf963..f786c6d 100644 --- a/src/personnage/Daniel.java +++ b/src/personnage/Daniel.java @@ -15,9 +15,7 @@ public class Daniel extends CartePersonnage{ public Daniel(String nom, String desc ,int hp, Joueur joueur) throws Exception { super(nom,desc, hp, joueur); - - int nbShadow = joueur.getPlateau().getStat(Plateau.NB_SHADOWS); - + List conditions = new ArrayList(); List conditions2 = new ArrayList(); @@ -36,6 +34,12 @@ public class Daniel extends CartePersonnage{ @Override public void utiliser() { + // TODO Listener mort + + } + + @Override + public void attaquer(Joueur j, int blessure) { // TODO Auto-generated method stub } diff --git a/src/personnage/Emi.java b/src/personnage/Emi.java index bb7c630..406915f 100644 --- a/src/personnage/Emi.java +++ b/src/personnage/Emi.java @@ -22,4 +22,10 @@ public class Emi extends CartePersonnage{ } + @Override + public void attaquer(Joueur j, int blessure) { + // TODO Auto-generated method stub + + } + } diff --git a/src/personnage/Franklin.java b/src/personnage/Franklin.java index fd2c617..dc7c336 100644 --- a/src/personnage/Franklin.java +++ b/src/personnage/Franklin.java @@ -2,6 +2,7 @@ package personnage; import condition.WinConditionHunter; import main.Joueur; +import main.Plateau; public class Franklin extends Unique{ @@ -11,9 +12,24 @@ public class Franklin extends Unique{ this.setCondition(new WinConditionHunter()); } - //m�thode - public void deplacer() { + @Override + public void attaquer(Joueur j, int blessure) { + // TODO Auto-generated method stub + + } + + @Override + public void utiliser() { + Joueur joueur = this.getJoueur(); + + if(this.isCapaciteUsed() && joueur.getRevele()) { + Plateau p = joueur.getPlateau(); + int roll = p.roll6(); + + Joueur joueur2 = joueur.choisirTous(); + joueur2.addToStat(Joueur.PLAYER_HP, -roll); + } } } diff --git a/src/personnage/Georges.java b/src/personnage/Georges.java index b13b89a..cf96034 100644 --- a/src/personnage/Georges.java +++ b/src/personnage/Georges.java @@ -2,18 +2,33 @@ package personnage; import condition.WinConditionHunter; import main.Joueur; +import main.Plateau; public class Georges extends Unique{ - //constructeur public Georges(String nom, int hp, Joueur joueur) { super(nom, nom, hp, joueur); this.setCondition(new WinConditionHunter()); } - //m�thode - public void deplacer() { + @Override + public void attaquer(Joueur j, int blessure) { + // TODO Auto-generated method stub + + } + + @Override + public void utiliser() { + Joueur joueur = this.getJoueur(); + + if(this.isCapaciteUsed() && joueur.getRevele()) { + Plateau p = joueur.getPlateau(); + int roll = p.roll4(); + + Joueur joueur2 = joueur.choisirTous(); + joueur2.addToStat(Joueur.PLAYER_HP, -roll); + } } } diff --git a/src/personnage/LoupGarou.java b/src/personnage/LoupGarou.java index 136b3c7..6cfcaa3 100644 --- a/src/personnage/LoupGarou.java +++ b/src/personnage/LoupGarou.java @@ -21,4 +21,10 @@ public class LoupGarou extends CartePersonnage { // TODO Auto-generated method stub } + + @Override + public void attaquer(Joueur j, int blessure) { + // TODO Auto-generated method stub + + } } diff --git a/src/personnage/Metamorphe.java b/src/personnage/Metamorphe.java index b5cb46c..e79b538 100644 --- a/src/personnage/Metamorphe.java +++ b/src/personnage/Metamorphe.java @@ -16,4 +16,10 @@ public class Metamorphe extends CartePersonnage{ } + @Override + public void attaquer(Joueur j, int blessure) { + // TODO Auto-generated method stub + + } + } diff --git a/src/personnage/Unique.java b/src/personnage/Unique.java index de7ee72..0548c11 100644 --- a/src/personnage/Unique.java +++ b/src/personnage/Unique.java @@ -2,7 +2,7 @@ package personnage; import main.Joueur; -public class Unique extends CartePersonnage{ +public abstract class Unique extends CartePersonnage{ private boolean capaciteUsed; diff --git a/src/personnage/Vampire.java b/src/personnage/Vampire.java index 024744c..583438d 100644 --- a/src/personnage/Vampire.java +++ b/src/personnage/Vampire.java @@ -31,9 +31,8 @@ public class Vampire extends CartePersonnage{ * @param j Le joueur qui subit l'attaque * @return void */ - public void attaquer(Joueur j) { + public void attaquer(Joueur j, int blessure) { - super.attaquer(j); if(this.getJoueur().getRevele()) { utiliser(this.getJoueur());