From 80f7266ffb16a266a651417ea7c2e412ab0a92a2 Mon Sep 17 00:00:00 2001 From: Paul Gross Date: Wed, 13 May 2020 10:28:02 +0200 Subject: [PATCH] Capacite personnage thread --- src/ihm/controller/JoueurIHM.java | 39 ++++++++++++++++++++++++++++--- src/main/GestionnaireJeu.java | 5 ++-- src/main/Joueur.java | 6 +++++ src/personnage/Emi.java | 2 +- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/ihm/controller/JoueurIHM.java b/src/ihm/controller/JoueurIHM.java index 3944b78..bfdd42c 100644 --- a/src/ihm/controller/JoueurIHM.java +++ b/src/ihm/controller/JoueurIHM.java @@ -3,6 +3,7 @@ package ihm.controller; import carte.CarteEquipement; import database.RessourceLoader; import ihm.ImageViewEquipement; +import javafx.application.Platform; import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Label; @@ -51,6 +52,8 @@ public class JoueurIHM { initZoneEquipement(); } + + private void initZoneEquipement() { HBox hb = getPaneEquipement(); @@ -67,8 +70,8 @@ public class JoueurIHM { GridPane gp = (GridPane) iv.getParent(); iv.setImage(im); iv.fitHeightProperty().bind(gp.heightProperty()); - // initButtonEffect(btn); - btn.setDisable(true); + initButtonEffect(btn); + //btn.setDisable(true); btn.setText("Utiliser Effet"); estRevele = true; }); @@ -119,12 +122,42 @@ public class JoueurIHM { btn.setOnAction(click -> { System.out.println(this.joueur.getCartePersonnage().getNom() + " va user de son pouvoir"); - this.joueur.getCartePersonnage().utiliser(); + threadUtiliserCapacite(); System.out.println(this.joueur.getCartePersonnage().getNom() + " a réussi à utiliser son pouvoir"); btn.setDisable(true); }); } + + private void utiliserCapacite() { + AnchorPane save = getZoneJoueur(); + joueur.utiliserCapacite(); + Pane pane = null; + Platform.runLater(() -> { + Pane p = pane; + if(save != null && save.getChildren().size() > 0) { + p = (Pane) save.getChildren().get(0); + } + + if(p != null) { + setZoneJoueur(p); + }}); + } + + private void threadUtiliserCapacite() { + Runnable task = new Runnable() { + + @Override + public void run() { + utiliserCapacite(); + } + }; + + Thread thread = new Thread(task); + thread.setDaemon(true); + thread.start(); + } + public AnchorPane getZoneJoueur() { return (AnchorPane) zoneJoueur.getChildren().get(1); } diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index eb4b70c..fa0cf18 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -226,9 +226,10 @@ public class GestionnaireJeu { return null; } public void waitPlateau() { - synchronized(plateau) { + Thread currentThread = Thread.currentThread(); + synchronized(currentThread) { try { - plateau.wait(); + currentThread.wait(); } catch (InterruptedException e) { } diff --git a/src/main/Joueur.java b/src/main/Joueur.java index ba95a6a..ec7447e 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -272,6 +272,12 @@ public class Joueur { } + public void utiliserCapacite() { + if(revele) { + this.cartePersonnage.utiliser(); + } + } + diff --git a/src/personnage/Emi.java b/src/personnage/Emi.java index 0a593a7..ce43a2e 100644 --- a/src/personnage/Emi.java +++ b/src/personnage/Emi.java @@ -34,6 +34,6 @@ public class Emi extends CartePersonnage{ public void utiliser() { - this.getJoueur().deplacer(this.getJoueur().getCarteLieu().getVoisin()); + //this.getJoueur().deplacer(this.getJoueur().getCarteLieu().getVoisin()); } }