diff --git a/src/ihm/Main.java b/src/ihm/Main.java index d8bf3e8..edb787d 100644 --- a/src/ihm/Main.java +++ b/src/ihm/Main.java @@ -10,8 +10,12 @@ import javafx.stage.Stage; public class Main extends Application{ @Override public void start(Stage primaryStage) throws Exception{ +<<<<<<< HEAD System.out.println("Lancement de l'application"); Parent root = FXMLLoader.load(getClass().getResource("ressources/Menu.fxml")); +======= + Parent root = FXMLLoader.load(getClass().getResource("ressources/Choix_joueur.fxml")); +>>>>>>> 8234d1247461715477e5a73a00bb6c077372e26d primaryStage.setTitle("Shadow Hunters"); primaryStage.setScene(new Scene(root)); primaryStage.show(); diff --git a/src/ihm/PopUp.java b/src/ihm/PopUp.java index 6fea44f..7c2c647 100644 --- a/src/ihm/PopUp.java +++ b/src/ihm/PopUp.java @@ -1,25 +1,85 @@ package ihm; + +import java.awt.Window.Type; + +import javax.swing.JFrame; + +import javafx.embed.swing.JFXPanel; +import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.input.MouseEvent; import javafx.stage.Modality; import javafx.stage.Stage; +import javafx.stage.StageStyle; -public class PopUp { +public class PopUp{ private Scene scene; - private Stage popupwindow; + private Stage popup; + + private double xOffSet = 0; + private double yOffSet = 0; public PopUp (Parent p, String titre) { - popupwindow = new Stage(); - popupwindow.initModality(Modality.APPLICATION_MODAL); - popupwindow.setTitle(titre); + + popup = new Stage(); + + + + popup.initModality(Modality.NONE); + + popup.initStyle(StageStyle.UNDECORATED); + + popup.setTitle(titre); scene = new Scene(p); + + p.setOnMousePressed(new EventHandler() { + + @Override + public void handle(MouseEvent event){ + + xOffSet = event.getSceneX(); + yOffSet = event.getSceneY(); + } + + }); + + p.setOnMouseDragged(new EventHandler() { + + @Override + public void handle(MouseEvent event){ + + popup.setX(event.getScreenX() - xOffSet); + popup.setY(event.getScreenY() - yOffSet); + + } + + }); + + popup.focusedProperty().addListener((obs,wasFocused,isNowFocused) -> { + + if(!isNowFocused) { + popup.hide(); + } + + }); + + + + } public void display() { - popupwindow.setScene(scene); - popupwindow.showAndWait(); + + popup.setScene(scene); + + popup.showAndWait(); + } + + + } diff --git a/src/ihm/controller/MenuController.java b/src/ihm/controller/MenuController.java index b15fcb4..8e2af83 100644 --- a/src/ihm/controller/MenuController.java +++ b/src/ihm/controller/MenuController.java @@ -12,16 +12,15 @@ import javafx.fxml.Initializable; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; -import javafx.scene.layout.BorderPane; -import javafx.scene.layout.Pane; +import javafx.scene.layout.AnchorPane; public class MenuController implements Initializable{ - @FXML private Pane rootPane; + @FXML private AnchorPane rootPane; @FXML private ImageView titre; @Override public void initialize(URL arg0, ResourceBundle arg1) { - // TODO Auto-generated method stub + FileInputStream input; try { input = new FileInputStream("src\\ihm\\ressources\\img\\logo.png"); @@ -34,8 +33,13 @@ public class MenuController implements Initializable{ @FXML public void commencerPartie(MouseEvent mouseEvent) throws IOException{ +<<<<<<< HEAD System.out.println("Passage ŕ  l'écran de choix des joueurs"); BorderPane pane = FXMLLoader.load(getClass().getResource("../ressources/Choix_joueur.fxml")); +======= + System.out.println("Passage Ă  l'Ă©cran de choix des joueurs"); + AnchorPane pane = FXMLLoader.load(getClass().getResource("../ressources/Choix_joueur.fxml")); +>>>>>>> 8234d1247461715477e5a73a00bb6c077372e26d rootPane.getChildren().setAll(pane); } diff --git a/src/ihm/controller/PlayersController.java b/src/ihm/controller/PlayersController.java index 75c42b6..061fb79 100644 --- a/src/ihm/controller/PlayersController.java +++ b/src/ihm/controller/PlayersController.java @@ -39,7 +39,7 @@ public class PlayersController implements Initializable{ private List txt = new ArrayList(); private List ia = new ArrayList(); - private List joueur = new ArrayList(); + private List joueurs = new ArrayList(); /** @@ -78,22 +78,26 @@ public class PlayersController implements Initializable{ @FXML public void commencerJeux(MouseEvent mouseEvent) throws IOException{ //ajout des joueurs finalement selectionner - int nbJoueur = 0; + int nbJoueurs = 0; + for (HBox hb : ligne) { + TextField tf = (TextField) hb.getChildren().get(0); CheckBox cb = (CheckBox) hb.getChildren().get(2); Joueur j; + if (tf.isEditable()) { - if(cb.isSelected()) - j = new JoueurVirtuel(tf.getText()); - else - j = new Joueur(tf.getText()); - nbJoueur++; - }else j = null; - joueur.add(j); + if(cb.isSelected()) { + joueurs.add(new Joueur(tf.getText())); + } + else { + joueurs.add(new JoueurVirtuel(tf.getText())); + } + nbJoueurs++; + } } - if (nbJoueur <4) { + if (nbJoueurs < 4) { Alert alert = new Alert(AlertType.WARNING, "Il faut au moins de 4 joueurs !"); alert.showAndWait(); }else { @@ -102,12 +106,14 @@ public class PlayersController implements Initializable{ Parent root = loader.load(); PlateauController pc = loader.getController(); - pc.showInformation(joueur); + pc.showInformation(joueurs); rootPane.getChildren().setAll(root); } } + + /** * Autorise a ďż˝crire dans le text filed le nom du joueur ajouter * diff --git a/src/ihm/ressources/Choix_joueur.fxml b/src/ihm/ressources/Choix_joueur.fxml index 3653afe..b017978 100644 --- a/src/ihm/ressources/Choix_joueur.fxml +++ b/src/ihm/ressources/Choix_joueur.fxml @@ -5,229 +5,179 @@ + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + diff --git a/src/ihm/ressources/Plateau.fxml b/src/ihm/ressources/Plateau.fxml index a75aa0c..6c0e320 100644 --- a/src/ihm/ressources/Plateau.fxml +++ b/src/ihm/ressources/Plateau.fxml @@ -5,609 +5,609 @@ + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + - - - + + + - + - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - + - - - + + + + + - + + + + + + + + + + - + - - + - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + + + + + + - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- + +
+
+ + diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index 58fe81c..cdb2bed 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -1,15 +1,34 @@ package main; +import java.util.ArrayList; import java.util.List; import effet.Effet; public class GestionnaireJeu { + + private Plateau plateau; private View view; - public GestionnaireJeu (Plateau p) { - plateau = p; + + + public GestionnaireJeu() { + this.plateau = new Plateau(new ArrayList()); + + } + + public static void main(String[] args) { + + switch(1){ + + case 1: + lancerPartie(); + case 2: + lancerConfiguration(); + default: + break; + } } public Plateau getPlateau() { @@ -20,11 +39,15 @@ public class GestionnaireJeu { this.plateau = plateau; } - public void lancerPartie(Configuration c) { - //TODO + public static void lancerPartie() { + } - public Configuration lancerConfiguration() { + public void jouer(Configuration c) { + + } + + public static Configuration lancerConfiguration() { //TODO return null; } diff --git a/src/main/View.java b/src/main/View.java index 83a3534..ebda5c1 100644 --- a/src/main/View.java +++ b/src/main/View.java @@ -1,5 +1,25 @@ package main; -public class View { +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; +public class View extends Application{ + + + + @Override + public void start(Stage primaryStage) throws Exception{ + Parent root = FXMLLoader.load(getClass().getResource("ressources/Plateau.fxml")); + primaryStage.setTitle("Shadow Hunters"); + primaryStage.setScene(new Scene(root)); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(args); + } + } diff --git a/src/personnage/Charles.java b/src/personnage/Charles.java index a082012..a9e0797 100644 --- a/src/personnage/Charles.java +++ b/src/personnage/Charles.java @@ -9,8 +9,8 @@ import main.Plateau; public class Charles extends CartePersonnage{ - public Charles(String nom, int hp, Joueur joueur) { - super(nom, nom, hp, joueur); + public Charles(Joueur joueur) { + super("Charles", "desc", 11, joueur); Action action = new ActionAltererStatistiquesJoueur("HP",-2,true); Effet effet = new EffetSelf(action); diff --git a/tests/personnage/CharlesTest.java b/tests/personnage/CharlesTest.java new file mode 100644 index 0000000..e57ad3b --- /dev/null +++ b/tests/personnage/CharlesTest.java @@ -0,0 +1,75 @@ +package personnage; + +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import main.Joueur; +import main.Plateau; + +class CharlesTest { + + Joueur j1; + Joueur j2; + Plateau p; + Allie a; + Charles c; + + @BeforeEach + void init() + { + List joueurs = new ArrayList(); + j1 = new Joueur("Michou"); + j2= new Joueur("MicheMiche"); + + joueurs.add(j1); + joueurs.add(j2); + + p = new Plateau(joueurs); + + a = new Allie(j1); + c = new Charles(j2); + + j1.setPlateau(p); + j1.setCartePersonnage(a); + + j2.setPlateau(p); + j2.setCartePersonnage(c); + + } + + + @Test + void attaquer() { + + // Le joueur n'est pas révélé (Charles), il attaque seulement 1 fois. + j2.setRevele(false); + j2.getCartePersonnage().attaquer(j1, 2); + j1.setStat(Joueur.PLAYER_HP, 6); + int pvAllie = j1.getCartePersonnage().getPv(); + + //on verifie que le joueur qui joue Allie n'est pas full hp + assertNotEquals((j1.getStat(Joueur.PLAYER_HP)),pvAllie); + + //je verifie que le joueur de Allie a bien subi 2 de dégâts + assertTrue((j1.getStat(Joueur.PLAYER_HP))==6); + + //Le joueur jouant Charles se révèle + j2.setRevele(true); + j2.getCartePersonnage().attaquer(j1, 2); + j1.setStat(Joueur.PLAYER_HP, 6); + //Charles réattaque en infligeant 3 point de blessures + j2.getCartePersonnage().attaquer(j1, 3); + + //je verifie que le joueur de Allie a bien subi 5 point de dégâts au total (2 au premier coup et 3 au deuxième) + j1.setStat(Joueur.PLAYER_HP, 3); + assertTrue((j1.getStat(Joueur.PLAYER_HP))==3); + + } + +}