revert stash

This commit is contained in:
Chiara 2020-05-06 15:32:07 +02:00
commit 2edaa6156e
29 changed files with 599 additions and 49 deletions

View File

@ -19,7 +19,13 @@ Pour gagner, les Hunters et Shadow doivent éliminer tous les personnages du cam
## Comment l'utiliser
Vous trouverez la documentation pour utliser notre application [ici].
Dans un premier temps, vous pouvez télécharger la dernière version de notre application en utilisant la commande :
```git clone https://github.com/PTE-SH/ShadowHunterGame.git```
Puis, il faut executez le ``ShadowHunterGame.exe`` pour pouvoir y jouer.
Ce projet repose sur le [Java JDK 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) pour pouvoir fonctionner.
## Auteurs

View File

@ -23,6 +23,12 @@ public class CarteEquipementStat<T extends Type> extends CarteEquipement<Type>{
this.setCondition(condition);
}
public CarteEquipementStat(Effet effet) {
super("","");
this.setEffet(effet);
this.setCondition(new Condition());
}
@Override
public void reverse(Joueur j) {
ActionAltererStatistiquesJoueur action = ((ActionAltererStatistiquesJoueur) this.getEffet().getAction()).getReverseAction();

View File

@ -1,6 +1,7 @@
package condition;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import main.Joueur;
@ -8,7 +9,7 @@ import personnage.CartePersonnage;
import personnage.CartePersonnage.Equipe;
public class ConditionType extends Condition{
public class ConditionEquipe extends Condition{
/**
*
@ -16,12 +17,16 @@ public class ConditionType extends Condition{
private static final long serialVersionUID = 8261153600401164649L;
private List<CartePersonnage.Equipe> equipes;
public ConditionType(Equipe e) {
public ConditionEquipe(Equipe e) {
this.equipes = new ArrayList<CartePersonnage.Equipe>();
this.equipes.add(e);
}
public ConditionType(List<CartePersonnage.Equipe> equipes){
public ConditionEquipe(Equipe...equipes) {
this.equipes = Arrays.asList(equipes);
}
public ConditionEquipe(List<CartePersonnage.Equipe> equipes){
this.equipes = new ArrayList<CartePersonnage.Equipe>();
this.equipes.addAll(equipes);

View File

@ -2,24 +2,33 @@ package database;
import carte.CarteEquipementStat;
import carte.CartePiochable;
import condition.Condition;
import condition.ConditionClassPersonnage;
import condition.ConditionEquipe;
import condition.ConditionMultiple;
import condition.ConditionReveal;
import condition.ConditionType;
import condition.ConditionStatistiques;
import effet.EffetChoisirCible;
import effet.EffetChoisirEffet;
import effet.EffetCiblerTous;
import effet.EffetMultiple;
import effet.EffetSelf;
import effet.action.Action;
import effet.action.ActionAltererStatistiquesJoueur;
import effet.action.ActionAltererStatistiquesJoueurRoll;
import effet.action.ActionMultiple;
import effet.action.ActionReveal;
import effet.action.ActionVoler;
import main.Joueur;
import main.TypeLumiere;
import main.TypeTenebre;
import main.TypeVision;
import personnage.Allie;
import personnage.Bob;
import personnage.CartePersonnage;
import personnage.Charles;
import personnage.Daniel;
import personnage.Emi;
import personnage.Franklin;
import personnage.Georges;
import personnage.LoupGarou;
import personnage.Metamorphe;
import personnage.Vampire;
@ -38,7 +47,7 @@ public class CreatingCardsTest {
//Avénement suprême
insert(3,new CartePiochable<TypeLumiere>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true))
,new ConditionMultiple(new ConditionType(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
));
//Barre de chocolat
@ -50,19 +59,17 @@ public class CreatingCardsTest {
//Bénédiction
insert(5,new CartePiochable<TypeLumiere>(new EffetChoisirCible(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,6, true))));
insert(5,new CartePiochable<TypeLumiere>(new EffetChoisirCible(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,6, true))));
// BOUSSOLE mystique
// 6
// 6
// 7
// 8
// Eau bénite
insert(9,new CartePiochable<TypeLumiere>(new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
insert(10,new CartePiochable<TypeLumiere>(new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
@ -75,7 +82,7 @@ public class CreatingCardsTest {
insert(12,new CarteEquipementStat<TypeLumiere>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true))
,new ConditionMultiple(new ConditionType(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
));
// Miroir divin
@ -97,6 +104,138 @@ public class CreatingCardsTest {
//Toge sainte
insert(16, new CartePiochable<TypeLumiere>(new EffetSelf(new ActionMultiple(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_RESISTANCE, 1, true),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, -1, true)))));
// Ténèbre
// Araignée Sanguinaire
insert(17, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
// Chauve - souris vampire
insert(18, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
insert(19, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
insert(20, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
// Dynamite
// 21
// Hache tueuse
insert(22,new CarteEquipementStat<TypeTenebre>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
// Hachoir maudit
insert(23,new CarteEquipementStat<TypeTenebre>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
// Mitrailleuse funeste
// 24
// Peau de banane
// 25
// Poupé démoniaque
// 26
insert(28,new CartePiochable<TypeTenebre>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true))
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.SHADOW), new ConditionReveal())
));
// 29
insert(30,new CartePiochable<TypeTenebre>(
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
insert(31,new CartePiochable<TypeTenebre>(
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
insert(32,new CarteEquipementStat<TypeTenebre>(
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
// Vision clairvoyante
insert(33, new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true)),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS)));
// Vision cupide
insert(34,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
insert(35,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision destructrice
insert(36, new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 12, ConditionStatistiques.MORE)));
// Vision divine
// Vision enivrante
insert(38,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
insert(39,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision Foudroyante
insert(40,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision furtive
insert(41,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
insert(42,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
// Vision Mortifère
insert(43,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision lugubre
insert(45,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision réconfortante
// Vision suprême
insert(48,new Allie(null));
insert(49,new Bob(null));
insert(50,new Charles(null));
insert(51,new Daniel(null));
insert(52,new Emi(null));
insert(53,new Franklin(null));
insert(54,new Georges(null));
insert(55,new LoupGarou(null));
insert(56,new Metamorphe(null));
insert(57,new Vampire(null));
}

View File

@ -1,21 +1,35 @@
package database;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class QueryGenerator {
public static String AllFrom(String table) {
return "SELECT * FROM " + getTable(table);
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
private final static String user = "shManager";
private final static String password = "shadowhunter1234";
public static String AllFrom(String tableName) {
return "SELECT * FROM " + getTable(tableName);
}
public static String WithId(String table, int d) {
return "SELECT * FROM " + getTable(table) + "WHERE id =" + d;
public static String WithId(String tableName, int d) {
return "SELECT * FROM " + getTable(tableName) + "WHERE id =" + d;
}
public static String WithName(String table, String name) {
return "SELECT * FROM " + getTable(table) + "WHERE nom ='" + name + "'";
public static String WithName(String tableName, String name) {
return "SELECT * FROM " + getTable(tableName) + "WHERE nom ='" + name + "'";
}
public static String getTable(String s) {
return "public." + '"' + s + '"';
public static String getTable(String tableName) {
return "public." + '"' + tableName + '"';
}
public static String getIdWithNameFrom(String table, String name) {
@ -26,5 +40,49 @@ public class QueryGenerator {
return "SELECT name FROM " + getTable(table) + "WHERE id =" + d;
}
public static String selectObjectWithId(int id, String tableName) {
return "SELECT objet FROM" + getTable(tableName) + " WHERE id =" + id;
}
public static Connection connect() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void queryInsertObject(int id, Object o) throws IOException, SQLException {
String table = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
byte[] object = bais.readAllBytes();
InputStream objectIS = new ByteArrayInputStream(object);
if(id <= 16) {
table = getTable("CartesLumiere");
} else if(id <= 32) {
table = getTable("CartesTenebre");
} else if(id <= 47) {
table = getTable("CartesVision");
} else if(id <= 57) {
table = getTable("CartesPersonnage");
} else if(id <= 61) {
table = getTable("CartesDos");
}
String query = null;
query = "UPDATE" + table + " SET objet = ";
Connection conn = connect();
PreparedStatement pst = conn.prepareStatement(query);
pst.setBinaryStream(4, objectIS);
pst.executeUpdate();
}
}

View File

@ -67,5 +67,5 @@ se.soigner=Se soigner
mode.claire=Mode clair
musique=Musique
langue=Langue
parametre=Paramétre
parametre=Paramètre
enregistrer=Enregistrer

View File

@ -0,0 +1,30 @@
package effet;
import java.util.Arrays;
import java.util.List;
import main.Joueur;
public class EffetMultiple extends Effet{
private List<Effet> effets;
/**
*
*/
private static final long serialVersionUID = 1936073174860639420L;
public EffetMultiple(Effet...effets) {
super(null);
this.effets = Arrays.asList(effets);
}
@Override
public void utiliser(Joueur joueur) {
for(Effet e : effets) {
e.utiliser(joueur);
}
}
}

View File

@ -8,6 +8,21 @@ import main.Joueur;
public class ActionVoler extends Action{
public final static boolean DONNER = false;
public final static boolean VOLER = true;
private boolean choix;
public ActionVoler(Boolean choix) {
super();
this.choix = choix;
}
/**
*
*/
private static final long serialVersionUID = 3770148032992025640L;
/**
* Lance l'action de voler une carte équipement.
* @param j1 Le joueur qui vol
@ -17,12 +32,24 @@ public class ActionVoler extends Action{
@Override
public void affecte(Joueur j1, Joueur j2) {
List<CarteEquipement> equipements = j2.getEquipements();
// J1 choisit quel équipement voler
CarteEquipement equipement = j1.choisir(equipements);
if(this.choix) {
j1.voler(j2,equipement);
List<CarteEquipement> equipements = j2.getEquipements();
// J1 choisit quel équipement voler
CarteEquipement<?> equipement = j1.choisir(equipements);
j1.voler(j2,equipement);
}else {
List<CarteEquipement> equipements = j1.getEquipements();
// J1 choisit quel équipement voler
CarteEquipement<?> equipement = j1.choisir(equipements);
j2.voler(j1,equipement);
}
}
}

View File

@ -17,7 +17,11 @@ public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
<<<<<<< HEAD
final URL fxmlURL = getClass().getResource("ressources/Jouer_tour(2c2)choisir_joueur.fxml"); // "ressources/Jouer_tour(1)lancer_des.fxml"
=======
final URL fxmlURL = getClass().getResource("ressources/Menu.fxml");
>>>>>>> 13ae661b3bfcbefc0024fd7828af03782c9a2e66
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane root = fxmlLoader.load();

View File

@ -16,6 +16,7 @@ import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class MenuController implements Initializable{
@ -50,12 +51,42 @@ public class MenuController implements Initializable{
}
public void afficherRegle(MouseEvent mouseEvent) {
@FXML
public void ouvrirParametres(MouseEvent mouseEvent) throws IOException{
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
EffetSonore.playSoundEffect(fileSound1);
System.out.println("Passage à l'écran des paramètres");
final URL fxmlURL = getClass().getResource("/ihm/ressources/parametre.fxml");
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
Pane pane = fxmlLoader.load();
rootPane.getChildren().setAll(pane);
}
@FXML
public void quitterLappli(MouseEvent mouseEvent) throws IOException{
System.exit(0);
}
@FXML
public void afficherRegle(MouseEvent mouseEvent) throws IOException {
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
EffetSonore.playSoundEffect(fileSound1);
System.out.println("blaaaa");
System.out.println("Passage à l'écran des règles");
final URL fxmlURL = getClass().getResource("/ihm/ressources/Regles.fxml");
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
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();
}
}

View File

@ -28,7 +28,7 @@ public class PauseController implements Initializable {
private CheckBox cbEffet;
String filepathMusique = "src//ihm//ressources//musique//The_Red_Fox_Tavern.wav";
InputStream fileMusique = getClass().getResourceAsStream("src//ihm//ressources//musique//The_Red_Fox_Tavern.wav");
InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav");
boolean MusiqueLancee = ParametreController.cbMusiqueCoche;
boolean SonLance = ParametreController.cbSonCoche;
@ -53,24 +53,21 @@ public class PauseController implements Initializable {
// Pour la musique
if (fileMusique != null) {
System.out.println("point d'arret 1");
if (cbMusique.isSelected()) {
System.out.println("\tLancement de la musique");
if (Musique.clipTimePosition == 0 && MusiqueLancee == false) { // si la musique n'a jamais été lancé
Musique.playMusique(fileMusique);
MusiqueLancee = true;
System.out.println("point d'arret 2");
} else
Musique.resumeMusique(Musique.clip); // si elle a deja été lancé mais mis en pause, reprend a partir du point d'arret
System.out.println("point d'arret 3");
} else {
Musique.pauseMusique(Musique.clip); // met en pause la musique
System.out.println("\tMise en pause de la musique");
}
}
else {
System.out.println("ON A UN PROBLEME, AUCUN POINT D'ARRET N'EST PASSE");
System.out.println("fichier audio non trouvé");
}
// Pour les effets sonores

View File

@ -69,7 +69,7 @@ public class PlateauController implements Initializable {
}
for(int i = 0; i<joueursIHM.size(); i++) {
joueursIHM.get(i).deplacerPionVie((int) (Math.random()*13));
joueursIHM.get(i).deplacerPionVie(0);
}

View File

@ -0,0 +1,90 @@
package ihm.controller;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Locale;
import java.util.ResourceBundle;
import ihm.EffetSonore;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class ReglesControlleur implements Initializable {
@FXML
private AnchorPane rootPane;
@FXML
private ImageView imageRegles;
private int index = 1;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
InputStream input = getClass().getResourceAsStream("/ihm/ressources/img/Regle1.png");
Image image = new Image(input);
imageRegles.setImage(image);
}
@FXML
public void pageSuivante(MouseEvent mouseEvent) throws IOException {
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
EffetSonore.playSoundEffect(fileSound1);
if (index < 4) {
index++;
}
System.out.println("Page suivante");
InputStream input = getClass().getResourceAsStream("/ihm/ressources/img/Regle" + index + ".png");
Image image = new Image(input);
imageRegles.setImage(image);
}
@FXML
public void pagePrecedente(MouseEvent mouseEvent) throws IOException {
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
EffetSonore.playSoundEffect(fileSound1);
if (index > 1) {
index--;
}
System.out.println("Page précédente");
InputStream input = getClass().getResourceAsStream("/ihm/ressources/img/Regle" + index + ".png");
Image image = new Image(input);
imageRegles.setImage(image);
}
@FXML
public void retourMenu(MouseEvent mouseEvent) throws IOException {
InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav");
EffetSonore.playSoundEffect(fileSound1);
System.out.println("Retour au Menu");
final URL fxmlURL = getClass().getResource("/ihm/ressources/Menu.fxml");
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
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();
}
}

View File

@ -9,11 +9,11 @@
<AnchorPane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/plateau.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.MenuController">
<children>
<VBox alignment="CENTER" prefHeight="802.0" prefWidth="1290.0">
<VBox alignment="CENTER" layoutX="-3.0" layoutY="-7.0" prefHeight="802.0" prefWidth="1290.0">
<children>
<ImageView fx:id="titre" fitHeight="190.0" fitWidth="528.0" pickOnBounds="true" preserveRatio="true">
<VBox.margin>
<Insets top="-250.0" />
<Insets top="-200.0" />
</VBox.margin>
</ImageView>
<Button mnemonicParsing="false" onMouseClicked="#commencerPartie" prefHeight="51.0" prefWidth="102.0" styleClass="bouton" text="%jouer">
@ -21,7 +21,15 @@
<Font size="24.0" />
</font>
<VBox.margin>
<Insets top="150.0" />
<Insets top="100.0" />
</VBox.margin>
</Button>
<Button layoutX="602.0" layoutY="480.0" mnemonicParsing="false" onMouseClicked="#ouvrirParametres" prefHeight="59.0" prefWidth="164.0" styleClass="bouton" text="Paramètres">
<font>
<Font size="24.0" />
</font>
<VBox.margin>
<Insets top="50.0" />
</VBox.margin>
</Button>
<Button mnemonicParsing="false" onMouseClicked="#afficherRegle" prefHeight="59.0" prefWidth="106.0" styleClass="bouton" text="%regles">
@ -32,6 +40,14 @@
<Insets top="50.0" />
</VBox.margin>
</Button>
<Button mnemonicParsing="false" onMouseClicked="#quitterLappli" prefHeight="48.0" prefWidth="108.0" styleClass="bouton" text="quitter">
<font>
<Font size="24.0" />
</font>
<VBox.margin>
<Insets top="50.0" />
</VBox.margin>
</Button>
</children>
</VBox>
</children>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="800.0" prefWidth="1280.0" styleClass="background" stylesheets="@style/plateau.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.ReglesControlleur">
<children>
<VBox alignment="CENTER" layoutX="-3.0" layoutY="-7.0" prefHeight="802.0" prefWidth="1290.0">
<children>
<ImageView fx:id="imageRegles" fitHeight="654.0" fitWidth="528.0" pickOnBounds="true" preserveRatio="true">
<VBox.margin>
<Insets />
</VBox.margin>
</ImageView>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<Button layoutX="519.0" layoutY="31.0" mnemonicParsing="false" onMouseClicked="#pagePrecedente" prefHeight="59.0" prefWidth="225.0" styleClass="bouton" text="Page précédente">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets right="20.0" />
</HBox.margin>
</Button>
<Button mnemonicParsing="false" onMouseClicked="#retourMenu" prefHeight="59.0" prefWidth="106.0" styleClass="bouton" text="Menu">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="20.0" right="20.0" />
</HBox.margin>
</Button>
<Button mnemonicParsing="false" onMouseClicked="#pageSuivante" prefHeight="59.0" prefWidth="195.0" styleClass="bouton" text="Page suivante">
<font>
<Font size="24.0" />
</font>
<HBox.margin>
<Insets left="20.0" />
</HBox.margin>
</Button>
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -87,7 +87,7 @@ public class Plateau extends Thread{
CarteLieu lieu5 = new CarteLieuType<TypeTenebre>("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler()));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)));
List<CarteLieu> cls = new ArrayList<CarteLieu>();
cls.add(lieu6);

View File

@ -15,6 +15,11 @@ import main.Plateau;
public class Allie extends Unique{
/**
*
*/
private static final long serialVersionUID = 8822533547275463314L;
public Allie(Joueur joueur) {
super("ALLIE","desc", 8, joueur);

View File

@ -8,13 +8,28 @@ import main.Joueur;
public class Bob extends CartePersonnage{
/**
*
*/
private static final long serialVersionUID = -5593891138436384632L;
public Bob() {
super("BOB","desc", 10, null);
Condition condition = new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_NB_EQUIPEMENTS, 5, ConditionStatistiques.MORE);
this.setCondition(condition);
EffetTarget effet = new EffetTarget(new ActionVoler(ActionVoler.VOLER));
this.setEffet(effet);
}
public Bob(Joueur joueur){
super("BOB","desc", 10, joueur);
Condition condition = new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_NB_EQUIPEMENTS, 5, ConditionStatistiques.MORE);
this.setCondition(condition);
EffetTarget effet = new EffetTarget(new ActionVoler());
EffetTarget effet = new EffetTarget(new ActionVoler(ActionVoler.VOLER));
this.setEffet(effet);
}

View File

@ -13,8 +13,33 @@ import main.Plateau;
public class Daniel extends CartePersonnage{
public Daniel(String nom, String desc ,int hp, Joueur joueur) throws Exception {
super(nom,desc, hp, joueur);
/**
*
*/
private static final long serialVersionUID = 6436431310604672660L;
public static final int HP = 13;
public Daniel(Joueur j) {
super("Daniel","desc", HP, j);
List<Condition> conditions = new ArrayList<Condition>();
List<Condition> conditions2 = new ArrayList<Condition>();
conditions.add(new WinConditionHunter());
conditions2.add(new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 0, ConditionStatistiques.LESS));
conditions2.add(new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS, 1, ConditionStatistiques.LESS));
conditions.add(new ConditionMultiple(conditions2));
Condition winCondition = new ConditionMultipleOR(conditions);
this.setCondition(winCondition);
}
public Daniel(String nom, String desc , Joueur joueur) throws Exception {
super(nom,desc,HP, joueur);
List<Condition> conditions = new ArrayList<Condition>();
List<Condition> conditions2 = new ArrayList<Condition>();
@ -31,6 +56,8 @@ public class Daniel extends CartePersonnage{
this.setCondition(winCondition);
}
public void utiliser() {
this.getJoueur().reveal();
}

View File

@ -4,6 +4,15 @@ import condition.WinConditionHunter;
import main.Joueur;
public class Emi extends CartePersonnage{
public static final int HP = 13;
public Emi(Joueur j) {
super("EMI","desc", HP, j);
this.setCondition(new WinConditionHunter());
}
//constructeur
public Emi(String nom, String desc ,int hp, Joueur joueur) {
super(nom,desc, hp, joueur);
@ -12,6 +21,9 @@ public class Emi extends CartePersonnage{
}
public void deplacer() {
}

View File

@ -6,9 +6,17 @@ import main.Plateau;
public class Georges extends Unique{
public Georges(Joueur joueur) {
super("Franklin", "desc", 14, joueur);
this.setCondition(new WinConditionHunter());
this.setEquipe(CartePersonnage.Equipe.HUNTER);
}
public Georges(String nom, int hp, Joueur joueur) {
super(nom, nom, hp, joueur);
this.setCondition(new WinConditionHunter());
this.setEquipe(CartePersonnage.Equipe.HUNTER);
}
public void utiliser() {

View File

@ -5,12 +5,22 @@ import main.Joueur;
public class LoupGarou extends CartePersonnage {
public static final int HP = 14;
public LoupGarou(Joueur j) {
super("LOUP-GAROU","desc", HP, j);
this.setCondition(new WinConditionShadow());
this.setEquipe(CartePersonnage.Equipe.SHADOW);
}
public LoupGarou(String nom, String desc ,int hp, Joueur joueur) {
super(nom,desc, hp, joueur);
this.setCondition(new WinConditionShadow());
}
public void utiliser() {
}

View File

@ -5,11 +5,24 @@ import main.Joueur;
public class Metamorphe extends CartePersonnage{
/**
*
*/
private static final long serialVersionUID = 8415184267445994107L;
public final static int HP = 11;
public Metamorphe(Joueur j) {
super("METAMORPHE","desc", HP, j);
this.setCondition(new WinConditionShadow());
}
public Metamorphe(String nom, String desc ,int hp, Joueur joueur) {
super(nom,desc, hp, joueur);
this.setCondition(new WinConditionShadow());
}
public void utiliser() {
}
}

View File

@ -24,7 +24,7 @@ class ConditionTypeTest {
List<CartePersonnage.Equipe> equipes = new ArrayList<CartePersonnage.Equipe>();
equipes.add(CartePersonnage.Equipe.HUNTER);
equipes.add(CartePersonnage.Equipe.NEUTRE);
ConditionType ct = new ConditionType(equipes);
ConditionEquipe ct = new ConditionEquipe(equipes);
Joueur j = new Joueur(null);
@ -46,7 +46,7 @@ class ConditionTypeTest {
List<CartePersonnage.Equipe> equipes = new ArrayList<CartePersonnage.Equipe>();
ConditionType ct = new ConditionType(equipes);
ConditionEquipe ct = new ConditionEquipe(equipes);
Joueur j = new Joueur(null);
j.setCartePersonnage(new Allie(j));
assertFalse(ct.isTrue(j));

View File

@ -82,7 +82,7 @@ class PlateauTest {
CarteLieu lieu5 = new CarteLieuType<TypeTenebre>("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler()));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)));
List<CarteLieu> cls = new ArrayList<CarteLieu>();
cls.add(lieu6);