diff --git a/src/carte/CarteCondition.java b/src/carte/CarteCondition.java index d46ba89..9b059c7 100644 --- a/src/carte/CarteCondition.java +++ b/src/carte/CarteCondition.java @@ -12,7 +12,8 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{ * */ private static final long serialVersionUID = 903022795821166067L; - + private Condition condition; + public CarteCondition() { super("",""); this.condition = new Condition(); @@ -21,12 +22,11 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{ public CarteCondition(String nom, String description) { super(nom, description); - } - private Condition condition; + /* diff --git a/src/database/CreatingCardsTest.java b/src/database/CreatingCardsTest.java index 6b26d2b..7951a40 100644 --- a/src/database/CreatingCardsTest.java +++ b/src/database/CreatingCardsTest.java @@ -120,7 +120,7 @@ public class CreatingCardsTest { // Ténèbre // Araignée Sanguinaire - /* + DatabaseManager.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true))))); @@ -135,18 +135,18 @@ public class CreatingCardsTest { DatabaseManager.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true))))); - */ + // Dynamite // 21 // Hache tueuse - for(int i = 0; i <= 2; i++) { - DatabaseManager.queryInsertObject(22+i,new CarteEquipementStat(CartePiochable.Type.TENEBRE, + + DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); - } - /* + + DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); @@ -171,7 +171,7 @@ public class CreatingCardsTest { )); // 29 - */ + DatabaseManager.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE, new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)))); diff --git a/src/domaine/properties/langue.properties b/src/domaine/properties/langue.properties index 047e91d..8598bff 100644 --- a/src/domaine/properties/langue.properties +++ b/src/domaine/properties/langue.properties @@ -68,4 +68,27 @@ mode.claire=Mode clair musique=Musique langue=Langue parametre=Paramètres -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Enregistrer +quitter=Quitter +retour=Retour +vousetes=Vous êtes : +voulez.vous.faire.action=Voulez vous faire cette action ? +oui=oui +non=non +choisir.joueur.attaquer=Choisir un joueur à attaquer ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choisir un joueur à qui donner la carte vision +attaquer=Attaquer ! +voulez.vous.attaquer.joueur=Voulez-vous attaquer un joueur ? +arriver.sur.carte.lieux=Vous arrivez sur cette Carte Lieu +ok=Ok +pause=Pause +sons=Sons +jeux=Jeux +reprendre.partie=Reprendre la partie +quitter.jeu=Quitter le jeu +equipement=Equipements +glisser.barre=Glissez la barre +page.precedente=Page précédente +page.suivante=Page suivante +menu=Menu \ No newline at end of file diff --git a/src/domaine/properties/langue_en.properties b/src/domaine/properties/langue_en.properties index 8f02a49..93c13e3 100644 --- a/src/domaine/properties/langue_en.properties +++ b/src/domaine/properties/langue_en.properties @@ -69,4 +69,27 @@ mode.claire=Clear mode musique=Music langue=Language parametre=Setting -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Enregistrer +quitter=Exit +retour=Return +vousetes=Vous êtes : +voulez.vous.faire.action=Do you want to do this action? +oui=yes +non=no +choisir.joueur.attaquer=Choose a player to attack! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choose a player to give the vision card to +attaquer=Attack! +voulez.vous.attaquer.joueur=Do you want to attack a player? +arriver.sur.carte.lieux=You arrive on this Location Card +ok=Ok +pause=Pause +sons=Sounds +jeux=Game +reprendre.partie=Resume the game +quitter.jeu=Leave the game +equipement=Equipment +glisser.barre=Slide the bar +page.precedente=Previous page +page.suivante=Next page +menu=Menu \ No newline at end of file diff --git a/src/domaine/properties/langue_fr.properties b/src/domaine/properties/langue_fr.properties index 3b2ab86..d02a3d7 100644 --- a/src/domaine/properties/langue_fr.properties +++ b/src/domaine/properties/langue_fr.properties @@ -68,4 +68,27 @@ mode.claire=Mode clair musique=Musique langue=Langue parametre=Paramètre -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Enregistrer +quitter=Quitter +retour=Retour +vousetes=Vous êtes : +voulez.vous.faire.action=Voulez vous faire cette action ? +oui=oui +non=non +choisir.joueur.attaquer=Choisir un joueur à attaquer ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choisir un joueur à qui donner la carte vision +attaquer=Attaquer ! +voulez.vous.attaquer.joueur=Voulez-vous attaquer un joueur ? +arriver.sur.carte.lieux=Vous arrivez sur cette Carte Lieu +ok=Ok +pause=Pause +sons=Sons +jeux=Jeux +reprendre.partie=Reprendre la partie +quitter.jeu=Quitter le jeu +equipement=Equipements +glisser.barre=Glissez la barre +page.precedente=Page précédente +page.suivante=Page suivante +menu=Menu diff --git a/src/domaine/properties/langue_sp.properties b/src/domaine/properties/langue_sp.properties new file mode 100644 index 0000000..4664c59 --- /dev/null +++ b/src/domaine/properties/langue_sp.properties @@ -0,0 +1,94 @@ +jouer=Jugar +regles=Reglas +commencer.partie=Comienza el juego +entrez.nom.joueur= Ingrese los nombres de los jugadores +nombre.joueur.minimum=(Necesitas al menos 4 jugadores) +cocher.case=Cochez la case pour que le joueur soit un joueur virtuel +carte.personnage=Carte personnage +se.reveler=Se révéler +pas.de=Pas de +dégats=dégâts +reveler.et.soigner=Se révéler et soigner mes blessures +rien.faire=Ne rien faire +effet.carte=Effet carte +choisir.joueur.soigner=Choisissez un joueur que vous voulez soigner +joueur1.soigne.joueur2=Joueur 1 soigne Joueur 2 +lancer.de.des=Lancer les dés +choisr.joueur=Choisissez un joueur +joueur=Joueur +choisir.joueur.infliger.blessures=Choisissez un joueur à  qui infliger 2 blessures +carte.equipement.a.donner=Choisissez la carte équipement que vous allez donner +joueur.a.qui.donner.carte.equipement=Choisissez un joueur à  qui donner cette carte équipement +carte.equipement=Cartes équipements +choisir.equipement.a.voler=Choisissez un équipement à voler +carte.vision=Carte Vision +jouer.a.qui.donner.carte=Choisissez un joueur à  qui donner la carte. +carte=Carte +effet=Effets sonores : +carte.vue.par.joueur.pioche=Cette carte ne peut être vu que par le joueur qui la pioche. +voir.carte=Voir carte +recoit=reçoit +blessure=Blessures. +se.passe.rien=Il ne se passe rien. +au.tour.de=C'est au tour du +score.des.1=Score dés 1 +score.des.2=Score dés 2 +joueur1=Joueur 1 +joueur2=Joueur 2 +joueur3=Joueur 3 +joueur4=Joueur 4 +joueur5=Joueur 5 +joueur6=Joueur 6 +joueur7=Joueur 7 +joueur8=Joueur 8 +description.capacite.carte.lieux=Description capacité de la carte lieux +utiliser.capaciter.lieux=Utiliser la capacité du lieux +sauter.etape=Sauter cette étape +carte.lieux=Carte lieux +attaquer.joueur=Attaquer un autre joueur ! +piocher.carte=Piocher une carte +carte.tenebre=Carte ténêbre +carte.lumiere=Carte lumière +attaquer.ou.soigner=Attaquer un joueur ou se soigner de 2 blessures +ne.pas.attaqur=Ne pas attaquer +reveler.identite=révéler son identité! +c.est=C'est +faction=Faction : +utiliser.capacite=utilise sa capacité. +nom.personnages=Nom Personnage +votre.competence=Votre compétence : +retourner.carte=Retourner la carte +benediction=Bénediction +premier.secours=Premier secours +voler.equipement.joueur=Volez un équipement au joueurs de votre choix +choisir.carte.equipement.a.voler=Cliquez sur la carte équipement que vous voulez voler +consequence=conséquence +se.soigner=Se soigner +mode.claire=Mode clair +musique=Musique +langue=Langue +parametre=Paramètres +enregistrer=Enregistrer +quitter=Quitter +retour=Retour +vousetes=Vous êtes : +voulez.vous.faire.action=Voulez vous faire cette action ? +oui=oui +non=non +choisir.joueur.attaquer=Choisir un joueur à attaquer ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choisir un joueur à qui donner la carte vision +attaquer=Attaquer ! +voulez.vous.attaquer.joueur=Voulez-vous attaquer un joueur ? +arriver.sur.carte.lieux=Vous arrivez sur cette Carte Lieu +ok=Ok +pause=Pause +sons=Sons +jeux=Jeux +reprendre.partie=Reprendre la partie +quitter.jeu=Quitter le jeu +equipement=Equipements +glisser.barre=Glissez la barre +page.precedente=Page précédente +page.suivante=Page suivante +menu=Menu \ No newline at end of file diff --git a/src/effet/action/ActionAltererStatistiquesJoueur.java b/src/effet/action/ActionAltererStatistiquesJoueur.java index 13c8770..9ef379f 100644 --- a/src/effet/action/ActionAltererStatistiquesJoueur.java +++ b/src/effet/action/ActionAltererStatistiquesJoueur.java @@ -46,7 +46,7 @@ public class ActionAltererStatistiquesJoueur extends Action{ { j2.addToStat(key, valeur); }else { - j2.setStat(key, valeur); + j2.updateStat(key, valeur); } } @@ -82,6 +82,6 @@ public class ActionAltererStatistiquesJoueur extends Action{ mot2 = " le "; } - return mot1+" "+valeur+" "+key+mot2+"joueur"; + return mot1+" "+Math.abs(valeur)+" "+key+mot2+"joueur"; } } diff --git a/src/ihm/controller/ChoisirEquipement.java b/src/ihm/controller/ChoisirEquipement.java index 7c4bb73..04cc17f 100644 --- a/src/ihm/controller/ChoisirEquipement.java +++ b/src/ihm/controller/ChoisirEquipement.java @@ -6,12 +6,19 @@ import java.util.List; import java.util.ResourceBundle; import carte.CarteEquipement; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.Initializable; +import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; +import javafx.util.Duration; +import main.Contexte; import main.GestionnaireJeu; +import main.Joueur; +import main.JoueurVirtuel; public class ChoisirEquipement implements Initializable{ @FXML private GridPane grilleEquipement; @@ -63,7 +70,6 @@ public class ChoisirEquipement implements Initializable{ iv.setFitHeight(100); iv.setFitHeight(100); iv.setPreserveRatio(true); - hbox.getChildren().add(iv); iv.setOnMouseClicked(e -> { equipementSelected = ce; @@ -71,4 +77,15 @@ public class ChoisirEquipement implements Initializable{ }); } } + + public void fireBtnIA(JoueurVirtuel jIA, Contexte c) { + Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> { + equipementSelected = jIA.choisirEquipement(equipements); + GestionnaireJeu.notifyPlateau(); + })); + timeline.play(); + + } + + } diff --git a/src/ihm/controller/ChoisirJoueur.java b/src/ihm/controller/ChoisirJoueur.java index 900feec..afc8685 100644 --- a/src/ihm/controller/ChoisirJoueur.java +++ b/src/ihm/controller/ChoisirJoueur.java @@ -120,6 +120,9 @@ public class ChoisirJoueur implements Initializable { case CHOISIR_VISION: titre.setText("Choisissez le joueur à qui passer la carte vision!"); break; + case VOLER_EQUIP: + titre.setText("Choisissez le joueur à qui voler un equipement!"); + break; default: } } diff --git a/src/ihm/controller/FinDePartieControlleur.java b/src/ihm/controller/FinDePartieControlleur.java new file mode 100644 index 0000000..621b02b --- /dev/null +++ b/src/ihm/controller/FinDePartieControlleur.java @@ -0,0 +1,59 @@ +package ihm.controller; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.ResourceBundle; + +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Label; +import javafx.scene.layout.Pane; +import main.Joueur; + +public class FinDePartieControlleur implements Initializable { + + @FXML private Pane rootPane; + @FXML private Label labelWinner; + + public static List listeWinner = new ArrayList(); + + /* Pour faire des tests + private Joueur j1 = new Joueur("j1"); + private Joueur j2 = new Joueur("j2"); + private Joueur j3 = new Joueur("j3"); +*/ + String names; + + @Override + public void initialize(URL arg0, ResourceBundle arg1) { + /* + listeWinner.add(j1); + listeWinner.add(j2); + listeWinner.add(j3); +*/ + + for (Joueur winner : listeWinner) { + if(names != null) { + names = names +"\n" + winner.getNom(); + } + else { + names = winner.getNom(); + } + + } + + + labelWinner.setText(names); + } + + public List getListeWinner() { + return listeWinner; + } + + public void setListeWinner(List listeWinner) { + FinDePartieControlleur.listeWinner = listeWinner; + } + + +} diff --git a/src/ihm/controller/JoueurIHM.java b/src/ihm/controller/JoueurIHM.java index ce5e35a..64a93ae 100644 --- a/src/ihm/controller/JoueurIHM.java +++ b/src/ihm/controller/JoueurIHM.java @@ -1,11 +1,13 @@ package ihm.controller; +import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import carte.CarteEquipement; import database.RessourceLoader; +import ihm.EffetSonore; import ihm.ImageViewEquipement; import javafx.application.Platform; import javafx.scene.Node; @@ -77,6 +79,10 @@ public class JoueurIHM { } private void actionReveler(Button btn) { + + InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + EffetSonore.playSoundEffect(fileSound1); + ImageView iv = this.getCartePersonnage(); System.out.println(this.joueur.getCartePersonnage()); Image im = this.pc.getImageCarte(this.joueur.getCartePersonnage()); @@ -106,7 +112,6 @@ public class JoueurIHM { iv.fitHeightProperty().bind(gp.heightProperty()); iv.fitHeightProperty().bind(gp.heightProperty()); } - }); iv.setOnMouseReleased(release -> { @@ -141,6 +146,9 @@ public class JoueurIHM { private void utiliserCapacite() { + InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + EffetSonore.playSoundEffect(fileSound1); + AnchorPane save = getZoneJoueur(); joueur.utiliserCapacite(); Pane pane = null; diff --git a/src/ihm/controller/LancerDes.java b/src/ihm/controller/LancerDes.java index 9ae38bc..05932e3 100644 --- a/src/ihm/controller/LancerDes.java +++ b/src/ihm/controller/LancerDes.java @@ -2,6 +2,7 @@ package ihm.controller; import java.util.Random; +import effet.action.Action; import ihm.Die; import ihm.DieImages; import javafx.animation.KeyFrame; @@ -27,17 +28,28 @@ public class LancerDes { private Contexte contexte; private int typeDe; private int[] rolls; - + private final static int LANCER_DE_4 = 0; private final static int LANCER_DE_6 = 1; private final static int LANCER_DES = 2; - - public LancerDes(int typeDe, int[] rolls, Contexte c){ + + public LancerDes(int typeDe, int[] rolls, Contexte c) { this.typeDe = typeDe; this.rolls = rolls; this.contexte = c; } - + + private Button interpret(String s) { + + String styles = "-fx-border-color: #e2e2e2;" + "-fx-border-width: 2;" + "-fx-background-radius: 0;" + + "-fx-background-color: #1d1d1d;" + "-fx-text-fill: #d8d8d8;" + + "-fx-background-insets: 0 0 0 0, 0, 1, 2;"; + + Button b = new Button(s); + b.setStyle(styles); + return b; + } + public VBox initLancer(Joueur joueur) { switch (typeDe) { case LANCER_DE_4: @@ -46,11 +58,10 @@ public class LancerDes { return initLancerD6(joueur); case LANCER_DES: return initLancerBoth(joueur); - default : + default: return null; } } - private VBox initLancerD4(Joueur j) { DieImages images = new DieImages(4); @@ -58,43 +69,39 @@ public class LancerDes { ImageView stackpane = die.getdieFace(); stackpane.setFitHeight(100); stackpane.setFitWidth(100); - Button btn = new Button(); + Button btn = interpret("Lancer dé"); Text txt = new Text("Lancez le dé"); - txt.setFont(Font.font(null, null, null, 12)); - txt.setFill(Color.WHITE); - btn.setText("Lancer dé"); + txt.setFont(Font.font(null, null, null, 12)); + txt.setFill(Color.WHITE); btn.setOnAction((ActionEvent event) -> { btn.setDisable(true);// Disable Button Random random = new Random(); Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(0.1), (actionEvent) -> { - int tempRandom = random.nextInt(4)+1; + int tempRandom = random.nextInt(4) + 1; die.setDieFace(tempRandom); })); - + timeline.setCycleCount(20); timeline.play(); timeline.setOnFinished(actionEvent -> { - + die.setDieFace(rolls[0]); - txt.setText("Vous avez obtenu "+rolls[0]); - Timeline timeline2 = new Timeline(new KeyFrame( - Duration.millis(2000), - ae -> { - - - GestionnaireJeu.notifyPlateau(); - })); - timeline2.play(); + txt.setText("Vous avez obtenu " + rolls[0]); + Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> { + + GestionnaireJeu.notifyPlateau(); + })); + timeline2.play(); + }); }); - }); - + HBox des = new HBox(stackpane); des.setAlignment(Pos.CENTER); - VBox root = new VBox(txt,des, new StackPane(btn)); + VBox root = new VBox(txt, des, new StackPane(btn)); root.setAlignment(Pos.CENTER); root.setSpacing(20); - if(j instanceof JoueurVirtuel) - btn.fire(); + if (j instanceof JoueurVirtuel) + btn.fire(); return root; } @@ -104,44 +111,41 @@ public class LancerDes { ImageView stackpane = die.getdieFace(); stackpane.setFitHeight(100); stackpane.setFitWidth(100); - Button btn = new Button(); + Button btn = interpret("Lancer dé"); Text txt = new Text("Lancez le dé"); - txt.setFont(Font.font(null, null, null, 12)); - txt.setFill(Color.WHITE); - btn.setText("Lancer dé"); + txt.setFont(Font.font(null, null, null, 12)); + txt.setFill(Color.WHITE); btn.setOnAction((ActionEvent event) -> { btn.setDisable(true);// Disable Button Random random = new Random(); Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.1), (actionEvent) -> { - int tempRandom = random.nextInt(6)+1; + int tempRandom = random.nextInt(6) + 1; die.setDieFace(tempRandom); })); - + timeline.setCycleCount(20); timeline.play(); timeline.setOnFinished(actionEvent -> { - + die.setDieFace(rolls[0]); - txt.setText("Vous avez obtenu "+rolls[0]); - Timeline timeline2 = new Timeline(new KeyFrame( - Duration.millis(2000), - ae -> { - GestionnaireJeu.notifyPlateau(); - })); - timeline2.play(); + txt.setText("Vous avez obtenu " + rolls[0]); + Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> { + GestionnaireJeu.notifyPlateau(); + })); + timeline2.play(); + }); }); - }); - + HBox des = new HBox(stackpane); des.setAlignment(Pos.CENTER); - VBox root = new VBox(txt,des, new StackPane(btn)); + VBox root = new VBox(txt, des, new StackPane(btn)); root.setAlignment(Pos.CENTER); root.setSpacing(20); - if(j instanceof JoueurVirtuel) + if (j instanceof JoueurVirtuel) btn.fire(); return root; } - + private VBox initLancerBoth(Joueur j) { DieImages images = new DieImages(6); DieImages images2 = new DieImages(4); @@ -153,49 +157,46 @@ public class LancerDes { stackpane2.setFitHeight(100); stackpane.setFitWidth(100); stackpane2.setFitWidth(100); - Button btn = new Button(); + Button btn = interpret("Lancer dés"); Text txt = new Text("Lancez les dés"); - txt.setFont(Font.font(null, null, null, 12)); - txt.setFill(Color.WHITE); - btn.setText("Lancer dés"); + txt.setFont(Font.font(null, null, null, 12)); + txt.setFill(Color.WHITE); btn.setOnAction((ActionEvent event) -> { btn.setDisable(true);// Disable Button Random random = new Random(); - + Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(.1), (actionEvent) -> { - int tempRandom = random.nextInt(6)+1; - int tempRandom2 = random.nextInt(4)+1; + int tempRandom = random.nextInt(6) + 1; + int tempRandom2 = random.nextInt(4) + 1; die.setDieFace(tempRandom); die2.setDieFace(tempRandom2); })); - + timeline.setCycleCount(20); timeline.play(); timeline.setOnFinished(actionEvent -> { - + die.setDieFace(rolls[1]); die2.setDieFace(rolls[0]); - - int result = rolls[0]+rolls[1]; - - txt.setText("Vous avez obtenu "+result); - Timeline timeline2 = new Timeline(new KeyFrame( - Duration.millis(2000), - ae -> { - GestionnaireJeu.notifyPlateau(); - - })); - timeline2.play(); + + int result = rolls[0] + rolls[1]; + + txt.setText("Vous avez obtenu " + result); + Timeline timeline2 = new Timeline(new KeyFrame(Duration.millis(2000), ae -> { + GestionnaireJeu.notifyPlateau(); + + })); + timeline2.play(); + }); + }); - - }); - + HBox des = new HBox(stackpane, stackpane2); des.setAlignment(Pos.CENTER); - VBox root = new VBox(txt,des, new StackPane(btn)); + VBox root = new VBox(txt, des, new StackPane(btn)); root.setAlignment(Pos.CENTER); root.setSpacing(20); - if(j instanceof JoueurVirtuel) + if (j instanceof JoueurVirtuel) btn.fire(); return root; } diff --git a/src/ihm/controller/MenuController.java b/src/ihm/controller/MenuController.java index 1539a6c..459f8e6 100644 --- a/src/ihm/controller/MenuController.java +++ b/src/ihm/controller/MenuController.java @@ -66,6 +66,10 @@ public class MenuController implements Initializable{ } @FXML public void quitterLappli(MouseEvent mouseEvent) throws IOException{ + + InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + EffetSonore.playSoundEffect(fileSound1); + System.exit(0); } diff --git a/src/ihm/controller/MenuJoueurController.java b/src/ihm/controller/MenuJoueurController.java index d8fd90d..9a6527a 100644 --- a/src/ihm/controller/MenuJoueurController.java +++ b/src/ihm/controller/MenuJoueurController.java @@ -26,7 +26,7 @@ public class MenuJoueurController implements Initializable{ public void changeZoneToScrollPaneJoueur(MouseEvent me) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/ScrollPaneJoueur.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); AnchorPane bp = fxmlLoader.load(); ImageView iv = ((ImageView)me.getSource()); diff --git a/src/ihm/controller/PiocherVisionController.java b/src/ihm/controller/PiocherVisionController.java index ab90dc9..56905cf 100644 --- a/src/ihm/controller/PiocherVisionController.java +++ b/src/ihm/controller/PiocherVisionController.java @@ -22,7 +22,7 @@ public class PiocherVisionController implements Initializable{ public void voirCarte(MouseEvent mouseEvent) throws IOException{ final URL fxmlURL = getClass().getResource("/ihm/ressources/jouer_Son_Tour_donner_vision.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane pane = fxmlLoader.load(); diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index ccea732..9fb3d04 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -1,6 +1,5 @@ package ihm.controller; - import java.awt.Dimension; import java.awt.image.BufferedImage; import java.io.IOException; @@ -27,6 +26,7 @@ import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; +import javafx.geometry.Pos; import javafx.scene.Group; import javafx.scene.Parent; import javafx.scene.control.Button; @@ -49,13 +49,16 @@ import main.Joueur; import main.JoueurVirtuel; public class PlateauController implements Initializable { - + private List listJoueur = new ArrayList(); private List joueursIHM; - - @FXML private AnchorPane rootPane; - @FXML private GridPane gridPaneVie; - @FXML public GridPane gridPaneLieux; + + @FXML + private AnchorPane rootPane; + @FXML + private GridPane gridPaneVie; + @FXML + public GridPane gridPaneLieux; private ChoisirBoolean cb; private ChoisirEquipement ce; @@ -63,130 +66,128 @@ public class PlateauController implements Initializable { private PiocherCarte pc; private LancerDes ld; - private static Map mapRessourcesCartes; - private static Map mapRessourcesDosCartes; - + private static Map mapRessourcesCartes; + private static Map mapRessourcesDosCartes; + public static int DICE_SIX = 1; public static int DICE_QUATRE = 0; public static int DICE_BOTH = 2; - - private final double RES = 200./2250.; + + private final double RES = 200. / 2250.; private ResourceBundle resourceBundle; - + /** * initialise les données du plateau */ @Override public void initialize(URL arg0, ResourceBundle arg1) { - //System.out.println("Création du plateau ..."); - + // System.out.println("Création du plateau ..."); + this.resourceBundle = arg1; this.joueursIHM = new ArrayList(); - GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu(); + GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu(); RessourceLoader rl = gj.getRessourceLoader(); - + Map map = gj.getMapJoueurs(); - - for(int i = 0 ; i < gridPaneVie.getChildren().size();i++) { - + + for (int i = 0; i < gridPaneVie.getChildren().size(); i++) { + Pane p = (Pane) gridPaneVie.getChildren().get(i); Label l = (Label) p.getChildren().get(1); - l.setText(i+""); - + l.setText(i + ""); + } - - for(int i : map.keySet()) { + + for (int i : map.keySet()) { System.out.println(i); - joueursIHM.add(new JoueurIHM(i,map.get(i),getPaneJoueur(i),new Color(Math.random(), Math.random(), Math.random(),1),gridPaneVie, gridPaneLieux,this)); + joueursIHM.add(new JoueurIHM(i, map.get(i), getPaneJoueur(i), + new Color(Math.random(), Math.random(), Math.random(), 1), gridPaneVie, gridPaneLieux, this)); } - - for(int i = 0; i cl = gj.getCartesLieux(); List ivs = this.getLieux(); - applyImages(cl,ivs); - + applyImages(cl, ivs); + } - - + private void applyImages(List cls, List ivs) { - + int size = cls.size(); - if(cls.size() == ivs.size()) { - - for(int i = 0; i < size; i++) { - + if (cls.size() == ivs.size()) { + + for (int i = 0; i < size; i++) { + CarteLieu cl = cls.get(i); ImageView iv = ivs.get(i); - + BufferedImage bi = mapRessourcesCartes.get(cl); Image image = RessourceLoader.toJavaFX(bi); - applyImageLieu(iv,image); - } - } + applyImageLieu(iv, image); + } + } } private void applyImageLieu(ImageView iv, Image im) { - + iv.setImage(im); Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); - iv.setFitWidth(RES*screenSize.width); - //iv.fitHeightProperty().bind(sp.heightProperty()); - //iv.fitWidthProperty().bind(sp.widthProperty()); - + iv.setFitWidth(RES * screenSize.width); + // iv.fitHeightProperty().bind(sp.heightProperty()); + // iv.fitWidthProperty().bind(sp.widthProperty()); + iv.setPreserveRatio(true); - //iv.fitWidthProperty().bind(sp.widthProperty()); + // iv.fitWidthProperty().bind(sp.widthProperty()); } - private Pane getPaneJoueur(int i) { - - System.out.println("i "+i); - int position = i%8; - HBox hb = (HBox) rootPane.getChildren().get(0); + private Pane getPaneJoueur(int i) { + + System.out.println("i " + i); + int position = i % 8; + HBox hb = (HBox) rootPane.getChildren().get(0); GridPane gp = null; - + // BAS - if(position < 2) { + if (position < 2) { VBox group = (VBox) hb.getChildren().get(1); gp = (GridPane) group.getChildren().get(2); - - //DROITE - }else if(position < 4) { - System.out.println("Oui"); - Group group = (Group) hb.getChildren().get(2); - gp = (GridPane) group.getChildren().get(0); - - //HAUT - }else if(position < 6) { - + + // DROITE + } else if (position < 4) { + System.out.println("Oui"); + Group group = (Group) hb.getChildren().get(2); + gp = (GridPane) group.getChildren().get(0); + + // HAUT + } else if (position < 6) { + VBox group = (VBox) hb.getChildren().get(1); gp = (GridPane) group.getChildren().get(0); - - //GAUCHE - }else if(position < 8) { + + // GAUCHE + } else if (position < 8) { Group group = (Group) hb.getChildren().get(0); gp = (GridPane) group.getChildren().get(0); - + } - - - return (Pane) gp.getChildren().get(i%2); + + return (Pane) gp.getChildren().get(i % 2); } - + private List getLieux() { - + List views = new ArrayList(); - for(int i = 0 ; i < gridPaneLieux.getChildren().size(); i++) { - + for (int i = 0; i < gridPaneLieux.getChildren().size(); i++) { + HBox p = (HBox) gridPaneLieux.getChildren().get(i); - for(int j = 0; j < p.getChildren().size(); j++) { + for (int j = 0; j < p.getChildren().size(); j++) { StackPane sp = (StackPane) p.getChildren().get(j); ImageView iv = (ImageView) sp.getChildren().get(0); views.add(iv); @@ -194,7 +195,7 @@ public class PlateauController implements Initializable { } return views; } - + /** * Affiche aux yeux de tous la carte personnage du joueur * @@ -203,28 +204,26 @@ public class PlateauController implements Initializable { public void seReveler(int numJoueur) throws IOException { System.out.println(listJoueur.get(numJoueur).getNom() + " se revele"); final URL fxmlURL = getClass().getResource("/ihm/ressources/Reveler_son_identite.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Parent root = fxmlLoader.load(); - - RevelationController rc = fxmlLoader.getController(); - rc.showInformation(listJoueur.get(numJoueur)); - + + RevelationController rc = fxmlLoader.getController(); + rc.showInformation(listJoueur.get(numJoueur)); + PopUp popup = new PopUp(root, "Consulter sa carte"); popup.display(); } - - - + public JoueurIHM getJoueurIHM(Joueur j) { - - for(JoueurIHM joueurIHM : joueursIHM) { - if(joueurIHM.getJoueur().equals(j)) return joueurIHM; + + for (JoueurIHM joueurIHM : joueursIHM) { + if (joueurIHM.getJoueur().equals(j)) + return joueurIHM; } return null; } - - + /** * Permet de consulter sa carte perssonage en cas d'oublie * @@ -233,18 +232,17 @@ public class PlateauController implements Initializable { public void consulterSaCarte(int numJoueur) throws IOException { System.out.println(listJoueur.get(numJoueur).getNom() + " consulte sa carte"); final URL fxmlURL = getClass().getResource("/ihm/ressources/afficher_carte_perso.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Parent root = fxmlLoader.load(); - - - AfficherCarteController acc = fxmlLoader.getController(); - acc.showInformation(listJoueur.get(numJoueur)); - + + AfficherCarteController acc = fxmlLoader.getController(); + acc.showInformation(listJoueur.get(numJoueur)); + PopUp popup = new PopUp(root, "Consulter sa carte"); popup.display(); } - + /** * Place les joueurs au bon endroit sur le plateau * @@ -252,164 +250,174 @@ public class PlateauController implements Initializable { */ public void placerJoueurs(Map j) { Set set = j.keySet(); - - for(int i = 0; i < 8; i++) { - if(!set.contains(i)) { + + for (int i = 0; i < 8; i++) { + if (!set.contains(i)) { getPaneJoueur(i).getChildren().setAll(); } } } public void rollDice(Joueur joueur, int typeDice, int[] rolls, Contexte c) { - - this.ld=new LancerDes(typeDice,rolls,c); + + this.ld = new LancerDes(typeDice, rolls, c); JoueurIHM jihm = getJoueurIHM(joueur); jihm.setZoneJoueur(ld.initLancer(joueur)); } public void afficherChoisir(Joueur j, Contexte contexte) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/choisirBoolean.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); + Pane root = (Pane) fxmlLoader.load(); this.cb = fxmlLoader.getController(); cb.setTitre(contexte); - if(j instanceof JoueurVirtuel) { - switch(contexte) { - case ACTIVER_EFFET_LIEU : + if (j instanceof JoueurVirtuel) { + switch (contexte) { + case ACTIVER_EFFET_LIEU: cb.fireBtnIAEffetLieu(); break; - case ATTAQUER : - cb.fireBtnIAattaquer((JoueurVirtuel)j, j.getJoueursRange()); + case ATTAQUER: + cb.fireBtnIAattaquer((JoueurVirtuel) j, j.getJoueursRange()); break; - case CHOISIR_VISION : - cb.fireBtnIAVision();; + case CHOISIR_VISION: + cb.fireBtnIAVision(); + ; break; } } JoueurIHM jihm = getJoueurIHM(j); jihm.setZoneJoueur(root); } - public void afficherChoisirEquipementVole(Joueur j, List lce) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2a)voler_equipement.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); + Pane root = (Pane) fxmlLoader.load(); this.ce = fxmlLoader.getController(); this.ce.setListCarteEquipements(lce); this.ce.initChoisirEquipement(); + if (j instanceof JoueurVirtuel) + this.ce.fireBtnIA((JoueurVirtuel) j, Contexte.VOLER_EQUIP); JoueurIHM jihm = getJoueurIHM(j); jihm.setZoneJoueur(root); } public void afficherAlterationVie(Joueur j, int valeur) throws IOException, InterruptedException { - + final URL fxmlURL = getClass().getResource("/ihm/ressources/AlterationVieZJ.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - AlterationVieZJ avzj = fxmlLoader.getController(); + Pane root = (Pane) fxmlLoader.load(); + AlterationVieZJ avzj = fxmlLoader.getController(); avzj.changeLabel(valeur); - - + JoueurIHM jihm = getJoueurIHM(j); Pane p = (Pane) jihm.getZoneJoueur(); Pane pane = new Pane(); - - if(p.getChildren() != null && p.getChildren().size() > 0) { - + + if (p.getChildren() != null && p.getChildren().size() > 0) { + pane = (Pane) p.getChildren().get(0); } - + jihm.setZoneJoueur(root); Pane pp = pane; - Timeline timeline = new Timeline(new KeyFrame( - Duration.millis(1000), - ae -> { - - jihm.resetZoneJoueur(); - jihm.setZoneJoueur(pp); - GestionnaireJeu.notifyPlateau(); + Timeline timeline = new Timeline(new KeyFrame(Duration.millis(1000), ae -> { + + jihm.resetZoneJoueur(); + jihm.setZoneJoueur(pp); + GestionnaireJeu.notifyPlateau(); })); timeline.play(); } - + public void afficherLieu(Joueur j) throws IOException { - + final URL fxmlURL = getClass().getResource("/ihm/ressources/LieuZJ.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - LieuZJ lzj = fxmlLoader.getController(); + Pane root = (Pane) fxmlLoader.load(); + LieuZJ lzj = fxmlLoader.getController(); lzj.setImageView(this.getImageCarte(j.getCarteLieu())); - if(j instanceof JoueurVirtuel) lzj.fireBtnIA(); + if (j instanceof JoueurVirtuel) + lzj.fireBtnIA(); JoueurIHM jihm = getJoueurIHM(j); - if(jihm.getPosition()==4 || jihm.getPosition()==5) { - SplitPane s=(SplitPane)root.getChildren().get(0); - AnchorPane a=(AnchorPane)s.getItems().get(0); - VBox v= (VBox)a.getChildren().get(0); - AnchorPane b=(AnchorPane)s.getItems().get(1); - ImageView i= (ImageView)b.getChildren().get(0); + if (jihm.getPosition() == 4 || jihm.getPosition() == 5) { + SplitPane s = (SplitPane) root.getChildren().get(0); + AnchorPane a = (AnchorPane) s.getItems().get(0); + VBox v = (VBox) a.getChildren().get(0); + AnchorPane b = (AnchorPane) s.getItems().get(1); + ImageView i = (ImageView) b.getChildren().get(0); v.setRotate(180); i.setRotate(180); s.setRotate(180); } - + jihm.setZoneJoueur(root); } + public void afficherChoisirJoueur(Joueur j, List joueurs, Contexte contexte) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/choixJoueurAttq.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - + Pane root = (Pane) fxmlLoader.load(); + List joueursIHM = toJoueursIHM(joueurs); - + this.cj = fxmlLoader.getController(); cj.setTitre(contexte); this.cj.setListJoueursIHM(joueursIHM); this.cj.initButtons(); - if(j instanceof JoueurVirtuel) - cj.fireBtnIA((JoueurVirtuel)j, contexte); + if (j instanceof JoueurVirtuel) + cj.fireBtnIA((JoueurVirtuel) j, contexte); JoueurIHM jihm = getJoueurIHM(j); jihm.setZoneJoueur(root); } - private List toJoueursIHM(List joueurs) { - - List list = new ArrayList(); - - for(Joueur j : joueurs) { - list.add(getJoueurIHM(j)); - } - - return list; - } + private List toJoueursIHM(List joueurs) { + + List list = new ArrayList(); + + for (Joueur j : joueurs) { + list.add(getJoueurIHM(j)); + } + + return list; + } public void afficherPiocher(Joueur j) throws IOException { - + final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); + Pane root = (Pane)fxmlLoader.load(); - //CartePiochable lzj = fxmlLoader.getController(); - //lzj.setImageView(this.getImageCarte(j.getCarteLieu())); JoueurIHM jihm = getJoueurIHM(j); jihm.setZoneJoueur(root); } -public void afficherEffet(Joueur j) throws IOException { + + public void afficherEffet(Joueur j) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml"); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); + final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); + Pane root = (Pane)fxmlLoader.load(); + + JoueurIHM jihm = getJoueurIHM(j); + jihm.setZoneJoueur(root); + } + + public void afficherFinDePartie(List listeJoueursGagnants) throws IOException { + + final URL fxmlURL = getClass().getResource("/ihm/ressources/Fin_De_Partie.fxml"); final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane root = (Pane)fxmlLoader.load(); - //CartePiochable lzj = fxmlLoader.getController(); - //lzj.setImageView(this.getImageCarte(j.getCarteLieu())); - JoueurIHM jihm = getJoueurIHM(j); - jihm.setZoneJoueur(root); + + FinDePartieControlleur.listeWinner = listeJoueursGagnants; } public CarteEquipement getChoixEquipementVole(Joueur joueur) { @@ -419,187 +427,199 @@ public void afficherEffet(Joueur j) throws IOException { jihm.getZoneJoueur().getChildren().setAll(); return result; } - + public boolean getChoix(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); boolean result = this.cb.getResult(); this.cb = null; jihm.getZoneJoueur().getChildren().setAll(); return result; - } + } + public Joueur getChoixJoueur(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); - JoueurIHM result = this.cj.getJoueurSelected(); - this.cj = null; - jihm.getZoneJoueur().getChildren().setAll(); - return result.getJoueur(); + JoueurIHM result = this.cj.getJoueurSelected(); + this.cj = null; + jihm.getZoneJoueur().getChildren().setAll(); + return result.getJoueur(); } - public Type getChoixCarte(Joueur joueur) { + + public Type getChoixCarte(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); Type result = this.pc.getCarte(); this.pc = null; jihm.getZoneJoueur().getChildren().setAll(); return result; - } + } public void deplacer(Joueur currentJoueur) { JoueurIHM jIHM = getJoueurIHM(currentJoueur); jIHM.replacerPionLieu(); - + } public void updateVieJoueur(Joueur joueur, int damage) { JoueurIHM jIHM = getJoueurIHM(joueur); - jIHM.getZoneJoueur().getChildren().setAll(); jIHM.deplacerPionVie(damage); } - + @FXML public void mettreEnPause(MouseEvent me) throws IOException { - - InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + + InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); EffetSonore.playSoundEffect(fileSound1); - + System.out.println("Jeu en pause ..."); final URL fxmlURL = getClass().getResource("/ihm/ressources/Pause.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - + Pane root = (Pane) fxmlLoader.load(); + PopUp pu = new PopUp(root, "Pause"); pu.display(); } - public static Image getImageCarte(Carte carte) { BufferedImage bi = mapRessourcesCartes.get(carte); return RessourceLoader.toJavaFX(bi); } - + public static Image getImageDosCarte(String s) { BufferedImage bi = mapRessourcesDosCartes.get(s); return RessourceLoader.toJavaFX(bi); } - public void ajouterEquipement(Joueur j, CarteEquipement e) { JoueurIHM jihm = getJoueurIHM(j); jihm.ajouterEquipement(e); } - public void retirerEquipement(Joueur j, CarteEquipement e) { JoueurIHM jihm = getJoueurIHM(j); jihm.retirerEquipement(e); } - + public void close() throws IOException { final URL fxmlURL = PlateauController.class.getResource("/ihm/ressources/Menu.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane pane = fxmlLoader.load(); - rootPane.getChildren().setAll(pane); + rootPane.getChildren().setAll(pane); } public void afficherLT(Joueur j, CartePiochable cartePiochable) throws IOException { - + Image i = getImageCarte(cartePiochable); ImageView iv = new ImageView(i); Pane p = new Pane(iv); - PopUp pu = new PopUp(p,"Image"); - pu.getStage().focusedProperty().addListener((obs,wasFocused,isNowFocused) -> { - if(!isNowFocused) { + PopUp pu = new PopUp(p, "Image"); + pu.getStage().focusedProperty().addListener((obs, wasFocused, isNowFocused) -> { + if (!isNowFocused) { GestionnaireJeu.notifyPlateau(); pu.getStage().hide(); } - }); - if(j instanceof JoueurVirtuel) { + }); + if (j instanceof JoueurVirtuel) { Timeline timeline = new Timeline(new KeyFrame(Duration.millis(3000), ae -> { pu.getStage().hide(); })); timeline.play(); - } + } pu.display(); - + } - + public void afficherVision(Joueur j, CartePiochable cartePiochable) throws IOException { - + final URL fxmlURL = getClass().getResource("/ihm/ressources/RecevoirCarte.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - RecevoirCarte lzj = fxmlLoader.getController(); + Pane root = (Pane) fxmlLoader.load(); + RecevoirCarte lzj = fxmlLoader.getController(); Image im = getImageCarte(cartePiochable); lzj.setImageView(im); lzj.setText("Cachez la carte vision"); - if(j instanceof JoueurVirtuel) lzj.fireBtnIA(); + if (j instanceof JoueurVirtuel) + lzj.fireBtnIA(); JoueurIHM jihm = getJoueurIHM(j); + if(jihm.getPosition()==4 || jihm.getPosition()==5) { SplitPane s=(SplitPane)root.getChildren().get(0); AnchorPane a=(AnchorPane)s.getItems().get(0); VBox v= (VBox)a.getChildren().get(0); AnchorPane b=(AnchorPane)s.getItems().get(1); ImageView i= (ImageView)b.getChildren().get(0); - + v.setRotate(180); i.setRotate(180); s.setRotate(180); } jihm.getZoneJoueur(); jihm.setZoneJoueur(root); - } - public Map getMapRessourcesDosCartes() { + public Map getMapRessourcesDosCartes() { + return mapRessourcesDosCartes; } - - public void setMapRessourcesDosCartes(Map mapRessourcesDosCartes) { + public void setMapRessourcesDosCartes(Map mapRessourcesDosCartes) { this.mapRessourcesDosCartes = mapRessourcesDosCartes; } - private Action choixAction; - + public void afficherChoisirAction(Joueur joueur, List list) { - - final URL fxmlURL = getClass().getResource("/ihm/ressources/ChoisirAction.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); - final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - + List -