diff --git a/src/effet/ActionAltererStatistiquesJoueur.java b/src/effet/ActionAltererStatistiquesJoueur.java index 2a4f5ab..363e1c3 100644 --- a/src/effet/ActionAltererStatistiquesJoueur.java +++ b/src/effet/ActionAltererStatistiquesJoueur.java @@ -6,6 +6,24 @@ public class ActionAltererStatistiquesJoueur { private int valeur; private boolean ajouter; + + /** + * Constructeur ActionAltererStatistiquesJoueur + * @param key Le clé qui correspond à la valeur à modifier + * @param valeur La valeur + * @param ajouter Permet d'ajouter ou non "valeur" à la valeur précendente + *

+ * Exemple : + *

+ * ActionAltererStatistiquesJoueur("PV", -2, true) + *
+ * Fait subir 2 PV's de dégâts au joueur + *

+ * ActionAltererStatistiquesJoueur("PV", 2, false) + *
+ * Change les PV's du joueur à 2 + * + */ public ActionAltererStatistiquesJoueur(String key, int valeur, boolean ajouter) { this.key = key; @@ -13,6 +31,13 @@ public class ActionAltererStatistiquesJoueur { this.ajouter = ajouter; } + + /** + * Lance l'action de modification de statistiques + * @param j1 Le joueur qui modifie + * @param j2 Le joueur dont les statistiques sont modifiées + * @return void + */ public void affecter(Joueur j1, Joueur j2) { if(ajouter) @@ -21,7 +46,6 @@ public class ActionAltererStatistiquesJoueur { }else { j2.setStat(key, valeur); } - } } diff --git a/src/effet/ActionAttaquer.java b/src/effet/ActionAttaquer.java new file mode 100644 index 0000000..3c7d9ef --- /dev/null +++ b/src/effet/ActionAttaquer.java @@ -0,0 +1,18 @@ +package effet; + +import main.Joueur; + +public class ActionAttaquer extends Action { + + /** + * Lance l'action d'attaquer + * @param j1 Le joueur qui attaque + * @param j2 Le joueur qui subit l'attaque + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + j1.attaquer(j2); + } + +} diff --git a/src/effet/ActionMultiple.java b/src/effet/ActionMultiple.java index 0e70df3..093198a 100644 --- a/src/effet/ActionMultiple.java +++ b/src/effet/ActionMultiple.java @@ -1,13 +1,33 @@ package effet; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -public class ActionMultiple { +import main.Joueur; + +public class ActionMultiple extends Action{ private List actions; public ActionMultiple(Action...actions) { + super(); + this.actions = new ArrayList(Arrays.asList(actions)); + } + + /** + * Lance l'action d'activer toutes les actions contenues dans ActionMultiple. + * @param j1 Le joueur qui lance l'action + * @param j2 Le joueur qui subit l'action + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + for(Action action : actions) { + + action.affecte(j1, j2); + } } } diff --git a/src/effet/ActionPiocher.java b/src/effet/ActionPiocher.java new file mode 100644 index 0000000..67b7906 --- /dev/null +++ b/src/effet/ActionPiocher.java @@ -0,0 +1,22 @@ +package effet; + +import main.Joueur; + +public class ActionPiocher extends Action{ + + public ActionPiocher() { + super(); + } + + /** + * Lance l'action de piocher une carte. + * @param j1 Le joueur qui lance l'action + * @param j2 Le joueur qui subit l'action + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + j2.piocher(); + } + +} diff --git a/src/effet/ActionVoler.java b/src/effet/ActionVoler.java new file mode 100644 index 0000000..7a791f5 --- /dev/null +++ b/src/effet/ActionVoler.java @@ -0,0 +1,28 @@ +package effet; + +import java.util.List; + +import main.Equipement; +import main.Joueur; + +public class ActionVoler extends Action{ + + + /** + * Lance l'action de voler une carte équipement. + * @param j1 Le joueur qui vol + * @param j2 Le joueur volé + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + + List equipements = j2.getEquipements(); + + // J1 choisit quel équipement voler + Equipement equipement = j1.choisir(equipements); + + j1.voler(j2,equipement); + + } +} diff --git a/src/effet/EffetChoisirCible.java b/src/effet/EffetChoisirCible.java new file mode 100644 index 0000000..8525626 --- /dev/null +++ b/src/effet/EffetChoisirCible.java @@ -0,0 +1,21 @@ +package effet; + +import main.Joueur; + +public class EffetChoisirCible extends Effet{ + + public EffetChoisirCible(Action action) { + super(action); + } + + @Override + public void utiliser(Joueur joueur) { + + Joueur j2 = joueur.choisirAdjacents(); + Action action = this.getAction(); + + action.affecte(joueur, j2); + + } + +} diff --git a/src/effet/EffetChoisirEffet.java b/src/effet/EffetChoisirEffet.java new file mode 100644 index 0000000..b1217e0 --- /dev/null +++ b/src/effet/EffetChoisirEffet.java @@ -0,0 +1,22 @@ +package effet; + +import main.Joueur; + +public class EffetChoisirEffet extends Effet{ + + private Effet[] effets; + + public EffetChoisirEffet(Effet ...effets) { + super(null); + this.effets = effets; + } + + @Override + public void utiliser(Joueur joueur) { + + Effet effet = joueur.choisir(effets); + + effet.utiliser(joueur); + } + +} diff --git a/src/effet/EffetCiblerAdjacents.java b/src/effet/EffetCiblerAdjacents.java index bc042c1..de0c6ee 100644 --- a/src/effet/EffetCiblerAdjacents.java +++ b/src/effet/EffetCiblerAdjacents.java @@ -2,8 +2,13 @@ package effet; import main.Joueur; import java.util.List; -public class EffetCiblerAdjacents extends EffetTarget{ +public class EffetCiblerAdjacents extends Effet{ + public EffetCiblerAdjacents(Action action) { + super(action); + } + + @Override public void utiliser(Joueur joueur) { diff --git a/src/effet/EffetCiblerTous.java b/src/effet/EffetCiblerTous.java new file mode 100644 index 0000000..c5dd8de --- /dev/null +++ b/src/effet/EffetCiblerTous.java @@ -0,0 +1,26 @@ +package effet; + +import java.util.List; + +import main.Joueur; +import main.Plateau; + +public class EffetCiblerTous extends Effet { + + public EffetCiblerTous(Action action) { + super(action); + } + + @Override + public void utiliser(Joueur joueur) { + Plateau p = joueur.getPlateau(); + List joueurs = p.getJoueurs(); + Action action = this.getAction(); + + for(Joueur j : joueurs) + { + action.affecte(joueur, j); + } + } + +} diff --git a/src/effet/EffetSelf.java b/src/effet/EffetSelf.java index 0e27e3d..608f553 100644 --- a/src/effet/EffetSelf.java +++ b/src/effet/EffetSelf.java @@ -4,9 +4,12 @@ import main.Joueur; public class EffetSelf extends Effet{ + public EffetSelf(Action action) { + super(action); + } + @Override public void utiliser(Joueur joueur) { - this.getAction().affecte(joueur, joueur); } diff --git a/src/effet/EffetTarget.java b/src/effet/EffetTarget.java deleted file mode 100644 index 69fa41b..0000000 --- a/src/effet/EffetTarget.java +++ /dev/null @@ -1,9 +0,0 @@ -package effet; - -import main.Joueur; - -public abstract class EffetTarget extends Effet{ - - public abstract void utiliser(Joueur joueur); - -} diff --git a/src/main/Joueur.java b/src/main/Joueur.java index aafc977..038eab0 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -3,12 +3,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import carte.CarteLieu; +import effet.Effet; + + + public class Joueur { private GestionnaireEquipements gestionnaireEquipements; - private String name; - private boolean revealed; - private boolean virtual; + private String nom; + private boolean revele; private Plateau plateau; // map keys @@ -21,10 +25,10 @@ public class Joueur { private Map stats; - public Joueur(String name) { - this.name = name; - this.revealed = false; - this.virtual = false; + public Joueur(String nom) { + this.nom = nom; + this.revele = false; + stats = new HashMap<>(); @@ -39,11 +43,7 @@ public class Joueur { //stats.put(PLAYER_IMMUNITY, 0); // immunité à certains effets? } - - public void setVirtual() { - this.virtual = true; - } - + //shadows, hunters ou neutre public String getEquipe() { return null; @@ -66,7 +66,48 @@ public class Joueur { // TODO Auto-generated method stub return null; } - - + + public List getEquipements() { + // TODO Auto-generated method stub + return null; + } + + public void voler(Joueur j2, Equipement equipement) { + // TODO Auto-generated method stub + + } + + public Equipement choisir(Equipement[] equipements) { + // TODO Auto-generated method stub + return null; + } + + public void piocher() { + // TODO Auto-generated method stub + + } + + public void attaquer(Joueur j2) { + // TODO Auto-generated method stub + + } + + public Plateau getPlateau() { + return this.plateau; + } + + public Joueur choisirAdjacents() { + // TODO Auto-generated method stub + return null; + } + + public Effet choisir(Effet[] effets) { + // TODO Auto-generated method stub + return null; + } + + public boolean getRevele() { + return this.revele; + } } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index 2de6124..fecc282 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -56,9 +56,6 @@ public class Plateau { } - public void choix(Choix choix) { - return 0; - } public Joueur selectionnerJoueur() { return new Joueur("0"); @@ -84,4 +81,8 @@ public class Plateau { public int roll6() { return (int) Math.floor(Math.random() * 5)+1; } + + public List getJoueurs() { + return this.joueurs; + } } diff --git a/src/personnage/Vampire.java b/src/personnage/Vampire.java index ebf8d58..33f6f6e 100644 --- a/src/personnage/Vampire.java +++ b/src/personnage/Vampire.java @@ -16,14 +16,21 @@ public class Vampire extends CartePersonnage{ public void utiliser(Joueur j) { - //this.getEffet().utiliser() + this.getEffet().utiliser(j); } - //m�thode + /** + * Lance l'action d'attaquer de Vampire + *

Efffet : + * @param j Le joueur qui subit l'attaque + * @return void + */ public void attaquer(Joueur j) { - // attaquer(j) - //utiliser(this.joueur); - + super.attaquer(j); + if(this.getJoueur().getRevele()) + { + utiliser(this.getJoueur()); + } } }