diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index 853c97a..1717d2e 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -56,6 +56,8 @@ public class PlateauController implements Initializable { private ChoisirBoolean cb; private ChoisirEquipement ce; + private ChoisirJoueur cj; + private Map mapRessourcesCartes; @@ -367,6 +369,17 @@ public class PlateauController implements Initializable { } + public void afficherChoisirJoueur(Joueur j) throws IOException { + final URL fxmlURL = getClass().getResource("/ihm/ressources/choixJoueurAttq.fxml"); + + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); + Pane root = (Pane)fxmlLoader.load(); + this.cj = fxmlLoader.getController(); + + JoueurIHM jihm = getJoueurIHM(j); + jihm.setZoneJoueur(root); + } public CarteEquipement getChoixEquipementVole(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); @@ -382,6 +395,14 @@ public class PlateauController implements Initializable { this.cb = null; jihm.getZoneJoueur().getChildren().setAll(); return result; + } + public Joueur getChoixJoueur(Joueur joueur) { + JoueurIHM jihm = getJoueurIHM(joueur); + int result = this.cj.getJoueurSelected(); + this.cj = null; + + jihm.getZoneJoueur().getChildren().setAll(); + return listJoueur.get(result); } public void deplacer(Joueur currentJoueur) { diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index 4aa3789..d6fc466 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -150,6 +150,37 @@ public class GestionnaireJeu { return null; } + public Joueur choisirJoueur(Joueur joueur) { + Platform.runLater(() -> { + try { + pc.afficherChoisir(joueur); + } catch (IOException e) { + e.printStackTrace(); + } + }); + + + + this.waitPlateau(); + + final FutureTask query = new FutureTask(new Callable() { + @Override + public Joueur call() throws Exception { + return pc.getChoixJoueur(joueur); + } + }); + + Platform.runLater(query); + + try { + return query.get(); + } catch (InterruptedException | ExecutionException e) { + + e.printStackTrace(); + } + + return null; + } public void waitPlateau() { synchronized(plateau) { try {