diff --git a/src/ihm/controller/FinDePartieControlleur.java b/src/ihm/controller/FinDePartieControlleur.java index b0369ac..320bdb2 100644 --- a/src/ihm/controller/FinDePartieControlleur.java +++ b/src/ihm/controller/FinDePartieControlleur.java @@ -1,22 +1,133 @@ package ihm.controller; + +import java.io.IOException; +import java.io.InputStream; import java.net.URL; +import java.util.ArrayList; +import java.util.List; import java.util.ResourceBundle; +import ihm.EffetSonore; import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; +import javafx.geometry.Pos; +import javafx.scene.Node; +import javafx.scene.Scene; import javafx.scene.control.Label; +import javafx.scene.input.MouseEvent; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; +import javafx.scene.layout.VBox; +import javafx.scene.text.Font; +import javafx.stage.Stage; +import main.Joueur; public class FinDePartieControlleur implements Initializable { @FXML private Pane rootPane; @FXML private Label labelWinner; + @FXML private VBox vbListeWinner; + public static List listeWinner = new ArrayList(); + //public static List listeImageCarte = new ArrayList(); + + + /* + //initialise pour faire des test (a supprimer) + private Joueur j1 = new Joueur("Joueur1"); + private Joueur j2 = new Joueur("Joueur2"); + private Joueur j3 = new Joueur("Joueur3"); + private Joueur j4 = new Joueur("Joueur4"); + private Joueur j5 = new Joueur("Joueur5"); + private Joueur j6 = new Joueur("Joueur6"); +*/ @Override public void initialize(URL arg0, ResourceBundle arg1) { - labelWinner.setText("ceci est un test d'affichage"); + /* + //initialise pour faire des test (a supprimer) + listeWinner.add(j1); + listeWinner.add(j2); + listeWinner.add(j3); + listeWinner.add(j4); + listeWinner.add(j5); + listeWinner.add(j6); + + + listeImageCarte.add(PlateauController.getImageDosCarte(RessourceLoader.DOS_LUMIERE)); + listeImageCarte.add(PlateauController.getImageDosCarte(RessourceLoader.CARTES_TENEBRE)); + listeImageCarte.add(PlateauController.getImageDosCarte(RessourceLoader.DOS_VISION)); + */ + + + for(int i = 0 ; i getListeWinner() { + return listeWinner; + } + + public void setListeWinner(List listeWinner) { + FinDePartieControlleur.listeWinner = listeWinner; + } + + /* + public static List getListeImageCarte() { + return listeImageCarte; + } + + public static void setListeImageCarte(List listeImageCarte) { + FinDePartieControlleur.listeImageCarte = listeImageCarte; + } + + */ + + + + } diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index 08747ff..7e04e01 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -409,6 +409,17 @@ public class PlateauController implements Initializable { JoueurIHM jihm = getJoueurIHM(j); jihm.setZoneJoueur(root); } + + public void afficherFinDePartie(List listeJoueursGagnants /*, List listeImagesGagnant*/) 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(); + + FinDePartieControlleur.listeWinner = listeJoueursGagnants; + //FinDePartieControlleur.listeImageCarte = listeImagesGagnant; + } public CarteEquipement getChoixEquipementVole(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); diff --git a/src/ihm/controller/PlayersController.java b/src/ihm/controller/PlayersController.java index 2866a32..730829f 100644 --- a/src/ihm/controller/PlayersController.java +++ b/src/ihm/controller/PlayersController.java @@ -1,6 +1,7 @@ package ihm.controller; import java.io.IOException; + import java.io.InputStream; import java.net.URL; import java.util.ArrayList; @@ -9,6 +10,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.ResourceBundle; +import java.util.regex.Pattern; import ihm.Couple; import ihm.EffetSonore; @@ -46,7 +48,6 @@ public class PlayersController implements Initializable{ @FXML private HBox hb7; @FXML private HBox hb8; - //pour les radios boutons @FXML private HBox hbr1; @FXML private HBox hbr2; @@ -101,6 +102,7 @@ public class PlayersController implements Initializable{ ligne.add(hb7); ligne.add(hb8); + listeHbIA.add(hbr1); listeHbIA.add(hbr2); listeHbIA.add(hbr3); @@ -121,7 +123,6 @@ public class PlayersController implements Initializable{ listeToggleRbIa.add(tg8); - for (HBox hb : ligne) { txt.add((TextField) hb.getChildren().get(0)); plus.add((Button) hb.getChildren().get(1)); @@ -149,6 +150,7 @@ public class PlayersController implements Initializable{ for (TextField tf : txt) { tf.setEditable(false); tf.setStyle("-fx-background-color: silver;"); + } int j=0; @@ -165,6 +167,9 @@ public class PlayersController implements Initializable{ @FXML public void commencerJeux(MouseEvent mouseEvent) throws IOException{ if (nbJoueursH + nbJoueursV >= 4) { + + if(textVide()==false && memeNom()==false) { + //ajout des joueurs finalement selectionner int i = 0; for (HBox hb : ligne) { @@ -207,7 +212,11 @@ public class PlayersController implements Initializable{ appStage.setScene(scene); appStage.show(); gj.lancerPartie(); - + } + else { + System.out.println("On ne peut pas prendre un nom vide ou prendre le même nom qu'un autre joueur"); + + } } else { @@ -249,7 +258,7 @@ public class PlayersController implements Initializable{ nbJoueursH++; } - if (nbJoueursH + nbJoueursV >= 4) { + if (nbJoueursH + nbJoueursV >= 4 && memeNom()==false && textVide()==false) { btnCommencer.setStyle("-fx-background-color: #1d1d1d; -fx-text-fill: #d8d8d8;"); } } @@ -315,11 +324,72 @@ public class PlayersController implements Initializable{ public void mettreNomDefaut(int indice) { if (ia.get(indice).isSelected()) { + txt.get(indice).setText("Joueur" + indice); + ajoutJoueur(indice); - txt.get(indice).setText(bundle.getString("joueur") + indice); }else enleverJoueur(indice); } + public boolean textVide() { + for(int i=0;i= 4 && memeNom()==false && textVide()==false) { + btnCommencer.setStyle("-fx-background-color: #1d1d1d; -fx-text-fill: #d8d8d8;"); + } + else + { + btnCommencer.setStyle("-fx-background-color: gray; -fx-text-fill: black;"); + + } + + + } + public boolean memeNom() { + + int i=0; + + + while(i - + @@ -90,7 +90,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -268,7 +268,7 @@ - + @@ -307,7 +307,7 @@ - + @@ -376,7 +376,7 @@ - + @@ -426,7 +426,7 @@ - + @@ -461,4 +461,4 @@ - \ No newline at end of file + diff --git a/src/ihm/ressources/Fin_De_Partie.fxml b/src/ihm/ressources/Fin_De_Partie.fxml index 5436189..177f818 100644 --- a/src/ihm/ressources/Fin_De_Partie.fxml +++ b/src/ihm/ressources/Fin_De_Partie.fxml @@ -1,13 +1,13 @@ + - - + @@ -24,10 +24,18 @@ - + - + + diff --git a/src/personnage/Allie.java b/src/personnage/Allie.java index 5368d63..8848144 100644 --- a/src/personnage/Allie.java +++ b/src/personnage/Allie.java @@ -32,10 +32,11 @@ public class Allie extends Unique{ conditions.add(new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.PARTIE_FINIE, 1, ConditionStatistiques.EQUAL)); conditions.add(new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 0, ConditionStatistiques.LESS)); - + Condition winCondition = new ConditionMultiple(conditions); this.setCondition(winCondition); + this.setEquipe(CartePersonnage.Equipe.NEUTRE); this.setJoueur(joueur); joueur.setCartePersonnage(this);