diff --git a/src/carte/CartePiochable.java b/src/carte/CartePiochable.java index b5ff603..dbb3ce7 100644 --- a/src/carte/CartePiochable.java +++ b/src/carte/CartePiochable.java @@ -41,6 +41,7 @@ public class CartePiochable extends CarteCondition implements Serializable{ * @param j Appel la méthode utiliser de effet sur le joueur j */ public void utiliser(Joueur j) { + System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction()); super.utiliser(j); } diff --git a/src/domaine/properties/langue.properties b/src/domaine/properties/langue.properties index f8fdaba..047e91d 100644 --- a/src/domaine/properties/langue.properties +++ b/src/domaine/properties/langue.properties @@ -24,7 +24,7 @@ choisir.equipement.a.voler=Choisissez un carte.vision=Carte Vision jouer.a.qui.donner.carte=Choisissez un joueur à  qui donner la carte. carte=Carte -effet=Effet : +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 diff --git a/src/domaine/properties/langue_en.properties b/src/domaine/properties/langue_en.properties index 5d85f6c..8f02a49 100644 --- a/src/domaine/properties/langue_en.properties +++ b/src/domaine/properties/langue_en.properties @@ -24,7 +24,7 @@ choisir.equipement.a.voler=Choose equipment to steal carte.vision=Vision Card jouer.a.qui.donner.carte=Choose a player to give the card to. carte=Card -effet=Effect : +effet=Sound Effects: carte.vue.par.joueur.pioche=This card can only be seen by the player who draws it. voir.carte=See card recoit=receives diff --git a/src/domaine/properties/langue_fr.properties b/src/domaine/properties/langue_fr.properties index 1356a68..3b2ab86 100644 --- a/src/domaine/properties/langue_fr.properties +++ b/src/domaine/properties/langue_fr.properties @@ -16,15 +16,15 @@ 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 +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 +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. +jouer.a.qui.donner.carte=Choisissez un joueur à  qui donner la carte. carte=Carte -effet=Effet : +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 diff --git a/src/effet/EffetChoisirEffet.java b/src/effet/EffetChoisirEffet.java index 9e171ea..f541251 100644 --- a/src/effet/EffetChoisirEffet.java +++ b/src/effet/EffetChoisirEffet.java @@ -7,6 +7,8 @@ import main.Joueur; public class EffetChoisirEffet extends Effet{ + + private static final long serialVersionUID = -1412748549517929474L; private List effets; public EffetChoisirEffet(Effet ...effets) { @@ -18,6 +20,7 @@ public class EffetChoisirEffet extends Effet{ public void utiliser(Joueur joueur) { Effet effet = (Effet) joueur.choisir(effets,Effet.class); + effet.utiliser(joueur); } diff --git a/src/ihm/ImageViewEquipement.java b/src/ihm/ImageViewEquipement.java new file mode 100644 index 0000000..d518eb5 --- /dev/null +++ b/src/ihm/ImageViewEquipement.java @@ -0,0 +1,26 @@ +package ihm; + +import carte.CarteEquipement; +import javafx.scene.image.ImageView; + +public class ImageViewEquipement extends ImageView{ + + private CarteEquipement ce; + + public ImageViewEquipement(CarteEquipement ce) { + this.ce = ce; + } + + public CarteEquipement getCp() { + return ce; + } + + public void setCp(CarteEquipement ce) { + this.ce = ce; + } + + public boolean contains(CarteEquipement ce) { + return this.ce == ce; + } + +} diff --git a/src/ihm/controller/AlterationVieZJ.java b/src/ihm/controller/AlterationVieZJ.java new file mode 100644 index 0000000..613eedf --- /dev/null +++ b/src/ihm/controller/AlterationVieZJ.java @@ -0,0 +1,26 @@ +package ihm.controller; + +import java.net.URL; +import java.util.ResourceBundle; + +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Label; + +public class AlterationVieZJ implements Initializable { + + @FXML private Label label; + + @Override + public void initialize(URL arg0, ResourceBundle arg1) { + + } + + public void changeLabel(int valeur) { + if(valeur > 0 ) { + this.label.setText("Vous êtes soigné de "+valeur+"PV"); + }else { + this.label.setText("Vous êtes blessé de "+valeur+"PV"); + } + } +} diff --git a/src/ihm/controller/ChoisirEquipement.java b/src/ihm/controller/ChoisirEquipement.java index d922c6b..7de8bbc 100644 --- a/src/ihm/controller/ChoisirEquipement.java +++ b/src/ihm/controller/ChoisirEquipement.java @@ -1,17 +1,15 @@ package ihm.controller; -import java.io.InputStream; import java.net.URL; 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.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; -import carte.CarteEquipement; public class ChoisirEquipement implements Initializable{ @FXML private GridPane grilleEquipement; diff --git a/src/ihm/controller/JoueurIHM.java b/src/ihm/controller/JoueurIHM.java index 6b9d53e..89a744c 100644 --- a/src/ihm/controller/JoueurIHM.java +++ b/src/ihm/controller/JoueurIHM.java @@ -1,7 +1,11 @@ package ihm.controller; +import carte.CarteEquipement; +import ihm.ImageViewEquipement; +import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; @@ -11,6 +15,7 @@ import javafx.scene.layout.BorderStrokeStyle; import javafx.scene.layout.BorderWidths; import javafx.scene.layout.CornerRadii; import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import main.Joueur; @@ -71,6 +76,7 @@ public class JoueurIHM { } public void setZoneJoueur(Pane p) { + AnchorPane ap = (AnchorPane) zoneJoueur.getChildren().get(1); ap.getChildren().setAll(p); @@ -94,11 +100,6 @@ public class JoueurIHM { Label label = getLabelJoueur(); label.setText(name); } - - public Label getPaneEquipement() { - Pane p = (Pane) zoneJoueur.getChildren().get(2); - return (Label) p.getChildren().get(1); - } public int getPosition() { return position; @@ -129,4 +130,36 @@ public class JoueurIHM { } + public void resetZoneJoueur() { + this.getZoneJoueur().getChildren().setAll(); + } + + public HBox getPaneEquipement(){ + ScrollPane sp = (ScrollPane) this.zoneJoueur.getChildren().get(3); + HBox p = (HBox) sp.getContent(); + return p; + } + + public void ajouterEquipement(CarteEquipement e) { + HBox hb = getPaneEquipement(); + ImageViewEquipement ive = new ImageViewEquipement(e); + hb.getChildren().add(new ImageViewEquipement(e)); + ive.fitHeightProperty().bind(hb.heightProperty()); + + } + + public void retirerEquipement(CarteEquipement e) { + HBox hb = getPaneEquipement(); + for(Node n : hb.getChildren()) { + if(n instanceof ImageViewEquipement) { + ImageViewEquipement ive = (ImageViewEquipement) n; + if(ive.contains(e)) { + hb.getChildren().remove(ive); + } + } + } + + + } + } diff --git a/src/ihm/controller/PauseController.java b/src/ihm/controller/PauseController.java index 5febbbb..339a039 100644 --- a/src/ihm/controller/PauseController.java +++ b/src/ihm/controller/PauseController.java @@ -8,6 +8,7 @@ import java.util.ResourceBundle; import ihm.EffetSonore; import ihm.Musique; +import ihm.PopUp; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; @@ -167,10 +168,17 @@ public class PauseController implements Initializable { final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); AnchorPane pane = fxmlLoader.load(); + + Scene scene = new Scene(pane); Stage appStage = (Stage) ((Node) mouseEvent.getSource()).getScene().getWindow(); appStage.setScene(scene); appStage.show(); + + /* + PopUp pu = new PopUp(pane, "Regles"); + pu.display(); + */ } diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index 931be2b..8127b98 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -18,6 +18,8 @@ import carte.CarteLieu; import database.RessourceLoader; import ihm.EffetSonore; import ihm.PopUp; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; @@ -28,22 +30,16 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.Background; -import javafx.scene.layout.BackgroundImage; -import javafx.scene.layout.BackgroundPosition; -import javafx.scene.layout.BackgroundRepeat; -import javafx.scene.layout.BackgroundSize; -import javafx.scene.layout.FlowPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; +import javafx.util.Duration; import main.Contexte; import main.GestionnaireJeu; import main.Joueur; -import personnage.CartePersonnage; public class PlateauController implements Initializable { @@ -357,6 +353,26 @@ public class PlateauController implements Initializable { 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 FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); + Pane root = (Pane)fxmlLoader.load(); + AlterationVieZJ avzj = fxmlLoader.getController(); + avzj.changeLabel(valeur); + JoueurIHM jihm = getJoueurIHM(j); + jihm.setZoneJoueur(root); + + Timeline timeline = new Timeline(new KeyFrame( + Duration.millis(2500), + ae -> { + jihm.resetZoneJoueur(); + GestionnaireJeu.notifyPlateau(); + })); + timeline.play(); + } + public void afficherLieu(Joueur j) throws IOException { final URL fxmlURL = getClass().getResource("/ihm/ressources/LieuZJ.fxml"); @@ -367,20 +383,16 @@ public class PlateauController implements Initializable { lzj.setImageView(this.getImageCarte(j.getCarteLieu())); JoueurIHM jihm = getJoueurIHM(j); 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 FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); - Pane root = (Pane)fxmlLoader.load(); - this.cj = fxmlLoader.getController(); - - JoueurIHM jihm = getJoueurIHM(j); - jihm.setZoneJoueur(root); - } + final URL fxmlURL = getClass().getResource("/ihm/ressources/choixJoueurAttq.fxml"); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); + Pane root = (Pane)fxmlLoader.load(); + this.cj = fxmlLoader.getController(); + JoueurIHM jihm = getJoueurIHM(j); + jihm.setZoneJoueur(root); + } public CarteEquipement getChoixEquipementVole(Joueur joueur) { JoueurIHM jihm = getJoueurIHM(joueur); @@ -441,5 +453,21 @@ public class PlateauController implements Initializable { } + 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); + + } + + + + + } \ No newline at end of file diff --git a/src/ihm/ressources/AlterationVieZJ.fxml b/src/ihm/ressources/AlterationVieZJ.fxml new file mode 100644 index 0000000..4092a21 --- /dev/null +++ b/src/ihm/ressources/AlterationVieZJ.fxml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/src/ihm/ressources/PlateauTest2.fxml b/src/ihm/ressources/PlateauTest2.fxml index 52dbeb4..25bc1c9 100644 --- a/src/ihm/ressources/PlateauTest2.fxml +++ b/src/ihm/ressources/PlateauTest2.fxml @@ -5,6 +5,7 @@ + @@ -63,11 +64,18 @@