diff --git a/src/carte/CarteLieuMultiple.java b/src/carte/CarteLieuMultiple.java index cb35003..3a7c6be 100644 --- a/src/carte/CarteLieuMultiple.java +++ b/src/carte/CarteLieuMultiple.java @@ -24,7 +24,7 @@ public class CarteLieuMultiple extends CarteLieu{ * @param j Appel la méthode utiliser de effet sur le joueur j */ public void utiliser(Joueur j) { - Pioche p = (Pioche) j.choisir(pioches); + Pioche p = (Pioche) j.choisir(pioches, Pioche.class); System.out.println(pioches+ " "+p); System.out.println(p.getStack()); Carte c = p.piocher(); diff --git a/src/effet/EffetChoisirEffet.java b/src/effet/EffetChoisirEffet.java index 300054c..9e171ea 100644 --- a/src/effet/EffetChoisirEffet.java +++ b/src/effet/EffetChoisirEffet.java @@ -17,8 +17,7 @@ public class EffetChoisirEffet extends Effet{ @Override public void utiliser(Joueur joueur) { - Effet effet = (Effet) joueur.choisir(effets); - + Effet effet = (Effet) joueur.choisir(effets,Effet.class); effet.utiliser(joueur); } diff --git a/src/effet/action/ActionVoler.java b/src/effet/action/ActionVoler.java index e793038..09d100a 100644 --- a/src/effet/action/ActionVoler.java +++ b/src/effet/action/ActionVoler.java @@ -32,22 +32,18 @@ public class ActionVoler extends Action{ @Override public void affecte(Joueur j1, Joueur j2) { - if(this.choix) { List equipements = j2.getEquipements(); // J1 choisit quel équipement voler - CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements); - + CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements, CarteEquipement.class); j1.voler(j2,equipement); }else { List equipements = j1.getEquipements(); - // J1 choisit quel équipement voler - CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements); - + CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements,CarteEquipement.class); j2.voler(j1,equipement); } diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index d3205ba..4aa3789 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -109,7 +109,18 @@ public class GestionnaireJeu { return false; } - public CarteEquipement choisirEquipementVole(Joueur joueur) { + @SuppressWarnings("unchecked") + public Object choisir(Joueur joueur, List list, Class cls) { + + + + if(cls == CarteEquipement.class) { + return choisirEquipementVole(joueur, (List) list); + } + return list.get(0); + } + + public CarteEquipement choisirEquipementVole(Joueur joueur, List lce) { Platform.runLater(() -> { try { pc.afficherChoisirEquipementVole(joueur); @@ -140,7 +151,6 @@ public class GestionnaireJeu { } public void waitPlateau() { - synchronized(plateau) { try { plateau.wait(); @@ -204,10 +214,5 @@ public class GestionnaireJeu { public RessourceLoader getRessourceLoader() { return this.ressourceLoader; - } - - - - - + } } diff --git a/src/main/Joueur.java b/src/main/Joueur.java index 3d360bf..4959c59 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -4,7 +4,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import carte.Carte; import carte.CarteEquipement; import carte.CarteLieu; import effet.Effet; @@ -226,24 +225,25 @@ public class Joueur { } public boolean hasOpponents() { + List joueursRange = this.getJoueursRange(); + return !joueursRange.isEmpty(); + } + + public List getJoueursRange() { CarteLieu cl = this.carteLieu; List joueurs = new ArrayList(); - joueurs.addAll(cl.getJoueurs()); joueurs.addAll(cl.getJoueursAdjacents()); joueurs.remove(this); - - return !joueurs.isEmpty(); + return joueurs; } - - - + public boolean choisir() { return this.plateau.choisir(this); } - public Object choisir(List list) { - return list.get(0); + public Object choisir(List adjacents,Class cls) { + return this.plateau.choisir(this,adjacents, cls); } public Joueur choisirAdjacents() { @@ -254,4 +254,5 @@ public class Joueur { return this.plateau.choisirParmisTous(this); } + } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index 12876af..e0d034a 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import carte.Carte; +import carte.CarteEquipement; import carte.CarteLieu; import carte.CarteLieuMultiple; import carte.CarteLieuType; @@ -265,6 +266,7 @@ public class Plateau extends Thread{ while(true) { Joueur currentJoueur = this.joueurs.get(i % nbJoueurs); + currentJoueur.choisir(new ArrayList(), CarteEquipement.class); System.out.println("\n\n\n\n\n"); System.out.println("Au tour de "+currentJoueur.getNom()); System.out.println("Lancement des dés."); @@ -287,8 +289,8 @@ public class Plateau extends Thread{ System.out.println("Souhaitez vous attaquer quelqu'un ?"); if(currentJoueur.choisir()){ if(currentJoueur.hasOpponents()) { - List adjacents = currentJoueur.getJoueursAdjacents(); - Joueur cible = (Joueur) currentJoueur.choisir(adjacents); + List adjacents = currentJoueur.getJoueursRange(); + Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Joueur.class); attaquer(currentJoueur,cible); if(isPartieTerminee()) break; }else { @@ -459,4 +461,8 @@ public class Plateau extends Thread{ gj.updateVieJoueur(joueur,damage); } + + public Object choisir(Joueur joueur, List list, Class cls) { + return gj.choisir(joueur,list,cls); + } } diff --git a/tests/condition/ConditionClassPersonnageTest.java b/tests/condition/ConditionClassPersonnageTest.java index 4b965d8..3110780 100644 --- a/tests/condition/ConditionClassPersonnageTest.java +++ b/tests/condition/ConditionClassPersonnageTest.java @@ -43,8 +43,7 @@ class ConditionClassPersonnageTest { @Test public void conditionClass_ListClassVide_RenvoieFalse() throws Exception { - - + List> classes = new ArrayList>(); ConditionClassPersonnage cc = new ConditionClassPersonnage(classes); @@ -54,7 +53,4 @@ class ConditionClassPersonnageTest { assertFalse(cc.isTrue(j)); } - - - }