Se réveler JoueurVirtuel
This commit is contained in:
parent
f0749eb6db
commit
3dacaac186
@ -269,10 +269,8 @@ public class CreatingCardsTest {
|
|||||||
|
|
||||||
// 64
|
// 64
|
||||||
CarteLieu lieu3 = new CarteLieu(new Point(-1,9));
|
CarteLieu lieu3 = new CarteLieu(new Point(-1,9));
|
||||||
lieu3.setEffet(new EffetChoisirEffet(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
|
lieu3.setEffet(new EffetChoisirCible(new ActionMultipleChoisir(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true),
|
||||||
|
new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true))));
|
||||||
|
|
||||||
new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true))));
|
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(64,lieu3);
|
DatabaseManager.queryInsertObject(64,lieu3);
|
||||||
// 65
|
// 65
|
||||||
|
@ -58,8 +58,30 @@ public class ActionAltererStatistiquesJoueur extends Action{
|
|||||||
this.valeur = valeur;
|
this.valeur = valeur;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return this.key;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
return this.key+" "+this.valeur+" "+this.ajouter;
|
|
||||||
|
String mot1 = "";
|
||||||
|
String mot2 = "";
|
||||||
|
if(this.ajouter) {
|
||||||
|
|
||||||
|
if(valeur < 0) {
|
||||||
|
mot1 = "Retirer";
|
||||||
|
}else {
|
||||||
|
mot1 = "Ajouter";
|
||||||
|
}
|
||||||
|
|
||||||
|
mot2 = " au ";
|
||||||
|
|
||||||
|
}else {
|
||||||
|
mot1 = "Placer à";
|
||||||
|
mot2 = " le ";
|
||||||
|
}
|
||||||
|
|
||||||
|
return mot1+" "+valeur+" "+key+mot2+"joueur";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,4 +33,9 @@ public class ActionAltererStatistiquesJoueurRoll extends ActionAltererStatistiqu
|
|||||||
|
|
||||||
super.affecte(j1, j2);
|
super.affecte(j1, j2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
return "Lancer un dé "+valeurRoll+" pour modifier les "+this.getKey()+" du joueur";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,5 +18,10 @@ public class ActionAttaquer extends Action {
|
|||||||
p.attaquer(j1, j2);
|
p.attaquer(j1, j2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Attaquer un joueur";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,14 @@ public class ActionReveal extends Action {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 7972405763634156578L;
|
private static final long serialVersionUID = 7972405763634156578L;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void affecte(Joueur j1, Joueur j2) {
|
public void affecte(Joueur j1, Joueur j2) {
|
||||||
j2.reveal();
|
j2.reveal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Se réveler";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package effet.action;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import carte.CarteEquipement;
|
import carte.CarteEquipement;
|
||||||
|
import javafx.scene.control.Label;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
|
||||||
public class ActionVoler extends Action{
|
public class ActionVoler extends Action{
|
||||||
@ -51,4 +52,10 @@ public class ActionVoler extends Action{
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Voler un autre joueur";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -66,20 +66,27 @@ public class JoueurIHM {
|
|||||||
private void initRevealButton() {
|
private void initRevealButton() {
|
||||||
Button btn = getRevealButton();
|
Button btn = getRevealButton();
|
||||||
btn.setOnAction(x -> {
|
btn.setOnAction(x -> {
|
||||||
|
this.joueur.setRevele(true);;
|
||||||
this.joueur.reveal();
|
actionReveler(btn);
|
||||||
ImageView iv = this.getCartePersonnage();
|
|
||||||
System.out.println(this.joueur.getCartePersonnage());
|
|
||||||
Image im = this.pc.getImageCarte(this.joueur.getCartePersonnage());
|
|
||||||
GridPane gp = (GridPane) iv.getParent();
|
|
||||||
iv.setImage(im);
|
|
||||||
iv.fitHeightProperty().bind(gp.heightProperty());
|
|
||||||
initButtonEffect(btn);
|
|
||||||
//btn.setDisable(true);
|
|
||||||
btn.setText("Utiliser Effet");
|
|
||||||
estRevele = true;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void reveler() {
|
||||||
|
Button btn = getRevealButton();
|
||||||
|
actionReveler(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void actionReveler(Button btn) {
|
||||||
|
ImageView iv = this.getCartePersonnage();
|
||||||
|
System.out.println(this.joueur.getCartePersonnage());
|
||||||
|
Image im = this.pc.getImageCarte(this.joueur.getCartePersonnage());
|
||||||
|
GridPane gp = (GridPane) iv.getParent();
|
||||||
|
iv.setImage(im);
|
||||||
|
iv.fitHeightProperty().bind(gp.heightProperty());
|
||||||
|
initButtonEffect(btn);
|
||||||
|
btn.setText("Utiliser Effet");
|
||||||
|
estRevele = true;
|
||||||
|
}
|
||||||
|
|
||||||
public Button getRevealButton() {
|
public Button getRevealButton() {
|
||||||
Pane p = (Pane) zoneJoueur.getChildren().get(2);
|
Pane p = (Pane) zoneJoueur.getChildren().get(2);
|
||||||
@ -258,4 +265,8 @@ public class JoueurIHM {
|
|||||||
return this.joueur.getNom();
|
return this.joueur.getNom();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import carte.CarteLieu;
|
|||||||
import carte.CartePiochable;
|
import carte.CartePiochable;
|
||||||
import carte.CartePiochable.Type;
|
import carte.CartePiochable.Type;
|
||||||
import database.RessourceLoader;
|
import database.RessourceLoader;
|
||||||
|
import effet.action.Action;
|
||||||
import ihm.EffetSonore;
|
import ihm.EffetSonore;
|
||||||
import ihm.PopUp;
|
import ihm.PopUp;
|
||||||
import javafx.animation.KeyFrame;
|
import javafx.animation.KeyFrame;
|
||||||
@ -28,6 +29,7 @@ import javafx.fxml.FXMLLoader;
|
|||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.Group;
|
import javafx.scene.Group;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.SplitPane;
|
import javafx.scene.control.SplitPane;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
@ -69,6 +71,7 @@ public class PlateauController implements Initializable {
|
|||||||
public static int DICE_BOTH = 2;
|
public static int DICE_BOTH = 2;
|
||||||
|
|
||||||
private final double RES = 200./2250.;
|
private final double RES = 200./2250.;
|
||||||
|
private ResourceBundle resourceBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initialise les données du plateau
|
* initialise les données du plateau
|
||||||
@ -77,6 +80,7 @@ public class PlateauController implements Initializable {
|
|||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
//System.out.println("Création du plateau ...");
|
//System.out.println("Création du plateau ...");
|
||||||
|
|
||||||
|
this.resourceBundle = arg1;
|
||||||
this.joueursIHM = new ArrayList<JoueurIHM>();
|
this.joueursIHM = new ArrayList<JoueurIHM>();
|
||||||
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
||||||
RessourceLoader rl = gj.getRessourceLoader();
|
RessourceLoader rl = gj.getRessourceLoader();
|
||||||
@ -130,8 +134,7 @@ public class PlateauController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void applyImageLieu(ImageView iv, Image im) {
|
private void applyImageLieu(ImageView iv, Image im) {
|
||||||
|
|
||||||
StackPane sp = (StackPane) iv.getParent();
|
|
||||||
iv.setImage(im);
|
iv.setImage(im);
|
||||||
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
iv.setFitWidth(RES*screenSize.width);
|
iv.setFitWidth(RES*screenSize.width);
|
||||||
@ -549,4 +552,49 @@ public void afficherEffet(Joueur j) throws IOException {
|
|||||||
public void setMapRessourcesDosCartes(Map<String,BufferedImage> mapRessourcesDosCartes) {
|
public void setMapRessourcesDosCartes(Map<String,BufferedImage> mapRessourcesDosCartes) {
|
||||||
this.mapRessourcesDosCartes = mapRessourcesDosCartes;
|
this.mapRessourcesDosCartes = mapRessourcesDosCartes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Action choixAction;
|
||||||
|
|
||||||
|
public void afficherChoisirAction(Joueur joueur, List<Action> list) {
|
||||||
|
|
||||||
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/ChoisirAction.fxml");
|
||||||
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
|
|
||||||
|
List<Button> buttons = new ArrayList<Button>();
|
||||||
|
|
||||||
|
for(Action a : list) {
|
||||||
|
Button button = interpret(a);
|
||||||
|
buttons.add(button);
|
||||||
|
button.setOnAction(x -> {
|
||||||
|
this.choixAction = a;
|
||||||
|
GestionnaireJeu.notifyPlateau();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
VBox v = new VBox();
|
||||||
|
v.getChildren().addAll(buttons);
|
||||||
|
|
||||||
|
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||||
|
jihm.setZoneJoueur(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action getChoixAction(Joueur joueur) {
|
||||||
|
return this.choixAction;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Button interpret(Action a) {
|
||||||
|
String s = a.toString();
|
||||||
|
Button b = new Button(s);
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void revealJoueur(Joueur joueur) {
|
||||||
|
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||||
|
jihm.reveler();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
11
src/ihm/ressources/ChoisirAction.fxml
Normal file
11
src/ihm/ressources/ChoisirAction.fxml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
|
||||||
|
|
||||||
|
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" styleClass="background" stylesheets="@style/plateau.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.ressources.ChoisirAction">
|
||||||
|
<children>
|
||||||
|
<VBox alignment="CENTER" layoutX="-126.0" layoutY="92.0" prefHeight="200.0" prefWidth="226.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
@ -9,6 +9,6 @@ public enum Contexte {
|
|||||||
ACTIVER_EFFET_LIEU,
|
ACTIVER_EFFET_LIEU,
|
||||||
EFFET_BOB,
|
EFFET_BOB,
|
||||||
LANCER_DES_4,
|
LANCER_DES_4,
|
||||||
LANCER_DES_6, CHOISIR_VISION
|
LANCER_DES_6, CHOISIR_VISION, CHOISIR_ACTION
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import carte.CartePiochable.Type;
|
|||||||
import carte.CarteVision;
|
import carte.CarteVision;
|
||||||
import database.RessourceLoader;
|
import database.RessourceLoader;
|
||||||
import effet.Effet;
|
import effet.Effet;
|
||||||
|
import effet.action.Action;
|
||||||
import ihm.controller.PlateauController;
|
import ihm.controller.PlateauController;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
|
||||||
@ -49,10 +50,6 @@ public class GestionnaireJeu {
|
|||||||
public void lancerPartie() {
|
public void lancerPartie() {
|
||||||
plateau.start();
|
plateau.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
|
||||||
return effets[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void deplacer(Joueur currentJoueur) {
|
public void deplacer(Joueur currentJoueur) {
|
||||||
@ -117,13 +114,36 @@ public class GestionnaireJeu {
|
|||||||
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
|
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
|
||||||
}else if(cls == Joueur.class) {
|
}else if(cls == Joueur.class) {
|
||||||
return choisirJoueur(joueur, (List<Joueur>) list, Contexte.CHOISIR_VISION);
|
return choisirJoueur(joueur, (List<Joueur>) list, Contexte.CHOISIR_VISION);
|
||||||
|
}else if(cls == Action.class) {
|
||||||
|
return choisirAction(joueur, (List<Action>) list, Contexte.CHOISIR_ACTION);
|
||||||
}
|
}
|
||||||
return list.get(0);
|
return list.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
private Action choisirAction(Joueur joueur, List<Action> list, Contexte choisirAction) {
|
||||||
public Object choisir(Joueur joueur, List<?> list, Contexte c) {
|
Platform.runLater(() -> {
|
||||||
return choisirJoueur(joueur, (List<Joueur>) list, c);
|
pc.afficherChoisirAction(joueur,list);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.waitPlateau();
|
||||||
|
|
||||||
|
final FutureTask<Action> query = new FutureTask<Action>(new Callable<Action>() {
|
||||||
|
@Override
|
||||||
|
public Action call() throws Exception {
|
||||||
|
return pc.getChoixAction(joueur);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Platform.runLater(query);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return query.get();
|
||||||
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
|
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CarteEquipement choisirEquipementVole(Joueur joueur, List<CarteEquipement> lce) {
|
public CarteEquipement choisirEquipementVole(Joueur joueur, List<CarteEquipement> lce) {
|
||||||
@ -340,9 +360,14 @@ public class GestionnaireJeu {
|
|||||||
try {
|
try {
|
||||||
pc.afficherVision(j2, carteVision);
|
pc.afficherVision(j2, carteVision);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
waitPlateau();
|
waitPlateau();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void reveler(Joueur joueur) {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
pc.revealJoueur(joueur);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,10 @@ public class Joueur {
|
|||||||
public String getNom() {
|
public String getNom() {
|
||||||
return this.nom;
|
return this.nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reveal() {
|
public void reveal() {
|
||||||
|
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
||||||
|
gj.reveler(this);
|
||||||
this.revele = true;
|
this.revele = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,9 +448,6 @@ public class Plateau extends Thread{
|
|||||||
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
|
||||||
return gj.choisirEffet(joueur,effets);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Joueur choisirParmisTous(Joueur joueur) {
|
public Joueur choisirParmisTous(Joueur joueur) {
|
||||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user