Ajout joueurs

This commit is contained in:
Paul Gross 2020-05-12 11:06:34 +02:00
parent 7a689e6007
commit 60cfeddaf1
7 changed files with 86 additions and 102 deletions

View File

@ -5,14 +5,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import carte.CarteEquipement;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import main.Joueur;
import main.Plateau;
import main.GestionnaireJeu;
public class ChoisirJoueur implements Initializable{
@FXML private HBox joueurHaut;
@ -27,67 +25,61 @@ public class ChoisirJoueur implements Initializable{
@FXML private Button btn7;
@FXML private Button btn8;
private int joueurSelected;
private List<Joueur> joueurs = Plateau.jselectionne;
//private List<Joueur> joueurs = new ArrayList();
private JoueurIHM joueurSelected;
private List<JoueurIHM> listJoueursIHM;
private List<Button> buttons;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
/* Joueur j1= new Joueur("Belthield");
Joueur j2= new Joueur("test2");
Joueur j3= new Joueur("test3");
this.buttons = new ArrayList<Button>();
joueurs.add(j1);
joueurs.add(j2);
joueurs.add(j3);*/
this.buttons.add(btn1);
this.buttons.add(btn2);
this.buttons.add(btn3);
this.buttons.add(btn4);
this.buttons.add(btn5);
this.buttons.add(btn6);
this.buttons.add(btn7);
this.buttons.add(btn8);
List<Button> buttons = new ArrayList();
buttons.add(btn1);
buttons.add(btn2);
buttons.add(btn3);
buttons.add(btn4);
buttons.add(btn5);
buttons.add(btn6);
buttons.add(btn7);
buttons.add(btn8);
if(8-joueurs.size()>0) {
for(int i=0;i<8-joueurs.size();i++) {
buttons.get(buttons.size()-1-i).setVisible(false);
}
for(int i=0;i<joueurs.size();i++) {
buttons.get(i).setText(joueurs.get(i).getNom());
}
}
}
public void initButtons() {
int i = 0;
/* for (int i=0; i<joueurHaut.getChildren().size(); i++) {
int numJoueur = i;
joueurHaut.getChildren().get(i).setOnMouseClicked(e -> {
System.out.println("Vous avez choisi le joueur " + (numJoueur+1));
this.joueurSelected = numJoueur;
while(i <listJoueursIHM.size()) {
Button b = this.buttons.get(i);
JoueurIHM jihm = listJoueursIHM.get(i);
b.setOnAction(e -> {
GestionnaireJeu.notifyPlateau();
this.joueurSelected = jihm;
});
b.setText(jihm.getNom());
i++;
}
for (int i=0; i<joueurBas.getChildren().size(); i++) {
int numJoueur = i+4;
joueurBas.getChildren().get(i).setOnMouseClicked(e -> {
System.out.println("Vous avez choisi le joueur " + (numJoueur+1));
this.joueurSelected = numJoueur;
});
} */
for(int j = i; j < buttons.size(); j++) {
Button b = this.buttons.get(j);
b.setVisible(false);
}
}
//GETTERS AND SETTERS
public HBox getJoueurHaut() {
return joueurHaut;
}
public HBox getHBox(int valeur) {
if(valeur < 4) {
return joueurHaut;
}else {
return joueurBas;
}
}
public void setJoueurHaut(HBox joueurHaut) {
this.joueurHaut = joueurHaut;
}
@ -108,19 +100,11 @@ public class ChoisirJoueur implements Initializable{
this.titre = titre;
}
public int getJoueurSelected() {
public JoueurIHM getJoueurSelected() {
return joueurSelected;
}
public void setJoueurSelected(int joueurSelected) {
this.joueurSelected = joueurSelected;
}
public List<Joueur> getJoueur() {
return joueurs;
}
public void setJoueur(List<Joueur> joueur) {
this.joueurs = joueur;
public void setListJoueursIHM(List<JoueurIHM> joueursIHM) {
this.listJoueursIHM = joueursIHM;
}
}

View File

@ -136,8 +136,8 @@ public class JoueurIHM {
public HBox getPaneEquipement(){
ScrollPane sp = (ScrollPane) this.zoneJoueur.getChildren().get(3);
HBox p = (HBox) sp.getContent();
return p;
AnchorPane p = (AnchorPane) sp.getContent();
return (HBox) p.getChildren().get(0);
}
public void ajouterEquipement(CarteEquipement e) {
@ -162,4 +162,8 @@ public class JoueurIHM {
}
public String getNom() {
return this.joueur.getNom();
}
}

View File

@ -362,9 +362,8 @@ public class PlateauController implements Initializable {
avzj.changeLabel(valeur);
JoueurIHM jihm = getJoueurIHM(j);
jihm.setZoneJoueur(root);
Timeline timeline = new Timeline(new KeyFrame(
Duration.millis(2500),
Duration.millis(1000),
ae -> {
jihm.resetZoneJoueur();
GestionnaireJeu.notifyPlateau();
@ -389,6 +388,8 @@ public class PlateauController implements Initializable {
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane root = (Pane)fxmlLoader.load();
this.cj = fxmlLoader.getController();
this.cj.setListJoueursIHM(this.joueursIHM);
this.cj.initButtons();
JoueurIHM jihm = getJoueurIHM(j);
jihm.setZoneJoueur(root);
}
@ -410,11 +411,10 @@ public class PlateauController implements Initializable {
}
public Joueur getChoixJoueur(Joueur joueur) {
JoueurIHM jihm = getJoueurIHM(joueur);
int result = this.cj.getJoueurSelected();
JoueurIHM result = this.cj.getJoueurSelected();
this.cj = null;
jihm.getZoneJoueur().getChildren().setAll();
return listJoueur.get(result);
return result.getJoueur();
}
public void deplacer(Joueur currentJoueur) {

View File

@ -5,21 +5,21 @@
<?import javafx.scene.control.Label?>
<?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?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="180.0" prefWidth="255.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.ChoisirJoueur">
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.ChoisirJoueur">
<children>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="180.0" prefWidth="255.0" stylesheets="@style/popUp.css">
<VBox alignment="CENTER" spacing="40.0" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<HBox fx:id="joueurHaut" layoutX="4.0" layoutY="14.0">
<HBox fx:id="joueurHaut" alignment="TOP_CENTER" spacing="3.0">
<children>
<Button fx:id="btn1" mnemonicParsing="false" text="%joueur1">
<Button fx:id="btn1" mnemonicParsing="false" styleClass="bouton" text="%joueur1">
<font>
<Font size="10.0" />
</font>
</Button>
<Button fx:id="btn2" mnemonicParsing="false" text="%joueur2">
<Button fx:id="btn2" mnemonicParsing="false" styleClass="bouton" text="%joueur2">
<font>
<Font size="10.0" />
</font>
@ -27,7 +27,7 @@
<Insets left="2.0" />
</HBox.margin>
</Button>
<Button fx:id="btn3" mnemonicParsing="false" text="%joueur3">
<Button fx:id="btn3" mnemonicParsing="false" styleClass="bouton" text="%joueur3">
<font>
<Font size="10.0" />
</font>
@ -35,7 +35,7 @@
<Insets left="2.0" />
</HBox.margin>
</Button>
<Button fx:id="btn4" mnemonicParsing="false" text="%joueur4">
<Button fx:id="btn4" mnemonicParsing="false" styleClass="bouton" text="%joueur4">
<font>
<Font size="10.0" />
</font>
@ -45,9 +45,10 @@
</Button>
</children>
</HBox>
<HBox fx:id="joueurBas" layoutX="4.0" layoutY="139.0">
<Label fx:id="titre" alignment="CENTER" contentDisplay="CENTER" styleClass="text" text="Choisir un joueur à attaquer !" />
<HBox fx:id="joueurBas" alignment="BOTTOM_CENTER" spacing="3.0">
<children>
<Button fx:id="btn5" mnemonicParsing="false" text="%joueur5">
<Button fx:id="btn5" mnemonicParsing="false" styleClass="bouton" text="%joueur5">
<font>
<Font size="10.0" />
</font>
@ -55,7 +56,7 @@
<Insets right="2.0" />
</HBox.margin>
</Button>
<Button fx:id="btn6" mnemonicParsing="false" text="%joueur6">
<Button fx:id="btn6" mnemonicParsing="false" styleClass="bouton" text="%joueur6">
<font>
<Font size="10.0" />
</font>
@ -63,7 +64,7 @@
<Insets right="2.0" />
</HBox.margin>
</Button>
<Button fx:id="btn7" mnemonicParsing="false" text="%joueur7">
<Button fx:id="btn7" mnemonicParsing="false" styleClass="bouton" text="%joueur7">
<font>
<Font size="10.0" />
</font>
@ -71,15 +72,17 @@
<Insets right="2.0" />
</HBox.margin>
</Button>
<Button fx:id="btn8" mnemonicParsing="false" text="%joueur8">
<Button fx:id="btn8" mnemonicParsing="false" styleClass="bouton" text="%joueur8">
<font>
<Font size="10.0" />
</font>
</Button>
</children>
</HBox>
<Label fx:id="titre" layoutX="50.0" layoutY="82.0" text="Choisir un joueur à attaquer !" />
</children>
</Pane>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</VBox>
</children>
</AnchorPane>

View File

@ -169,6 +169,7 @@ public class GestionnaireJeu {
}
public Joueur choisirJoueur(Joueur joueur, List<Joueur> joueurs, Contexte contexte) {
Platform.runLater(() -> {
try {
pc.afficherChoisirJoueur(joueur,joueurs, contexte);
@ -264,13 +265,15 @@ public class GestionnaireJeu {
}
public void ajouterEquipement(Joueur joueur, CarteEquipement e) {
pc.ajouterEquipement(joueur,e);
Platform.runLater(() -> {
pc.ajouterEquipement(joueur,e);
});
}
public void retirerEquipement(Joueur joueur, CarteEquipement e) {
pc.retirerEquipement(joueur,e);
Platform.runLater(() -> {
pc.retirerEquipement(joueur,e);
});
}

View File

@ -246,8 +246,8 @@ public class Joueur {
return this.plateau.choisir(this, activerEffetLieu);
}
public Object choisir(List<?> adjacents,Class cls) {
return this.plateau.choisir(this,adjacents, cls);
public Object choisir(List<?> list,Class cls) {
return this.plateau.choisir(this,list, cls);
}
public Joueur choisirAdjacents() {

View File

@ -31,17 +31,6 @@ public class Plateau extends Thread{
private GestionnaireJeu gj;
private List<Joueur> joueurs;
private List<CarteLieu> lieux;
public static ArrayList<Joueur> jselectionne=new ArrayList<Joueur>() {/**
*
*/
private static final long serialVersionUID = 1L;
{
add(new Joueur("Joueur1"));
add(new Joueur("Joueur2"));
add(new Joueur("Joueur3"));}};
public static final String NB_HUNTERS = "nb_hunters";
public static final String NB_SHADOWS = "nb_shadows";
@ -275,6 +264,7 @@ public class Plateau extends Thread{
while(true) {
System.out.println(joueurs.size());
Joueur currentJoueur = this.joueurs.get(i % nbJoueurs);
currentJoueur.choisir(joueurs, Joueur.class);
System.out.println("\n\n\n\n\n");