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());
+ }
}
}