Voir carte vision

This commit is contained in:
Paul Gross 2020-05-12 12:30:57 +02:00
parent 985a085e74
commit f1a46ada87
15 changed files with 171 additions and 43 deletions

View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import condition.Condition; import condition.Condition;
import effet.Effet; import effet.Effet;
import main.GestionnaireJeu;
import main.Joueur; import main.Joueur;
public class CartePiochable extends CarteCondition implements Serializable{ public class CartePiochable extends CarteCondition implements Serializable{
@ -41,6 +42,8 @@ public class CartePiochable extends CarteCondition implements Serializable{
* @param j Appel la méthode utiliser de effet sur le joueur j * @param j Appel la méthode utiliser de effet sur le joueur j
*/ */
public void utiliser(Joueur j) { public void utiliser(Joueur j) {
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
gj.piocher(j,this);
System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction()); System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction());
super.utiliser(j); super.utiliser(j);
} }

View File

@ -63,6 +63,15 @@ public class PopUp{
}); });
} }
public Stage getStage() {
return popup;
}
public Scene getScene() {
return scene;
}
public void display() { public void display() {
popup.setScene(scene); popup.setScene(scene);

View File

@ -42,7 +42,6 @@ public class ChoisirJoueur implements Initializable{
this.buttons.add(btn6); this.buttons.add(btn6);
this.buttons.add(btn7); this.buttons.add(btn7);
this.buttons.add(btn8); this.buttons.add(btn8);
} }
public void initButtons() { public void initButtons() {

View File

@ -0,0 +1,28 @@
package ihm.controller;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import main.GestionnaireJeu;
public class Dialog implements Initializable {
@FXML private Button button;
@FXML private Label label;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
button.setOnAction(x -> {
GestionnaireJeu.notifyPlateau();
});
}
public void setText(String text) {
this.label.setText(text);
}
}

View File

@ -7,21 +7,16 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import main.Type;
import main.TypeLumiere;
import main.TypeTenebre;
import main.TypeVision;
public class PiocherCarte implements Initializable{ public class PiocherCarte implements Initializable{
@FXML private Button lumiere; @FXML private Button lumiere;
@FXML private Button vision; @FXML private Button vision;
@FXML private Button tenebre; @FXML private Button tenebre;
private Type carte; //private Type carte;
@Override @Override
public void initialize(URL arg0, ResourceBundle arg1) { public void initialize(URL arg0, ResourceBundle arg1) {
lumiere.setOnAction(e ->{ /*lumiere.setOnAction(e ->{
carte = new TypeLumiere(); carte = new TypeLumiere();
}); });
@ -31,10 +26,10 @@ public class PiocherCarte implements Initializable{
tenebre.setOnAction(e -> { tenebre.setOnAction(e -> {
carte = new TypeTenebre(); carte = new TypeTenebre();
}); });*/
} }
/*
public Type getCarte() { public Type getCarte() {
return carte; return carte;
} }*/
} }

View File

@ -15,6 +15,8 @@ import java.util.Set;
import carte.Carte; import carte.Carte;
import carte.CarteEquipement; import carte.CarteEquipement;
import carte.CarteLieu; import carte.CarteLieu;
import carte.CartePiochable;
import carte.CartePiochable.Type;
import database.RessourceLoader; import database.RessourceLoader;
import ihm.EffetSonore; import ihm.EffetSonore;
import ihm.PopUp; import ihm.PopUp;
@ -25,6 +27,7 @@ import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.Group; import javafx.scene.Group;
import javafx.scene.Parent; import javafx.scene.Parent;
import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
@ -36,6 +39,7 @@ import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane; import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.transform.Rotate;
import javafx.util.Duration; import javafx.util.Duration;
import main.Contexte; import main.Contexte;
import main.GestionnaireJeu; import main.GestionnaireJeu;
@ -426,7 +430,6 @@ public class PlateauController implements Initializable {
public void updateVieJoueur(Joueur joueur, int damage) { public void updateVieJoueur(Joueur joueur, int damage) {
JoueurIHM jIHM = getJoueurIHM(joueur); JoueurIHM jIHM = getJoueurIHM(joueur);
jIHM.deplacerPionVie(damage); jIHM.deplacerPionVie(damage);
} }
@FXML @FXML
@ -467,16 +470,42 @@ public class PlateauController implements Initializable {
public void close () throws IOException { public void close () throws IOException {
final URL fxmlURL = PlateauController.class.getResource("/ihm/ressources/Menu.fxml"); 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", Locale.FRANCE);
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane pane = fxmlLoader.load(); 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) {
GestionnaireJeu.notifyPlateau();
pu.getStage().hide();
}
});
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 FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane root = (Pane)fxmlLoader.load();
RecevoirCarte lzj = fxmlLoader.getController();
Image im = getImageCarte(cartePiochable);
lzj.setImageView(im);
lzj.setText("Cachez la carte vision");
JoueurIHM jihm = getJoueurIHM(j);
jihm.setZoneJoueur(root);
}
} }

View File

@ -0,0 +1,36 @@
package ihm.controller;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import main.GestionnaireJeu;
public class RecevoirCarte implements Initializable {
@FXML private Button okButton;
@FXML private Label label;
@FXML private ImageView imageView;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
okButton.setOnAction(x -> {
GestionnaireJeu.notifyPlateau();
});
}
public void setText(String name) {
this.label.setText(name);
}
public void setImageView(Image imageCarte) {
this.imageView.setImage(imageCarte);
}
}

View File

@ -8,14 +8,13 @@
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.LieuZJ"> <AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.LieuZJ">
<children> <children>
<SplitPane dividerPositions="0.6212121212121212" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <SplitPane dividerPositions="0.6212121212121212" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items> <items>
<AnchorPane> <AnchorPane>
<children> <children>
<VBox prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <VBox alignment="CENTER" spacing="30.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children> <children>
<Label styleClass="text" text="Vous arrivez sur cette Carte Lieu" textOverrun="CLIP" wrapText="true"> <Label styleClass="text" text="Vous arrivez sur cette Carte Lieu" textOverrun="CLIP" wrapText="true">
<font> <font>

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.RecevoirCarte">
<children>
<SplitPane dividerPositions="0.6212121212121212" styleClass="background" stylesheets="@style/plateau.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane>
<children>
<VBox alignment="CENTER" spacing="30.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label fx:id="label" styleClass="text" text="Vous arrivez sur cette Carte Lieu" textOverrun="CLIP" wrapText="true">
<font>
<Font size="14.0" />
</font>
</Label>
<Button fx:id="okButton" mnemonicParsing="false" styleClass="bouton" text="Ok" />
</children>
</VBox>
</children>
</AnchorPane>
<AnchorPane>
<children>
<ImageView fx:id="imageView" fitHeight="158.0" fitWidth="132.0" pickOnBounds="true" preserveRatio="true" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</AnchorPane>

View File

@ -10,6 +10,8 @@ import java.util.concurrent.FutureTask;
import carte.CarteEquipement; import carte.CarteEquipement;
import carte.CarteLieu; import carte.CarteLieu;
import carte.CartePiochable;
import carte.CartePiochable.Type;
import database.RessourceLoader; import database.RessourceLoader;
import effet.Effet; import effet.Effet;
import ihm.controller.PlateauController; import ihm.controller.PlateauController;
@ -276,5 +278,20 @@ public class GestionnaireJeu {
}); });
} }
public void piocher(Joueur j, CartePiochable cartePiochable) {
Platform.runLater(() -> {
try {
if(cartePiochable.getType() == Type.VISION) {
pc.afficherVision(j, cartePiochable);
}else {
pc.afficherLT(j, cartePiochable);
}
} catch (IOException e) {
e.printStackTrace();
}
});
waitPlateau();
}
} }

View File

@ -17,8 +17,6 @@ public class Pioche {
melanger(); melanger();
} }
public void melanger() public void melanger()
{ {
Collections.shuffle(cartesPiochables); Collections.shuffle(cartesPiochables);
@ -28,8 +26,6 @@ public class Pioche {
return cartesPiochables.pop(); return cartesPiochables.pop();
} }
public Stack<CartePiochable> getStack() { public Stack<CartePiochable> getStack() {
return cartesPiochables; return cartesPiochables;
} }

View File

@ -1,5 +0,0 @@
package main;
public interface Type {
}

View File

@ -1,5 +0,0 @@
package main;
public class TypeLumiere implements Type {
}

View File

@ -1,5 +0,0 @@
package main;
public class TypeTenebre implements Type{
}

View File

@ -1,5 +0,0 @@
package main;
public class TypeVision implements Type {
}