c'est le bordel
This commit is contained in:
commit
c55a49502c
@ -12,9 +12,16 @@ public abstract class CarteCondition extends CarteEffet{
|
||||
|
||||
private Condition condition;
|
||||
|
||||
|
||||
/*
|
||||
* @param j le joueur utilisant son effet
|
||||
*/
|
||||
@Override
|
||||
public void utiliser(Joueur j) {
|
||||
if(this.condition.isTrue(j)) {
|
||||
super.utiliser(j);
|
||||
}
|
||||
}
|
||||
|
||||
public Condition getCondition() {
|
||||
return condition;
|
||||
@ -23,6 +30,4 @@ public abstract class CarteCondition extends CarteEffet{
|
||||
public void setCondition(Condition condition) {
|
||||
this.condition = condition;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,19 +5,18 @@ import effet.Effet;
|
||||
|
||||
public abstract class CarteEffet extends Carte{
|
||||
|
||||
private Effet effet;
|
||||
|
||||
public CarteEffet(String nom, String description) {
|
||||
super(nom, description);
|
||||
|
||||
}
|
||||
|
||||
private Effet effet;
|
||||
|
||||
|
||||
/*
|
||||
* @param j Appel la méthode utiliser de effet sur le joueur j
|
||||
*/
|
||||
public void utiliser(Joueur j) {
|
||||
effet.utiliser(j);
|
||||
this.effet.utiliser(j);
|
||||
}
|
||||
|
||||
public void setEffet(Effet e) {
|
||||
|
@ -9,8 +9,6 @@ import main.Joueur;
|
||||
|
||||
public class CarteLieu extends CarteEffet{
|
||||
|
||||
|
||||
|
||||
private List<Joueur> listeJoueurs;
|
||||
private Point coordinates;
|
||||
private CarteLieu voisin;
|
||||
@ -21,6 +19,9 @@ public class CarteLieu extends CarteEffet{
|
||||
this.listeJoueurs = new ArrayList<Joueur>();
|
||||
}
|
||||
|
||||
/*
|
||||
* @param j Appel la méthode utiliser de effet sur le joueur j
|
||||
*/
|
||||
public void utiliser(Joueur j) {
|
||||
|
||||
this.getEffet().utiliser(j);
|
||||
|
@ -16,6 +16,9 @@ public class CarteLieuType<T extends Type> extends CarteLieu{
|
||||
this.pioche = pioche;
|
||||
}
|
||||
|
||||
/*
|
||||
* @param j Appel la méthode utiliser de effet sur le joueur j
|
||||
*/
|
||||
public void utiliser(Joueur j) {
|
||||
|
||||
CartePiochable<?> carte = pioche.piocher();
|
||||
|
@ -11,6 +11,9 @@ public class CartePiochable<T extends Type> extends CarteCondition{
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/*
|
||||
* @param j Appel la méthode utiliser de effet sur le joueur j
|
||||
*/
|
||||
public void utiliser(Joueur j) {
|
||||
super.utiliser(j);
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import main.Joueur;
|
||||
import main.Type;
|
||||
|
||||
|
||||
public class Equipement extends CartePiochable<Type>{
|
||||
public abstract class Equipement extends CartePiochable<Type>{
|
||||
|
||||
|
||||
public Equipement(String nom, String description) {
|
||||
@ -13,6 +13,11 @@ public class Equipement extends CartePiochable<Type>{
|
||||
}
|
||||
|
||||
public void utiliser(Joueur j) {
|
||||
|
||||
if(!j.getEquipements().contains(this)) {
|
||||
j.ajouterEquipement(this);
|
||||
}
|
||||
super.utiliser(j);
|
||||
}
|
||||
|
||||
public abstract void reverse(Joueur j);
|
||||
}
|
||||
|
17
src/carte/EquipementStat.java
Normal file
17
src/carte/EquipementStat.java
Normal file
@ -0,0 +1,17 @@
|
||||
package carte;
|
||||
|
||||
import effet.action.ActionAltererStatistiquesJoueur;
|
||||
import main.Joueur;
|
||||
|
||||
public class EquipementStat extends Equipement{
|
||||
|
||||
public EquipementStat(String nom, String description) {
|
||||
super(nom, description);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reverse(Joueur j) {
|
||||
ActionAltererStatistiquesJoueur action = ((ActionAltererStatistiquesJoueur) this.getEffet().getAction()).getReverseAction();
|
||||
action.affecte(j, j);
|
||||
}
|
||||
}
|
@ -2,7 +2,8 @@ package condition;
|
||||
|
||||
import main.Joueur;
|
||||
|
||||
public abstract class Condition {
|
||||
|
||||
public abstract boolean isTrue(Joueur joueur);
|
||||
public class Condition {
|
||||
public boolean isTrue(Joueur joueur) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class EffetChoisirCible extends Effet{
|
||||
@Override
|
||||
public void utiliser(Joueur joueur) {
|
||||
|
||||
Joueur j2 = joueur.choisirTous();
|
||||
Joueur j2 = joueur.choisiParmisTous();
|
||||
Action action = this.getAction();
|
||||
|
||||
action.affecte(joueur, j2);
|
||||
|
@ -2,13 +2,10 @@ package effet.action;
|
||||
import main.Joueur;
|
||||
public class ActionAltererStatistiquesJoueur extends Action{
|
||||
|
||||
|
||||
|
||||
private String key;
|
||||
private int valeur;
|
||||
private boolean ajouter;
|
||||
|
||||
|
||||
/**
|
||||
* Constructeur ActionAltererStatistiquesJoueur
|
||||
* @param key Le clé qui correspond à la valeur à modifier
|
||||
@ -24,8 +21,8 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
||||
* ActionAltererStatistiquesJoueur("PV", 2, false)
|
||||
* <br>
|
||||
* Change les PV's du joueur à 2
|
||||
*
|
||||
*/
|
||||
|
||||
public ActionAltererStatistiquesJoueur(String key, int valeur, boolean ajouter)
|
||||
{
|
||||
this.key = key;
|
||||
@ -33,7 +30,6 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
||||
this.ajouter = ajouter;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lance l'action de modification de statistiques
|
||||
* @param j1 Le joueur qui modifie
|
||||
@ -44,12 +40,13 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
||||
{
|
||||
if(ajouter)
|
||||
{
|
||||
j2.setStat(key, j2.getStat(key)+valeur);
|
||||
j2.addToStat(key, valeur);
|
||||
}else {
|
||||
j2.setStat(key, valeur);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ActionAltererStatistiquesJoueur getReverseAction() {
|
||||
return new ActionAltererStatistiquesJoueur(key, -valeur, true);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package effet.action;
|
||||
|
||||
import main.Equipement;
|
||||
import java.util.List;
|
||||
|
||||
import carte.Equipement;
|
||||
import main.Joueur;
|
||||
|
||||
public class ActionVoler extends Action{
|
||||
@ -15,7 +17,7 @@ public class ActionVoler extends Action{
|
||||
@Override
|
||||
public void affecte(Joueur j1, Joueur j2) {
|
||||
|
||||
Equipement[] equipements = j2.getEquipements();
|
||||
List<Equipement> equipements = j2.getEquipements();
|
||||
|
||||
// J1 choisit quel équipement voler
|
||||
Equipement equipement = j1.choisir(equipements);
|
||||
|
@ -10,7 +10,7 @@ import javafx.stage.Stage;
|
||||
public class Main extends Application{
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception{
|
||||
Parent root = FXMLLoader.load(getClass().getResource("ressources/Menu.fxml"));
|
||||
Parent root = FXMLLoader.load(getClass().getResource("ressources/jouerSonTour6.fxml"));
|
||||
primaryStage.setTitle("Shadow Hunters");
|
||||
primaryStage.setScene(new Scene(root));
|
||||
primaryStage.show();
|
||||
|
26
src/ihm/controller/JouerSonTour1Controller.java
Normal file
26
src/ihm/controller/JouerSonTour1Controller.java
Normal file
@ -0,0 +1,26 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour1Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void lancerDes(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour2.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
}
|
||||
}
|
37
src/ihm/controller/JouerSonTour2Controller.java
Normal file
37
src/ihm/controller/JouerSonTour2Controller.java
Normal file
@ -0,0 +1,37 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour2Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void ignorerEtape(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour3.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void capaciteLieu(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour5.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
|
||||
}
|
35
src/ihm/controller/JouerSonTour3Controller.java
Normal file
35
src/ihm/controller/JouerSonTour3Controller.java
Normal file
@ -0,0 +1,35 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour3Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
System.out.println("nulle");
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void choixJoueur(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour4.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void equipementVole(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour5.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
}
|
19
src/ihm/controller/JouerSonTour4Controller.java
Normal file
19
src/ihm/controller/JouerSonTour4Controller.java
Normal file
@ -0,0 +1,19 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour4Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
29
src/ihm/controller/JouerSonTour5Controller.java
Normal file
29
src/ihm/controller/JouerSonTour5Controller.java
Normal file
@ -0,0 +1,29 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour5Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void equipementVole(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouerSonTour6.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
|
||||
}
|
35
src/ihm/controller/JouerSonTour6Controller.java
Normal file
35
src/ihm/controller/JouerSonTour6Controller.java
Normal file
@ -0,0 +1,35 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTour6Controller implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void piocherVision(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouer_Son_Tour_piocher_vision.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void piocherTenebre(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouer_Son_Tour_piocher_lum_et_ten.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
}
|
29
src/ihm/controller/JouerSonTourDonnerVisionController.java
Normal file
29
src/ihm/controller/JouerSonTourDonnerVisionController.java
Normal file
@ -0,0 +1,29 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class JouerSonTourDonnerVisionController implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void attaquer(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouer_Son_Tour_recevoir_blessure.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
19
src/ihm/controller/PiocherLumiereTenebreController.java
Normal file
19
src/ihm/controller/PiocherLumiereTenebreController.java
Normal file
@ -0,0 +1,19 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class PiocherLumiereTenebreController implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
28
src/ihm/controller/PiocherVisionController.java
Normal file
28
src/ihm/controller/PiocherVisionController.java
Normal file
@ -0,0 +1,28 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.input.MouseEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class PiocherVisionController implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@FXML
|
||||
public void voirCarte(MouseEvent mouseEvent) throws IOException{
|
||||
|
||||
Pane pane = FXMLLoader.load(getClass().getResource("../ressources/jouer_Son_Tour_donner_vision.fxml"));
|
||||
rootPane.getChildren().setAll(pane);
|
||||
|
||||
}
|
||||
|
||||
}
|
19
src/ihm/controller/RecevoirBlessureController.java
Normal file
19
src/ihm/controller/RecevoirBlessureController.java
Normal file
@ -0,0 +1,19 @@
|
||||
package ihm.controller;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.layout.Pane;
|
||||
|
||||
public class RecevoirBlessureController implements Initializable{
|
||||
@FXML private Pane rootPane;
|
||||
|
||||
@Override
|
||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -8,8 +8,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTourDonnerVisionController">
|
||||
<children>
|
||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
||||
<children>
|
||||
@ -17,7 +16,7 @@
|
||||
<children>
|
||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" text="Joueur 1" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#attaquer" text="Joueur 1" />
|
||||
</children>
|
||||
</HBox>
|
||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
|
||||
|
@ -7,8 +7,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PiocherLumiereTenebreController">
|
||||
<children>
|
||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
||||
<children>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PiocherVisionController">
|
||||
<children>
|
||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
||||
<children>
|
||||
@ -37,7 +37,7 @@
|
||||
</HBox>
|
||||
<HBox alignment="CENTER" prefHeight="69.0" prefWidth="600.0">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" text="Voir carte" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#voirCarte" text="Voir carte" />
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
|
@ -5,8 +5,7 @@
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.RecevoirBlessureController">
|
||||
<children>
|
||||
<HBox alignment="CENTER" layoutY="1.0" prefHeight="400.0" prefWidth="600.0">
|
||||
<children>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="589.0" prefWidth="881.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="589.0" prefWidth="881.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour1Controller">
|
||||
<children>
|
||||
<Label layoutX="265.0" layoutY="29.0" text="C'est au tour du ">
|
||||
<font>
|
||||
@ -16,7 +16,7 @@
|
||||
</Label>
|
||||
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="DODGERBLUE" height="200.0" layoutX="221.0" layoutY="135.0" stroke="BLACK" strokeType="INSIDE" width="200.0" />
|
||||
<Polygon fill="DODGERBLUE" layoutX="551.0" layoutY="216.0" points="-75.79998779296875, 98.80001831054688, 97.0, 98.80001831054688, 8.20001220703125, -59.199981689453125" stroke="BLACK" strokeType="INSIDE" />
|
||||
<Button layoutX="401.0" layoutY="394.0" mnemonicParsing="false" text="Lancer les dés" />
|
||||
<Button layoutX="401.0" layoutY="394.0" mnemonicParsing="false" onMouseClicked="#lancerDes" text="Lancer les dés" />
|
||||
<Label layoutX="275.0" layoutY="222.0" text="Score dés 1">
|
||||
<font>
|
||||
<Font size="18.0" />
|
||||
|
@ -6,8 +6,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="534.0" prefWidth="714.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="534.0" prefWidth="714.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour2Controller">
|
||||
<children>
|
||||
<Label layoutX="355.0" layoutY="172.0" text="Description capacité de la carte lieux ">
|
||||
<font>
|
||||
@ -15,8 +14,8 @@
|
||||
</font>
|
||||
</Label>
|
||||
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="DODGERBLUE" height="268.0" layoutX="96.0" layoutY="147.0" stroke="BLACK" strokeType="INSIDE" width="200.0" />
|
||||
<Button layoutX="348.0" layoutY="242.0" mnemonicParsing="false" text="Utiliser la capacité du lieux" />
|
||||
<Button layoutX="542.0" layoutY="242.0" mnemonicParsing="false" text="Sauter cette étape" />
|
||||
<Button layoutX="348.0" layoutY="242.0" mnemonicParsing="false" onMouseClicked="#capaciteLieu" text="Utiliser la capacité du lieux" />
|
||||
<Button layoutX="542.0" layoutY="242.0" mnemonicParsing="false" onMouseClicked="#ignorerEtape" text="Sauter cette étape" />
|
||||
<Label layoutX="168.0" layoutY="273.0" text="Carte lieux" />
|
||||
</children>
|
||||
</Pane>
|
||||
|
@ -6,12 +6,11 @@
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="451.0" prefWidth="654.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="451.0" prefWidth="654.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour3Controller">
|
||||
<children>
|
||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="661.0" spacing="60.0">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" text="Joueur 1" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#choixJoueur" text="Joueur 1" />
|
||||
<Button mnemonicParsing="false" text="Joueur 2" />
|
||||
<Button mnemonicParsing="false" text="Joueur 3" />
|
||||
<Button mnemonicParsing="false" text="Joueur 4" />
|
||||
|
@ -7,7 +7,7 @@
|
||||
<?import javafx.scene.shape.Rectangle?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="589.0" prefWidth="881.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="589.0" prefWidth="881.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour4Controller">
|
||||
<children>
|
||||
<Label layoutX="401.0" layoutY="29.0" text="attaque">
|
||||
<font>
|
||||
|
@ -6,8 +6,7 @@
|
||||
<?import javafx.scene.layout.Pane?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour5Controller">
|
||||
<children>
|
||||
<HBox layoutX="11.0" layoutY="14.0" prefHeight="60.0" prefWidth="345.0" spacing="30.0">
|
||||
<children>
|
||||
|
@ -7,8 +7,7 @@
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
|
||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="419.0" prefWidth="614.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
|
||||
<Pane fx:id="rootPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="419.0" prefWidth="614.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.JouerSonTour6Controller">
|
||||
<children>
|
||||
<HBox alignment="CENTER" layoutX="97.0" layoutY="49.0" prefHeight="340.0" prefWidth="489.0" spacing="60.0">
|
||||
<children>
|
||||
@ -19,9 +18,9 @@
|
||||
</Label>
|
||||
<VBox alignment="CENTER" prefHeight="200.0" prefWidth="100.0" spacing="60.0">
|
||||
<children>
|
||||
<Button mnemonicParsing="false" text="Carte vision" />
|
||||
<Button mnemonicParsing="false" text="Carte ténébre" />
|
||||
<Button mnemonicParsing="false" text="Carte lumière" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#piocherVision" text="Carte vision" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#piocherTenebre" text="Carte ténébre" />
|
||||
<Button mnemonicParsing="false" onMouseClicked="#piocherTenebre" text="Carte lumière" />
|
||||
</children>
|
||||
</VBox>
|
||||
</children>
|
||||
|
@ -147,7 +147,7 @@ public class ControleurIA {
|
||||
|
||||
// bob : si attaque joueur possedant equipement 70?% devoilement
|
||||
public boolean devoilerIABob(JoueurVirtuel jIA, Joueur jAttaquee) {
|
||||
if (jAttaquee.getNbEquipments() > 0 && getRandomPercentage() < 70)
|
||||
if (jAttaquee.getStat(Joueur.PLAYER_NB_EQUIPEMENTS) > 0 && getRandomPercentage() < 70)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
package main;
|
||||
|
||||
public class Effet {
|
||||
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
package main;
|
||||
|
||||
public class Equipement {
|
||||
|
||||
}
|
@ -1,51 +1,36 @@
|
||||
package main;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import condition.Condition;
|
||||
import carte.Equipement;
|
||||
|
||||
public class GestionnaireEquipements {
|
||||
// String est le nom de l'equip, et Equip c'est l'objet, on suppose ici qu'il ne
|
||||
// peut pas y avoir de doublon d'equipement
|
||||
private Map<String, Equipement> equipements = new HashMap<>();
|
||||
|
||||
public int getNbEquipments() {
|
||||
return equipements.size();
|
||||
private Joueur j;
|
||||
private List<Equipement> equipements;
|
||||
|
||||
public GestionnaireEquipements(Joueur j) {
|
||||
this.j = j;
|
||||
this.equipements = new ArrayList<Equipement>();
|
||||
}
|
||||
|
||||
// precondition : verifier que le gestionnaire contient l'equipement avec
|
||||
// containsEquipement
|
||||
public Equipement getEquipement(String key) {
|
||||
return equipements.get(key);
|
||||
public void ajouter(Equipement e) {
|
||||
this.equipements.add(e);
|
||||
e.utiliser(this.j);
|
||||
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, 1);
|
||||
}
|
||||
|
||||
public boolean containsEquipement(String key) {
|
||||
return equipements.containsKey(key);
|
||||
public void retirer(Equipement e) {
|
||||
if(this.equipements.contains(e)) {
|
||||
e.reverse(j);
|
||||
this.equipements.remove(e);
|
||||
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
|
||||
}
|
||||
}
|
||||
|
||||
public void addEquipement(String s, Equipement e) {
|
||||
equipements.put(s, e);
|
||||
}
|
||||
|
||||
// ex : si le joueur se fait voler un equipement, on l'enleve de la liste
|
||||
// d'equipements
|
||||
public Equipement removeEquipement(String key) {
|
||||
return equipements.remove(key);
|
||||
}
|
||||
|
||||
// methode qui renvoit une liste des effets des equipements du joueur qui
|
||||
// s'activeront dans une certaine phase de la partie par rapport a la condition
|
||||
// en parametre
|
||||
public List<Effet> getEffets(Condition c) {
|
||||
// TODO
|
||||
return null;
|
||||
}
|
||||
|
||||
// pour methode choisir de joueur
|
||||
public Equipement[] getArrayEquipements() {
|
||||
return (Equipement[]) equipements.values().toArray();
|
||||
public List<Equipement> getEquipements() {
|
||||
return equipements;
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,12 @@
|
||||
package main;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import effet.Effet;
|
||||
|
||||
public class GestionnaireJeu {
|
||||
private Plateau plateau;
|
||||
private View view;
|
||||
|
||||
public GestionnaireJeu (Plateau p) {
|
||||
plateau = p;
|
||||
@ -24,4 +29,27 @@ public class GestionnaireJeu {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Joueur choisirParmisTous(Joueur joueur, List<Joueur> joueurs) {
|
||||
return joueur;
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents(Joueur joueur, List<Joueur> joueurs) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import carte.Equipement;
|
||||
import carte.EquipementStat;
|
||||
import effet.Effet;
|
||||
import personnage.CartePersonnage;
|
||||
|
||||
@ -39,7 +41,7 @@ public class Joueur {
|
||||
public Joueur(String nom) {
|
||||
this.nom = nom;
|
||||
this.revele = false;
|
||||
|
||||
this.gestionnaireEquipements = new GestionnaireEquipements(this);
|
||||
|
||||
stats = new HashMap<>();
|
||||
|
||||
@ -48,7 +50,8 @@ public class Joueur {
|
||||
|
||||
//stats.put(PLAYER_HP, char.getHP());
|
||||
//stats.put(PLAYER_TURN, 1);
|
||||
//stats.put(PLAYER_DAMAGE, 0); - dégats en +
|
||||
stats.put(PLAYER_DAMAGE, 0);
|
||||
stats.put(PLAYER_NB_EQUIPEMENTS, 0);
|
||||
//stats.put(PLAYER_RESISTANCE, 0);
|
||||
//stats.put(PLAYER_REVEAL, 0);
|
||||
//stats.put(PLAYER_IMMUNITY, 0);
|
||||
@ -71,15 +74,12 @@ public class Joueur {
|
||||
if(stats.containsKey(key)) {
|
||||
return stats.get(key);
|
||||
}else {
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int getNbEquipments() {
|
||||
return gestionnaireEquipements.getNbEquipments();
|
||||
}
|
||||
|
||||
public List<Joueur> getJoueursAdjacents() {
|
||||
|
||||
List<Joueur> joueurs = this.carteLieu.getJoueursAdjacents();
|
||||
@ -87,17 +87,16 @@ public class Joueur {
|
||||
return joueurs;
|
||||
}
|
||||
|
||||
public Equipement[] getEquipements() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public List<Equipement> getEquipements() {
|
||||
return this.gestionnaireEquipements.getEquipements();
|
||||
}
|
||||
|
||||
public void voler(Joueur j2, Equipement equipement) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
j2.gestionnaireEquipements.retirer(equipement);
|
||||
this.gestionnaireEquipements.ajouter(equipement); }
|
||||
|
||||
public Equipement choisir(Equipement[] equipements) {
|
||||
public Equipement choisir(List<Equipement> equipements) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
@ -108,7 +107,6 @@ public class Joueur {
|
||||
|
||||
if(blessure > 0)
|
||||
{
|
||||
j2.addToStat(PLAYER_HP, -blessure);
|
||||
this.cartePersonnage.attaquer(j2, blessure);
|
||||
}
|
||||
}
|
||||
@ -128,7 +126,7 @@ public class Joueur {
|
||||
public void addToStat(String key, int valeur)
|
||||
{
|
||||
int valeurBase = this.getStat(key);
|
||||
this.setStat(Joueur.PLAYER_HP,valeurBase+valeur);
|
||||
this.setStat(key,valeurBase+valeur);
|
||||
}
|
||||
|
||||
|
||||
@ -136,14 +134,20 @@ public class Joueur {
|
||||
return this.plateau;
|
||||
}
|
||||
|
||||
public boolean choisir() {
|
||||
return this.plateau.choisir(this);
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return this.plateau.choisirAdjacents(this);
|
||||
}
|
||||
|
||||
public Effet choisir(Effet[] effets) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return this.plateau.choisirEffet(this,effets);
|
||||
}
|
||||
|
||||
public Joueur choisiParmisTous() {
|
||||
return this.plateau.choisirParmisTous(this);
|
||||
}
|
||||
|
||||
public boolean getRevele() {
|
||||
@ -167,10 +171,7 @@ public class Joueur {
|
||||
this.plateau = plateau2;
|
||||
}
|
||||
|
||||
public boolean choisir() {
|
||||
// TODO Auto-generated method stub
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void utiliserEffetLieu() {
|
||||
this.carteLieu.utiliser(this);
|
||||
@ -186,10 +187,7 @@ public class Joueur {
|
||||
|
||||
}
|
||||
|
||||
public Joueur choisirTous() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public CarteLieu getCarteLieu() {
|
||||
return this.carteLieu;
|
||||
@ -198,4 +196,20 @@ public class Joueur {
|
||||
public String getNom() {
|
||||
return this.nom;
|
||||
}
|
||||
public void reveal() {
|
||||
this.revele = true;
|
||||
}
|
||||
|
||||
public void setRevele(boolean b) {
|
||||
this.revele = b;
|
||||
}
|
||||
|
||||
public void ajouterEquipement(Equipement equipement) {
|
||||
this.gestionnaireEquipements.ajouter(equipement);
|
||||
}
|
||||
|
||||
public void retirerEquipement(Equipement equipement) {
|
||||
this.gestionnaireEquipements.retirer(equipement);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package main;
|
||||
import java.util.List;
|
||||
|
||||
import carte.Equipement;
|
||||
import effet.Effet;
|
||||
|
||||
|
||||
|
@ -23,7 +23,6 @@ public class Pioche<T extends Type> {
|
||||
}
|
||||
|
||||
public CartePiochable<?> piocher() {
|
||||
|
||||
return cartesPiochables.pop();
|
||||
}
|
||||
}
|
||||
|
@ -7,9 +7,11 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import effet.Effet;
|
||||
|
||||
public class Plateau {
|
||||
|
||||
private GestionnaireJeu gj;
|
||||
private List<Joueur> joueurs;
|
||||
private List<CarteLieu> lieux;
|
||||
|
||||
@ -27,6 +29,9 @@ public class Plateau {
|
||||
|
||||
|
||||
public Plateau(List<Joueur> joueurs) {
|
||||
|
||||
joueurs.forEach(x -> x.setPlateau(this));
|
||||
|
||||
this.joueurs = joueurs;
|
||||
this.lieux = new ArrayList<>();
|
||||
|
||||
@ -159,7 +164,6 @@ public class Plateau {
|
||||
|
||||
}else {
|
||||
|
||||
//TODO Throw exception
|
||||
}
|
||||
}
|
||||
|
||||
@ -167,4 +171,30 @@ public class Plateau {
|
||||
this.lieux = lieux;
|
||||
shuffleLieux();
|
||||
}
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
return gj.choisir(joueur);
|
||||
}
|
||||
|
||||
public Joueur choisirAdjacents(Joueur joueur) {
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
CarteLieu cl = joueur.getCarteLieu();
|
||||
|
||||
joueurs.addAll(cl.getJoueurs());
|
||||
joueurs.remove(joueur);
|
||||
joueurs.addAll(cl.getJoueursAdjacents());
|
||||
|
||||
return gj.choisirAdjacents(joueur, joueurs);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
||||
return gj.choisirEffet(joueur,effets);
|
||||
}
|
||||
|
||||
public Joueur choisirParmisTous(Joueur joueur) {
|
||||
List<Joueur> joueurs = this.getJoueurs();
|
||||
return gj.choisirParmisTous(joueur,joueurs);
|
||||
}
|
||||
}
|
||||
|
5
src/main/View.java
Normal file
5
src/main/View.java
Normal file
@ -0,0 +1,5 @@
|
||||
package main;
|
||||
|
||||
public class View {
|
||||
|
||||
}
|
@ -18,14 +18,14 @@ public class Allie extends Unique{
|
||||
public Allie(Joueur joueur) {
|
||||
super("ALLIE","desc", 8, joueur);
|
||||
|
||||
Action action = new ActionAltererStatistiquesJoueur("HP",this.getPv(),false);
|
||||
Action action = new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,this.getPv(),false);
|
||||
Effet effet = new EffetSelf(action);
|
||||
this.setEffet(effet);
|
||||
|
||||
List<Condition> conditions = new ArrayList<Condition>();
|
||||
|
||||
conditions.add(new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.PARTIE_FINIE, 1, ConditionStatistiques.EQUAL));
|
||||
conditions.add(new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 0, ConditionStatistiques.MORE));
|
||||
conditions.add(new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 0, ConditionStatistiques.LESS));
|
||||
|
||||
Condition winCondition = new ConditionMultiple(conditions);
|
||||
|
||||
@ -40,16 +40,9 @@ public class Allie extends Unique{
|
||||
*/
|
||||
public void utiliser() {
|
||||
|
||||
if(!this.isCapaciteUsed()) {
|
||||
if(this.getJoueur().getRevele() && !this.isCapaciteUsed()) {
|
||||
this.getEffet().utiliser(this.getJoueur());
|
||||
this.setCapaciteUsed(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,8 +8,8 @@ import main.Joueur;
|
||||
|
||||
public class Bob extends CartePersonnage{
|
||||
|
||||
public Bob(String nom, String desc ,int hp, Joueur joueur) throws Exception {
|
||||
super(nom,desc, hp, joueur);
|
||||
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);
|
||||
|
||||
@ -19,25 +19,24 @@ public class Bob extends CartePersonnage{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int attaque) {
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
|
||||
if(attaque >= 2 && j.getRevele()) {
|
||||
if(blessure >= 2 && j.getRevele()) {
|
||||
|
||||
Joueur thisJoueur = this.getJoueur();
|
||||
|
||||
if(thisJoueur.choisir()) {
|
||||
((EffetTarget)this.getEffet()).setTarget(j);
|
||||
utiliser();
|
||||
this.utiliser(thisJoueur);
|
||||
}else {
|
||||
super.attaquer(j, blessure);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
Joueur j = this.getJoueur();
|
||||
this.getEffet().utiliser(j);
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -12,11 +12,15 @@ public abstract class CartePersonnage extends CarteCondition {
|
||||
super(nom, description);
|
||||
this.pv = pv;
|
||||
this.joueur = joueur;
|
||||
joueur.setCartePersonnage(this);
|
||||
}
|
||||
|
||||
public abstract void utiliser();
|
||||
|
||||
public abstract void attaquer(Joueur j, int blessure);
|
||||
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
j.addToStat(Joueur.PLAYER_HP, -blessure);
|
||||
}
|
||||
|
||||
public boolean victoire(){
|
||||
return this.getCondition().isTrue(this.joueur);
|
||||
@ -27,7 +31,7 @@ public abstract class CartePersonnage extends CarteCondition {
|
||||
}
|
||||
|
||||
public void setJoueur(Joueur j) {
|
||||
joueur=j;
|
||||
this.joueur=j;
|
||||
}
|
||||
|
||||
public void deplacer() {
|
||||
@ -38,4 +42,6 @@ public abstract class CartePersonnage extends CarteCondition {
|
||||
return pv;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -18,19 +18,20 @@ public class Charles extends CartePersonnage{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
|
||||
if(this.getJoueur().getRevele()){
|
||||
Joueur joueur = this.getJoueur();
|
||||
super.attaquer(j, blessure);
|
||||
|
||||
if(joueur.getStat(Joueur.PLAYER_HP) > 2 && joueur.getRevele()){
|
||||
|
||||
// TODO Choisir effet
|
||||
Plateau p = j.getPlateau();
|
||||
utiliser();
|
||||
utiliser(joueur);
|
||||
p.attaquer(this.getJoueur(), j);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
this.getEffet().utiliser(this.getJoueur());
|
||||
}
|
||||
}
|
||||
|
@ -26,21 +26,13 @@ public class Daniel extends CartePersonnage{
|
||||
|
||||
conditions.add(new ConditionMultiple(conditions2));
|
||||
|
||||
|
||||
Condition winCondition = new ConditionMultipleOR(conditions);
|
||||
|
||||
this.setCondition(winCondition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Listener mort
|
||||
|
||||
this.getJoueur().reveal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -11,21 +11,12 @@ public class Emi extends CartePersonnage{
|
||||
this.setCondition(new WinConditionHunter());
|
||||
}
|
||||
|
||||
//m<EFBFBD>thode
|
||||
|
||||
public void deplacer() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import main.Plateau;
|
||||
|
||||
public class Franklin extends Unique{
|
||||
|
||||
//constructeur
|
||||
public Franklin(String nom, int hp, Joueur joueur) {
|
||||
super(nom, nom, hp, joueur);
|
||||
this.setCondition(new WinConditionHunter());
|
||||
@ -18,17 +17,16 @@ public class Franklin extends Unique{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
Joueur joueur = this.getJoueur();
|
||||
|
||||
if(this.isCapaciteUsed() && joueur.getRevele()) {
|
||||
if(!this.isCapaciteUsed() && joueur.getRevele()) {
|
||||
|
||||
Plateau p = joueur.getPlateau();
|
||||
int roll = p.roll6();
|
||||
|
||||
Joueur joueur2 = joueur.choisirTous();
|
||||
joueur2.addToStat(Joueur.PLAYER_HP, -roll);
|
||||
Joueur joueur2 = joueur.choisiParmisTous();
|
||||
super.attaquer(joueur2, roll);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,23 +11,16 @@ public class Georges extends Unique{
|
||||
this.setCondition(new WinConditionHunter());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
Joueur joueur = this.getJoueur();
|
||||
|
||||
if(this.isCapaciteUsed() && joueur.getRevele()) {
|
||||
if(!this.isCapaciteUsed() && joueur.getRevele()) {
|
||||
|
||||
Plateau p = joueur.getPlateau();
|
||||
int roll = p.roll4();
|
||||
|
||||
Joueur joueur2 = joueur.choisirTous();
|
||||
joueur2.addToStat(Joueur.PLAYER_HP, -roll);
|
||||
Joueur joueur2 = joueur.choisiParmisTous();
|
||||
super.attaquer(joueur2, roll);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,27 +4,14 @@ import condition.WinConditionShadow;
|
||||
import main.Joueur;
|
||||
|
||||
public class LoupGarou extends CartePersonnage {
|
||||
//constructeur
|
||||
|
||||
public LoupGarou(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
||||
//m<EFBFBD>thodes
|
||||
public void contreAttaquer(Joueur j) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -10,16 +10,6 @@ public class Metamorphe extends CartePersonnage{
|
||||
this.setCondition(new WinConditionShadow());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,11 +8,9 @@ public abstract class Unique extends CartePersonnage{
|
||||
|
||||
public Unique(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
this.capaciteUsed = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean isCapaciteUsed() {
|
||||
return capaciteUsed;
|
||||
}
|
||||
@ -20,11 +18,4 @@ public abstract class Unique extends CartePersonnage{
|
||||
public void setCapaciteUsed(boolean capaciteUsed) {
|
||||
this.capaciteUsed = capaciteUsed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,43 +1,29 @@
|
||||
package personnage;
|
||||
|
||||
import condition.WinConditionShadow;
|
||||
import effet.Effet;
|
||||
import effet.EffetSelf;
|
||||
import effet.action.Action;
|
||||
import effet.action.ActionAltererStatistiquesJoueur;
|
||||
import condition.Condition;
|
||||
import main.Joueur;
|
||||
|
||||
|
||||
public class Vampire extends CartePersonnage{
|
||||
//constructeur
|
||||
public Vampire(String nom, int hp, Joueur joueur, Condition condition) {
|
||||
super(nom, hp, joueur, condition);
|
||||
//this.setEffet(
|
||||
|
||||
public Vampire(String nom, String desc ,int hp, Joueur joueur) {
|
||||
super(nom,desc, hp, joueur);
|
||||
|
||||
Action action = new ActionAltererStatistiquesJoueur("HP",2,true);
|
||||
Effet effet = new EffetSelf(action);
|
||||
this.setEffet(effet);
|
||||
this.setCondition(new WinConditionShadow());
|
||||
//new EffetSelf( new ActionAltererStatistiquesJoueur("HP",2,true));
|
||||
//);
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
public void utiliser()
|
||||
public void utiliser(Joueur j)
|
||||
{
|
||||
this.getEffet().utiliser(this.getJoueur());
|
||||
//this.getEffet().utiliser()
|
||||
}
|
||||
|
||||
/**
|
||||
* Lance l'action d'attaquer de Vampire
|
||||
* <br><br> Effet : Soin 2 PV
|
||||
* @param j Le joueur qui subit l'attaque
|
||||
* @return void
|
||||
*/
|
||||
public void attaquer(Joueur j, int blessure) {
|
||||
//m<EFBFBD>thode
|
||||
public void attaquer(Joueur j) {
|
||||
|
||||
// attaquer(j)
|
||||
//utiliser(this.joueur);
|
||||
|
||||
if(this.getJoueur().getRevele())
|
||||
{
|
||||
utiliser(this.getJoueur());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -16,8 +16,6 @@ import personnage.Daniel;
|
||||
|
||||
class ConditionClassPersonnageTest {
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
public void conditionClass_RenvoieAppartenancePersonnage() throws Exception {
|
||||
|
||||
@ -36,7 +34,7 @@ class ConditionClassPersonnageTest {
|
||||
assertTrue(cc.isTrue(j));
|
||||
|
||||
|
||||
CartePersonnage cp2 = new Bob(null, null, 0, j);
|
||||
CartePersonnage cp2 = new Bob(j);
|
||||
// Le personnage ne fait pas partie des classes
|
||||
j.setCartePersonnage(cp2);
|
||||
assertFalse(cc.isTrue(j));
|
||||
|
@ -34,8 +34,6 @@ class ActionAltererStatistiquesJoueurTest {
|
||||
|
||||
j1.setPlateau(p);
|
||||
j2.setPlateau(p);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -52,7 +50,6 @@ class ActionAltererStatistiquesJoueurTest {
|
||||
void affecte_StatsAddedUp() {
|
||||
|
||||
int entier = rand.nextInt();
|
||||
|
||||
int pvBaseJoueur = j2.getStat(Joueur.PLAYER_HP);
|
||||
ActionAltererStatistiquesJoueur aasj = new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, entier, true);
|
||||
aasj.affecte(j1, j2);
|
||||
|
@ -4,13 +4,13 @@ import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
import personnage.Allie;
|
||||
|
||||
class ActionAttaquerTest {
|
||||
|
||||
@ -25,6 +25,9 @@ class ActionAttaquerTest {
|
||||
j1 = new Joueur("Michel");
|
||||
j2 = new Joueur("Gérard");
|
||||
|
||||
Allie allie1 = new Allie(j1);
|
||||
Allie allie2 = new Allie(j2);
|
||||
|
||||
joueurs.add(j1);
|
||||
joueurs.add(j2);
|
||||
|
||||
@ -38,24 +41,24 @@ class ActionAttaquerTest {
|
||||
/*
|
||||
* L'attaque du plateau se base sur des tirages aléatoires de dés.
|
||||
* La réussite moyenne d'une attaque est d'environ 80 %
|
||||
* En autorisant une erreur d'environ 2 %
|
||||
* En autorisant une erreur d'environ 5 %
|
||||
*
|
||||
* On vérifie que la différence du nombre d'attaques réussie avec la moyenne
|
||||
* des attaques réussie est bien inférieure à 2 %.
|
||||
* des attaques réussie est bien inférieure à 5 %.
|
||||
*/
|
||||
@Test
|
||||
void attaquer_BaissePV() {
|
||||
|
||||
int error = 2;
|
||||
int error = 5;
|
||||
ActionAttaquer aa = new ActionAttaquer();
|
||||
|
||||
int pvBaseJ2 = 100;
|
||||
|
||||
for(int j = 0; j< 1000; j++) {
|
||||
for(int j = 0; j< 100; j++) {
|
||||
|
||||
int countNb = 0;
|
||||
|
||||
for(int i = 0; i < 10000; i++)
|
||||
for(int i = 0; i < 2000; i++)
|
||||
{
|
||||
j2.setStat(Joueur.PLAYER_HP, pvBaseJ2);
|
||||
aa.affecte(j1, j2);
|
||||
@ -63,9 +66,8 @@ class ActionAttaquerTest {
|
||||
if(j2.getStat(Joueur.PLAYER_HP) < pvBaseJ2) countNb++;
|
||||
}
|
||||
|
||||
countNb /= 100;
|
||||
countNb /= 20;
|
||||
assertTrue(Math.abs(countNb-80) <= error);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
100
tests/main/GestionnaireEquipementsTest.java
Normal file
100
tests/main/GestionnaireEquipementsTest.java
Normal file
@ -0,0 +1,100 @@
|
||||
package main;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import carte.EquipementStat;
|
||||
import condition.Condition;
|
||||
import effet.EffetSelf;
|
||||
import effet.action.ActionAltererStatistiquesJoueur;
|
||||
import personnage.Allie;
|
||||
|
||||
class GestionnaireEquipementsTest {
|
||||
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
Plateau p;
|
||||
Random rand;
|
||||
Allie a1;
|
||||
Allie a2;
|
||||
|
||||
@BeforeEach
|
||||
void init()
|
||||
{
|
||||
rand = new Random();
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
j1 = new Joueur("Michel");
|
||||
j2 = new Joueur("Antoine");
|
||||
|
||||
joueurs.add(j1);
|
||||
joueurs.add(j2);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
|
||||
a1 = new Allie(j1);
|
||||
a2 = new Allie(j2);
|
||||
j1.setCartePersonnage(a1);
|
||||
j2.setCartePersonnage(a2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_NbEquipements() {
|
||||
|
||||
int nbEffets = 20;
|
||||
|
||||
for(int i = 0; i < 20; i++) {
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
|
||||
}
|
||||
|
||||
assertEquals(nbEffets, j1.getStat(Joueur.PLAYER_NB_EQUIPEMENTS));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_StackingStats() {
|
||||
|
||||
int nbEffets = 20;
|
||||
int valeurEffet = 3;
|
||||
|
||||
for(int i = 0; i < 20; i++) {
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
}
|
||||
|
||||
assertEquals(nbEffets*valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
}
|
||||
|
||||
@Test
|
||||
void ajouterEquipement_RetirerEffet() {
|
||||
|
||||
int valeurEffet = 3;
|
||||
|
||||
EquipementStat es = new EquipementStat("AddDamage", "desc");
|
||||
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
|
||||
es.setCondition(new Condition());
|
||||
j1.ajouterEquipement(es);
|
||||
|
||||
assertEquals(valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
|
||||
j1.retirerEquipement(es);
|
||||
|
||||
assertEquals(0, j1.getStat(Joueur.PLAYER_DAMAGE));
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package personnage;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -39,18 +40,35 @@ class AllieTest {
|
||||
@Test
|
||||
void utiliser_SoinTotal() {
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
int pvAllie = j1.getCartePersonnage().getPv();
|
||||
|
||||
assertEquals(pvAllie,j1.getStat("HP"));
|
||||
// Le joueur n'est pas révélé, le soin n'a pas eu lieu.
|
||||
assertEquals(j1.getStat(Joueur.PLAYER_HP),0);
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.setRevele(true);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
// Le soin n'a fonctionné qu'une seule fois
|
||||
assertEquals(0,j1.getStat("HP"));
|
||||
// Le soin a fonctionné la première fois, il est désormais "utilisé".
|
||||
assertEquals(j1.getStat(Joueur.PLAYER_HP),pvAllie);
|
||||
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
// Le soin a déjà été utilisé
|
||||
assertEquals(0,j1.getStat(Joueur.PLAYER_HP));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void victoire() {
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
p.setStat(Plateau.PARTIE_FINIE, 1);
|
||||
assertTrue(a.victoire());
|
||||
|
||||
}
|
||||
|
||||
|
97
tests/personnage/VampireTest.java
Normal file
97
tests/personnage/VampireTest.java
Normal file
@ -0,0 +1,97 @@
|
||||
package personnage;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import main.Joueur;
|
||||
import main.Plateau;
|
||||
|
||||
class VampireTest {
|
||||
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
Plateau p;
|
||||
Random rand;
|
||||
Vampire v;
|
||||
Allie a;
|
||||
|
||||
@BeforeEach
|
||||
void init()
|
||||
{
|
||||
rand = new Random();
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
j1 = new Joueur("Michel");
|
||||
j2 = new Joueur("Saad");
|
||||
|
||||
joueurs.add(j1);
|
||||
joueurs.add(j2);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
v = new Vampire(j1);
|
||||
a = new Allie(j2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
void attaquer_Vampirisme() {
|
||||
|
||||
int pvVampireBase = 0;
|
||||
int pvAllieBase = a.getPv();
|
||||
|
||||
int countHP = 0;
|
||||
|
||||
for(int j = 0; j < 100; j++) {
|
||||
|
||||
countHP = 0;
|
||||
|
||||
for(int i = 0; i < 2000; i++) {
|
||||
|
||||
// Le joueur n'est pas révélé
|
||||
j1.setRevele(false);
|
||||
j1.setStat(Joueur.PLAYER_HP, pvVampireBase);
|
||||
j2.setStat(Joueur.PLAYER_HP, pvAllieBase);
|
||||
|
||||
p.attaquer(j1, j2);
|
||||
|
||||
// Vampire n'a pas récupéré de pv's lors de son attaque
|
||||
assertTrue(j1.getStat(Joueur.PLAYER_HP) == 0);
|
||||
|
||||
|
||||
// Joueur se révéle
|
||||
j1.reveal();
|
||||
j2.setStat(Joueur.PLAYER_HP, pvAllieBase);
|
||||
p.attaquer(j1, j2);
|
||||
|
||||
// Il récupère des pv's si la blessure est supérieure à 0
|
||||
// On compte le nombre de fois où il récupère des pv's
|
||||
if(j2.getStat(Joueur.PLAYER_HP) < pvAllieBase && j1.getStat(Joueur.PLAYER_HP) > 0) {
|
||||
countHP++;
|
||||
}
|
||||
}
|
||||
|
||||
// On boost le coverage
|
||||
v.utiliser();
|
||||
|
||||
// On ramène en %
|
||||
countHP /= 20;
|
||||
|
||||
// En moyenne une attaque réussie 80 % du temps, avec une marge d'erreur de 5 %
|
||||
assertTrue(Math.abs(80-countHP) < 5);
|
||||
}}
|
||||
|
||||
@Test
|
||||
void victoire() {
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
p.setStat( Plateau.NB_MORTS_NEUTRAL, 5);
|
||||
assertTrue(v.victoire());
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user