Merge branch 'development' of https://github.com/PTE-SH/ShadowHunterGame into development
This commit is contained in:
commit
22b5c8cf56
@ -3,7 +3,6 @@ package carte;
|
|||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import carte.CartePiochable.Type;
|
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
import main.Pioche;
|
import main.Pioche;
|
||||||
|
|
||||||
@ -27,7 +26,7 @@ public class CarteLieuMultiple extends CarteLieu{
|
|||||||
Pioche p = (Pioche) j.choisir(pioches, Pioche.class);
|
Pioche p = (Pioche) j.choisir(pioches, Pioche.class);
|
||||||
System.out.println(pioches+ " "+p);
|
System.out.println(pioches+ " "+p);
|
||||||
System.out.println(p.getStack());
|
System.out.println(p.getStack());
|
||||||
Carte c = p.piocher();
|
Carte c = p.piocher(j);
|
||||||
c.utiliser(j);
|
c.utiliser(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class CarteLieuType extends CarteLieu{
|
|||||||
*/
|
*/
|
||||||
public void utiliser(Joueur j) {
|
public void utiliser(Joueur j) {
|
||||||
System.out.println(pioche);
|
System.out.println(pioche);
|
||||||
CartePiochable carte = pioche.piocher();
|
CartePiochable carte = pioche.piocher(j);
|
||||||
carte.utiliser(j);
|
carte.utiliser(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,10 +41,9 @@ public class CartePiochable extends CarteCondition implements Serializable{
|
|||||||
/*
|
/*
|
||||||
* @param j Appel la méthode utiliser de effet sur le joueur j
|
* @param j Appel la méthode utiliser de effet sur le joueur j
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void utiliser(Joueur j) {
|
public void utiliser(Joueur j) {
|
||||||
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
||||||
gj.piocher(j,this);
|
|
||||||
System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction());
|
System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction());
|
||||||
super.utiliser(j);
|
super.utiliser(j);
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import java.io.Serializable;
|
|||||||
import condition.Condition;
|
import condition.Condition;
|
||||||
import effet.EffetChoisirCible;
|
import effet.EffetChoisirCible;
|
||||||
import effet.action.Action;
|
import effet.action.Action;
|
||||||
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
|
||||||
@ -31,10 +32,13 @@ public class CarteVision extends CartePiochable implements Serializable{
|
|||||||
gj.piocher(j1,this);
|
gj.piocher(j1,this);
|
||||||
|
|
||||||
Joueur j2 = j1.choisiParmisTous();
|
Joueur j2 = j1.choisiParmisTous();
|
||||||
|
boolean M = j2.isMetamorph();
|
||||||
|
boolean Co = this.getCondition().isTrue(j2);
|
||||||
|
gj.recevoirCarteVision(j2,this);
|
||||||
|
boolean C = j2.choisir(Contexte.CHOISIR_VISION);
|
||||||
|
|
||||||
if(this.getCondition().isTrue(j2)) {
|
if((!(M) && Co) || (M && C)) {
|
||||||
this.getEffet().getAction().affecte(j1, j2);
|
this.getEffet().getAction().affecte(j1, j2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,11 @@ public class CreatingCardsTest {
|
|||||||
//Ange gardien
|
//Ange gardien
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
for(int i = 0; i < 67; i++) {
|
||||||
|
DatabaseManager.queryInsertObject(i, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(2,new CartePiochable(CartePiochable.Type.LUMIERE,
|
DatabaseManager.queryInsertObject(2,new CartePiochable(CartePiochable.Type.LUMIERE,
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_IMMUNITY, 1, true))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_IMMUNITY, 1, true))));
|
||||||
|
|
||||||
@ -115,28 +120,33 @@ public class CreatingCardsTest {
|
|||||||
// Ténèbre
|
// Ténèbre
|
||||||
|
|
||||||
// Araignée Sanguinaire
|
// Araignée Sanguinaire
|
||||||
|
/*
|
||||||
DatabaseManager.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
|
||||||
|
|
||||||
|
|
||||||
// Chauve - souris vampire
|
// Chauve - souris vampire
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(18, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(18, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(19, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(19, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
DatabaseManager.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
|
||||||
|
*/
|
||||||
// Dynamite
|
// Dynamite
|
||||||
|
|
||||||
// 21
|
// 21
|
||||||
|
|
||||||
|
|
||||||
// Hache tueuse
|
// Hache tueuse
|
||||||
|
for(int i = 0; i <= 2; i++) {
|
||||||
|
DatabaseManager.queryInsertObject(22+i,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
||||||
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
||||||
|
}
|
||||||
|
/*
|
||||||
DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
||||||
|
|
||||||
@ -161,17 +171,18 @@ public class CreatingCardsTest {
|
|||||||
));
|
));
|
||||||
|
|
||||||
// 29
|
// 29
|
||||||
|
*/
|
||||||
DatabaseManager.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE,
|
||||||
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
||||||
|
|
||||||
DatabaseManager.queryInsertObject(31,new CartePiochable(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(31,new CartePiochable(CartePiochable.Type.TENEBRE,
|
||||||
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
|
||||||
|
|
||||||
|
/*
|
||||||
DatabaseManager.queryInsertObject(32,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
DatabaseManager.queryInsertObject(32,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
|
||||||
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
|
||||||
|
|
||||||
|
*/
|
||||||
// Vision clairvoyante
|
// Vision clairvoyante
|
||||||
DatabaseManager.queryInsertObject(33, new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true),
|
DatabaseManager.queryInsertObject(33, new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true),
|
||||||
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS)));
|
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS)));
|
||||||
@ -258,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
|
||||||
|
@ -19,15 +19,20 @@ public class DatabaseManager {
|
|||||||
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
|
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
|
||||||
private final static String user = "shManager";
|
private final static String user = "shManager";
|
||||||
private final static String password = "shadowhunter1234";
|
private final static String password = "shadowhunter1234";
|
||||||
|
private static Connection connection;
|
||||||
|
|
||||||
public static Connection connect() throws SQLException {
|
public static void connect() throws SQLException {
|
||||||
return DriverManager.getConnection(url, user, password);
|
if(connection == null || connection.isClosed()) {
|
||||||
|
connection = DriverManager.getConnection(url, user, password);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Record> remplirTable(String query) {
|
public static List<Record> remplirTable(String query) {
|
||||||
List<Record> list = new ArrayList<Record>();
|
List<Record> list = new ArrayList<Record>();
|
||||||
try (Connection connection = connect()) {
|
|
||||||
|
|
||||||
|
|
||||||
|
try{
|
||||||
|
connect();
|
||||||
//System.out.println("Connected to PostgreSQL database!");
|
//System.out.println("Connected to PostgreSQL database!");
|
||||||
Statement statement = connection.createStatement();
|
Statement statement = connection.createStatement();
|
||||||
//System.out.println("Reading records...");
|
//System.out.println("Reading records...");
|
||||||
@ -44,8 +49,8 @@ public class DatabaseManager {
|
|||||||
|
|
||||||
public static List<Record> remplirTableSansImage(String query) {
|
public static List<Record> remplirTableSansImage(String query) {
|
||||||
List<Record> list = new ArrayList<Record>();
|
List<Record> list = new ArrayList<Record>();
|
||||||
try (Connection connection = connect()) {
|
try {
|
||||||
|
connect();
|
||||||
//System.out.println("Connected to PostgreSQL database!");
|
//System.out.println("Connected to PostgreSQL database!");
|
||||||
Statement statement = connection.createStatement();
|
Statement statement = connection.createStatement();
|
||||||
//System.out.println("Reading records...");
|
//System.out.println("Reading records...");
|
||||||
@ -93,8 +98,8 @@ public class DatabaseManager {
|
|||||||
query = "UPDATE " + table + " SET objet = ? "
|
query = "UPDATE " + table + " SET objet = ? "
|
||||||
+ " WHERE id = ? " ;
|
+ " WHERE id = ? " ;
|
||||||
|
|
||||||
Connection conn = connect();
|
connect();
|
||||||
PreparedStatement pst = conn.prepareStatement(query);
|
PreparedStatement pst = connection.prepareStatement(query);
|
||||||
pst.setBinaryStream(1, objectIS);
|
pst.setBinaryStream(1, objectIS);
|
||||||
pst.setInt(2, id);
|
pst.setInt(2, id);
|
||||||
pst.executeUpdate();
|
pst.executeUpdate();
|
||||||
|
@ -58,8 +58,10 @@ public class RessourceLoader {
|
|||||||
|
|
||||||
Record r = t.getList().get(i);
|
Record r = t.getList().get(i);
|
||||||
byte[] obj = r.getObjet();
|
byte[] obj = r.getObjet();
|
||||||
if(obj != null) {
|
|
||||||
Object o = deserialize(obj);
|
Object o = deserialize(obj);
|
||||||
|
if(o != null && o != null) {
|
||||||
|
|
||||||
|
|
||||||
Carte c = (Carte)o;
|
Carte c = (Carte)o;
|
||||||
c.setNom(r.getNom());
|
c.setNom(r.getNom());
|
||||||
cartes.put(i+1, c);
|
cartes.put(i+1, c);
|
||||||
|
@ -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";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,4 +19,9 @@ public class ActionAttaquer extends Action {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Attaquer un joueur";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,4 +14,8 @@ public class ActionReveal extends Action {
|
|||||||
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{
|
||||||
@ -32,20 +33,29 @@ public class ActionVoler extends Action{
|
|||||||
@Override
|
@Override
|
||||||
public void affecte(Joueur j1, Joueur j2) {
|
public void affecte(Joueur j1, Joueur j2) {
|
||||||
|
|
||||||
if(this.choix) {
|
|
||||||
|
|
||||||
List<CarteEquipement> equipements = j2.getEquipements();
|
List<CarteEquipement> equipements = j2.getEquipements();
|
||||||
|
|
||||||
|
if(!equipements.isEmpty()) {
|
||||||
|
|
||||||
|
CarteEquipement equipement = null;
|
||||||
|
|
||||||
|
if(this.choix) {
|
||||||
// J1 choisit quel équipement voler
|
// J1 choisit quel équipement voler
|
||||||
CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements, CarteEquipement.class);
|
equipement = (CarteEquipement) j1.choisir(equipements, CarteEquipement.class);
|
||||||
j1.voler(j2,equipement);
|
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
List<CarteEquipement> equipements = j2.getEquipements();
|
|
||||||
// J1 choisit quel équipement voler
|
// J1 choisit quel équipement voler
|
||||||
CarteEquipement equipement = (CarteEquipement) j2.choisir(equipements,CarteEquipement.class);
|
equipement = (CarteEquipement) j2.choisir(equipements,CarteEquipement.class);
|
||||||
|
}
|
||||||
|
|
||||||
j1.voler(j2,equipement);
|
j1.voler(j2,equipement);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Voler un autre joueur";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,17 @@ package ihm;
|
|||||||
public class Couple {
|
public class Couple {
|
||||||
private String nom;
|
private String nom;
|
||||||
private boolean ia; // true -> joueur virtuel
|
private boolean ia; // true -> joueur virtuel
|
||||||
|
private int lvlIa;
|
||||||
|
|
||||||
public Couple (String nom, boolean ia) {
|
public Couple (String nom) {
|
||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
this.ia = ia;
|
this.ia = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Couple (String nom, int niveau) {
|
||||||
|
this.nom = nom;
|
||||||
|
this.lvlIa = niveau;
|
||||||
|
this.ia = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNom() {
|
public String getNom() {
|
||||||
@ -17,6 +24,7 @@ public class Couple {
|
|||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean isIa() {
|
public boolean isIa() {
|
||||||
return ia;
|
return ia;
|
||||||
}
|
}
|
||||||
@ -25,4 +33,14 @@ public class Couple {
|
|||||||
this.ia = ia;
|
this.ia = ia;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLvlIa() {
|
||||||
|
return lvlIa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLvlIa(int lvlIa) {
|
||||||
|
this.lvlIa = lvlIa;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package ihm;
|
package ihm;
|
||||||
|
|
||||||
import carte.CarteEquipement;
|
import carte.CarteEquipement;
|
||||||
|
import ihm.controller.PlateauController;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
|
||||||
public class ImageViewEquipement extends ImageView{
|
public class ImageViewEquipement extends ImageView{
|
||||||
@ -9,6 +11,8 @@ public class ImageViewEquipement extends ImageView{
|
|||||||
|
|
||||||
public ImageViewEquipement(CarteEquipement ce) {
|
public ImageViewEquipement(CarteEquipement ce) {
|
||||||
this.ce = ce;
|
this.ce = ce;
|
||||||
|
Image im = PlateauController.getImageCarte(ce);
|
||||||
|
this.setImage(im);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CarteEquipement getCp() {
|
public CarteEquipement getCp() {
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
package ihm;
|
package ihm;
|
||||||
|
|
||||||
import java.awt.GraphicsDevice;
|
|
||||||
import java.awt.GraphicsEnvironment;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
@ -49,7 +46,6 @@ public class Main extends Application {
|
|||||||
RessourceLoader rl = new RessourceLoader();
|
RessourceLoader rl = new RessourceLoader();
|
||||||
rl.loadRessources();
|
rl.loadRessources();
|
||||||
gj.setRessourceLoader(rl);
|
gj.setRessourceLoader(rl);
|
||||||
|
|
||||||
launch(args);
|
launch(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,20 +1,32 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.List;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
|
import javafx.util.Duration;
|
||||||
|
import main.Contexte;
|
||||||
|
import main.ControleurIA;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class ChoisirBoolean implements Initializable {
|
public class ChoisirBoolean implements Initializable {
|
||||||
@FXML private Button ouiButton;
|
@FXML
|
||||||
@FXML private Button nonButton;
|
private Button ouiButton;
|
||||||
@FXML private Label titre;
|
@FXML
|
||||||
|
private Button nonButton;
|
||||||
|
@FXML
|
||||||
|
private Label titre;
|
||||||
|
|
||||||
private boolean result;
|
private boolean result;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
|
|
||||||
@ -54,7 +66,67 @@ public class ChoisirBoolean implements Initializable {
|
|||||||
return titre;
|
return titre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitre(Label titre) {
|
public void setTitre(Contexte c) {
|
||||||
this.titre = titre;
|
switch(c) {
|
||||||
|
case ATTAQUER:
|
||||||
|
titre.setText("Souhaitez-vous attaquer quelqu'un?");
|
||||||
|
break;
|
||||||
|
case ACTIVER_EFFET_LIEU :
|
||||||
|
titre.setText("Souhaitez-vous activer l'effet du lieu?");
|
||||||
|
break;
|
||||||
|
case CHOISIR_VISION :
|
||||||
|
titre.setText("Souhaitez-vous activer l'effet de la carte vision");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fireBtnIAEffetLieu() {
|
||||||
|
ControleurIA cIA = new ControleurIA();
|
||||||
|
ouiButton.setDisable(true);
|
||||||
|
nonButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
if (cIA.choixUtiliserPouvoirLieu()) {
|
||||||
|
ouiButton.setDisable(false);
|
||||||
|
ouiButton.fire();
|
||||||
|
} else {
|
||||||
|
nonButton.setDisable(false);
|
||||||
|
nonButton.fire();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fireBtnIAVision() {
|
||||||
|
ControleurIA cIA = new ControleurIA();
|
||||||
|
ouiButton.setDisable(true);
|
||||||
|
nonButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
if (cIA.mentirIAMetamorphe()) {
|
||||||
|
ouiButton.setDisable(false);
|
||||||
|
ouiButton.fire();
|
||||||
|
} else {
|
||||||
|
nonButton.setDisable(false);
|
||||||
|
nonButton.fire();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fireBtnIAattaquer(JoueurVirtuel jIA, List<Joueur> joueursLieu) {
|
||||||
|
ControleurIA cIA = new ControleurIA();
|
||||||
|
ouiButton.setDisable(true);
|
||||||
|
nonButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
if (cIA.choixSiAttaquer(jIA, joueursLieu)) {
|
||||||
|
ouiButton.setDisable(false);
|
||||||
|
ouiButton.fire();
|
||||||
|
} else {
|
||||||
|
nonButton.setDisable(false);
|
||||||
|
nonButton.fire();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,27 +10,18 @@ import javafx.fxml.FXML;
|
|||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
|
import main.GestionnaireJeu;
|
||||||
|
|
||||||
public class ChoisirEquipement implements Initializable{
|
public class ChoisirEquipement implements Initializable{
|
||||||
@FXML private GridPane grilleEquipement;
|
@FXML private GridPane grilleEquipement;
|
||||||
|
@FXML private HBox hbox;
|
||||||
|
|
||||||
private List<CarteEquipement> equipements = new ArrayList<CarteEquipement>();
|
private List<CarteEquipement> equipements = new ArrayList<CarteEquipement>();
|
||||||
private CarteEquipement equipementSelected;
|
private CarteEquipement equipementSelected;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
for (int i=0; i<equipements.size(); i++) {
|
|
||||||
ImageView carte = (ImageView) grilleEquipement.getChildren().get(i);
|
|
||||||
|
|
||||||
/*InputStream input = getClass().getResourceAsStream("/ihm/ressources/img/" + "nomcarte" + ".png");
|
|
||||||
Image image = new Image(input);
|
|
||||||
carte.setImage(image);*/
|
|
||||||
|
|
||||||
int numEquipement = i;
|
|
||||||
carte.setOnMouseClicked(e -> {
|
|
||||||
equipementSelected = equipements.get(numEquipement);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CarteEquipement> getEquipements() {
|
public List<CarteEquipement> getEquipements() {
|
||||||
@ -61,4 +52,23 @@ public class ChoisirEquipement implements Initializable{
|
|||||||
return equipementSelected;
|
return equipementSelected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setListCarteEquipements(List<CarteEquipement> lce) {
|
||||||
|
this.equipements = lce;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initChoisirEquipement() {
|
||||||
|
for (CarteEquipement ce : equipements) {
|
||||||
|
|
||||||
|
ImageView iv = new ImageView(PlateauController.getImageCarte(ce));
|
||||||
|
iv.setFitHeight(100);
|
||||||
|
iv.setFitHeight(100);
|
||||||
|
iv.setPreserveRatio(true);
|
||||||
|
|
||||||
|
hbox.getChildren().add(iv);
|
||||||
|
iv.setOnMouseClicked(e -> {
|
||||||
|
equipementSelected = ce;
|
||||||
|
GestionnaireJeu.notifyPlateau();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,25 +5,42 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
|
import javafx.util.Duration;
|
||||||
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class ChoisirJoueur implements Initializable{
|
public class ChoisirJoueur implements Initializable {
|
||||||
@FXML private HBox joueurHaut;
|
@FXML
|
||||||
@FXML private HBox joueurBas;
|
private HBox joueurHaut;
|
||||||
@FXML private Label titre;
|
@FXML
|
||||||
@FXML private Button btn1;
|
private HBox joueurBas;
|
||||||
@FXML private Button btn2;
|
@FXML
|
||||||
@FXML private Button btn3;
|
private Label titre;
|
||||||
@FXML private Button btn4;
|
@FXML
|
||||||
@FXML private Button btn5;
|
private Button btn1;
|
||||||
@FXML private Button btn6;
|
@FXML
|
||||||
@FXML private Button btn7;
|
private Button btn2;
|
||||||
@FXML private Button btn8;
|
@FXML
|
||||||
|
private Button btn3;
|
||||||
|
@FXML
|
||||||
|
private Button btn4;
|
||||||
|
@FXML
|
||||||
|
private Button btn5;
|
||||||
|
@FXML
|
||||||
|
private Button btn6;
|
||||||
|
@FXML
|
||||||
|
private Button btn7;
|
||||||
|
@FXML
|
||||||
|
private Button btn8;
|
||||||
|
|
||||||
private JoueurIHM joueurSelected;
|
private JoueurIHM joueurSelected;
|
||||||
private List<JoueurIHM> listJoueursIHM;
|
private List<JoueurIHM> listJoueursIHM;
|
||||||
@ -48,7 +65,7 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while(i <listJoueursIHM.size()) {
|
while (i < listJoueursIHM.size()) {
|
||||||
Button b = this.buttons.get(i);
|
Button b = this.buttons.get(i);
|
||||||
JoueurIHM jihm = listJoueursIHM.get(i);
|
JoueurIHM jihm = listJoueursIHM.get(i);
|
||||||
b.setOnAction(e -> {
|
b.setOnAction(e -> {
|
||||||
@ -59,22 +76,22 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int j = i; j < buttons.size(); j++) {
|
for (int j = i; j < buttons.size(); j++) {
|
||||||
Button b = this.buttons.get(j);
|
Button b = this.buttons.get(j);
|
||||||
b.setVisible(false);
|
b.setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//GETTERS AND SETTERS
|
// GETTERS AND SETTERS
|
||||||
|
|
||||||
public HBox getJoueurHaut() {
|
public HBox getJoueurHaut() {
|
||||||
return joueurHaut;
|
return joueurHaut;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HBox getHBox(int valeur) {
|
public HBox getHBox(int valeur) {
|
||||||
if(valeur < 4) {
|
if (valeur < 4) {
|
||||||
return joueurHaut;
|
return joueurHaut;
|
||||||
}else {
|
} else {
|
||||||
return joueurBas;
|
return joueurBas;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,8 +112,16 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
return titre;
|
return titre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitre(Label titre) {
|
public void setTitre(Contexte c) {
|
||||||
this.titre = titre;
|
switch (c) {
|
||||||
|
case ATTAQUER:
|
||||||
|
titre.setText("Choisissez le joueur à attaquer!");
|
||||||
|
break;
|
||||||
|
case CHOISIR_VISION:
|
||||||
|
titre.setText("Choisissez le joueur à qui passer la carte vision!");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public JoueurIHM getJoueurSelected() {
|
public JoueurIHM getJoueurSelected() {
|
||||||
@ -106,4 +131,28 @@ public class ChoisirJoueur implements Initializable{
|
|||||||
public void setListJoueursIHM(List<JoueurIHM> joueursIHM) {
|
public void setListJoueursIHM(List<JoueurIHM> joueursIHM) {
|
||||||
this.listJoueursIHM = joueursIHM;
|
this.listJoueursIHM = joueursIHM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA(JoueurVirtuel jIA, Contexte c) {
|
||||||
|
for (Button b : buttons)
|
||||||
|
b.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
List<Joueur> joueurs = new ArrayList<>();
|
||||||
|
for (JoueurIHM jihm : listJoueursIHM) {
|
||||||
|
joueurs.add(jihm.getJoueur());
|
||||||
|
}
|
||||||
|
Joueur jchoisi = jIA.choisirJoueur(joueurs, c);
|
||||||
|
int i = 0;
|
||||||
|
boolean found = false;
|
||||||
|
while (!found && i < listJoueursIHM.size()) {
|
||||||
|
if (listJoueursIHM.get(i).getJoueur().equals(jchoisi)) {
|
||||||
|
found = true;
|
||||||
|
buttons.get(i).setDisable(false);
|
||||||
|
buttons.get(i).fire();
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import carte.CarteEquipement;
|
import carte.CarteEquipement;
|
||||||
import database.RessourceLoader;
|
import database.RessourceLoader;
|
||||||
import ihm.ImageViewEquipement;
|
import ihm.ImageViewEquipement;
|
||||||
@ -62,8 +66,17 @@ 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);;
|
||||||
|
actionReveler(btn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.joueur.reveal();
|
public void reveler() {
|
||||||
|
Button btn = getRevealButton();
|
||||||
|
actionReveler(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void actionReveler(Button btn) {
|
||||||
ImageView iv = this.getCartePersonnage();
|
ImageView iv = this.getCartePersonnage();
|
||||||
System.out.println(this.joueur.getCartePersonnage());
|
System.out.println(this.joueur.getCartePersonnage());
|
||||||
Image im = this.pc.getImageCarte(this.joueur.getCartePersonnage());
|
Image im = this.pc.getImageCarte(this.joueur.getCartePersonnage());
|
||||||
@ -71,10 +84,8 @@ public class JoueurIHM {
|
|||||||
iv.setImage(im);
|
iv.setImage(im);
|
||||||
iv.fitHeightProperty().bind(gp.heightProperty());
|
iv.fitHeightProperty().bind(gp.heightProperty());
|
||||||
initButtonEffect(btn);
|
initButtonEffect(btn);
|
||||||
//btn.setDisable(true);
|
|
||||||
btn.setText("Utiliser Effet");
|
btn.setText("Utiliser Effet");
|
||||||
estRevele = true;
|
estRevele = true;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Button getRevealButton() {
|
public Button getRevealButton() {
|
||||||
@ -226,26 +237,36 @@ public class JoueurIHM {
|
|||||||
public void ajouterEquipement(CarteEquipement e) {
|
public void ajouterEquipement(CarteEquipement e) {
|
||||||
HBox hb = getPaneEquipement();
|
HBox hb = getPaneEquipement();
|
||||||
ImageViewEquipement ive = new ImageViewEquipement(e);
|
ImageViewEquipement ive = new ImageViewEquipement(e);
|
||||||
hb.getChildren().add(new ImageViewEquipement(e));
|
hb.getChildren().add(ive);
|
||||||
|
ive.setPreserveRatio(true);
|
||||||
ive.fitHeightProperty().bind(hb.heightProperty());
|
ive.fitHeightProperty().bind(hb.heightProperty());
|
||||||
|
//ive.fitWidthProperty().bind(hb.widthProperty());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retirerEquipement(CarteEquipement e) {
|
public void retirerEquipement(CarteEquipement e) {
|
||||||
|
|
||||||
HBox hb = getPaneEquipement();
|
HBox hb = getPaneEquipement();
|
||||||
for (Node n : hb.getChildren()) {
|
List<ImageView> liv = new ArrayList<ImageView>();
|
||||||
|
for(Iterator<Node> iterator = hb.getChildren().iterator(); iterator.hasNext();) {
|
||||||
|
Node n = iterator.next();
|
||||||
|
|
||||||
if (n instanceof ImageViewEquipement) {
|
if (n instanceof ImageViewEquipement) {
|
||||||
ImageViewEquipement ive = (ImageViewEquipement) n;
|
ImageViewEquipement ive = (ImageViewEquipement) n;
|
||||||
if (ive.contains(e)) {
|
if (ive.contains(e)) {
|
||||||
hb.getChildren().remove(ive);
|
liv.add(ive);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hb.getChildren().removeAll(liv);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNom() {
|
public String getNom() {
|
||||||
return this.joueur.getNom();
|
return this.joueur.getNom();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ import javafx.scene.text.Text;
|
|||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import main.Contexte;
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class LancerDes {
|
public class LancerDes {
|
||||||
private int resultat;
|
private int resultat;
|
||||||
@ -36,31 +38,31 @@ public class LancerDes {
|
|||||||
this.contexte = c;
|
this.contexte = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VBox initLancer() {
|
public VBox initLancer(Joueur joueur) {
|
||||||
switch (typeDe) {
|
switch (typeDe) {
|
||||||
case LANCER_DE_4:
|
case LANCER_DE_4:
|
||||||
return initLancerD4();
|
return initLancerD4(joueur);
|
||||||
case LANCER_DE_6:
|
case LANCER_DE_6:
|
||||||
return initLancerD6();
|
return initLancerD6(joueur);
|
||||||
case LANCER_DES:
|
case LANCER_DES:
|
||||||
return initLancerBoth();
|
return initLancerBoth(joueur);
|
||||||
default :
|
default :
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private VBox initLancerD4() {
|
private VBox initLancerD4(Joueur j) {
|
||||||
DieImages images = new DieImages(4);
|
DieImages images = new DieImages(4);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
ImageView stackpane = die.getdieFace();
|
ImageView stackpane = die.getdieFace();
|
||||||
stackpane.setFitHeight(100);
|
stackpane.setFitHeight(100);
|
||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez le dés pour attaquer");
|
Text txt = new Text("Lancez le dé");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dé");
|
||||||
btn.setOnAction((ActionEvent event) -> {
|
btn.setOnAction((ActionEvent event) -> {
|
||||||
btn.setDisable(true);// Disable Button
|
btn.setDisable(true);// Disable Button
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@ -91,20 +93,22 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VBox initLancerD6() {
|
private VBox initLancerD6(Joueur j) {
|
||||||
DieImages images = new DieImages(6);
|
DieImages images = new DieImages(6);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
ImageView stackpane = die.getdieFace();
|
ImageView stackpane = die.getdieFace();
|
||||||
stackpane.setFitHeight(100);
|
stackpane.setFitHeight(100);
|
||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez le dés pour attaquer");
|
Text txt = new Text("Lancez le dé");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dé");
|
||||||
btn.setOnAction((ActionEvent event) -> {
|
btn.setOnAction((ActionEvent event) -> {
|
||||||
btn.setDisable(true);// Disable Button
|
btn.setDisable(true);// Disable Button
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@ -122,8 +126,6 @@ public class LancerDes {
|
|||||||
Timeline timeline2 = new Timeline(new KeyFrame(
|
Timeline timeline2 = new Timeline(new KeyFrame(
|
||||||
Duration.millis(2000),
|
Duration.millis(2000),
|
||||||
ae -> {
|
ae -> {
|
||||||
|
|
||||||
|
|
||||||
GestionnaireJeu.notifyPlateau();
|
GestionnaireJeu.notifyPlateau();
|
||||||
}));
|
}));
|
||||||
timeline2.play();
|
timeline2.play();
|
||||||
@ -135,10 +137,12 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VBox initLancerBoth() {
|
private VBox initLancerBoth(Joueur j) {
|
||||||
DieImages images = new DieImages(6);
|
DieImages images = new DieImages(6);
|
||||||
DieImages images2 = new DieImages(4);
|
DieImages images2 = new DieImages(4);
|
||||||
Die die = new Die(images.getImages());
|
Die die = new Die(images.getImages());
|
||||||
@ -150,7 +154,7 @@ public class LancerDes {
|
|||||||
stackpane.setFitWidth(100);
|
stackpane.setFitWidth(100);
|
||||||
stackpane2.setFitWidth(100);
|
stackpane2.setFitWidth(100);
|
||||||
Button btn = new Button();
|
Button btn = new Button();
|
||||||
Text txt = new Text("Lancez les dés pour vous deplacer");
|
Text txt = new Text("Lancez les dés");
|
||||||
txt.setFont(Font.font(null, null, null, 12));
|
txt.setFont(Font.font(null, null, null, 12));
|
||||||
txt.setFill(Color.WHITE);
|
txt.setFill(Color.WHITE);
|
||||||
btn.setText("Lancer dés");
|
btn.setText("Lancer dés");
|
||||||
@ -191,6 +195,8 @@ public class LancerDes {
|
|||||||
VBox root = new VBox(txt,des, new StackPane(btn));
|
VBox root = new VBox(txt,des, new StackPane(btn));
|
||||||
root.setAlignment(Pos.CENTER);
|
root.setAlignment(Pos.CENTER);
|
||||||
root.setSpacing(20);
|
root.setSpacing(20);
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
btn.fire();
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,16 +3,21 @@ package ihm.controller;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.util.Duration;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
|
||||||
public class LieuZJ implements Initializable {
|
public class LieuZJ implements Initializable {
|
||||||
@FXML private Button okButton;
|
@FXML
|
||||||
@FXML private ImageView imageView;
|
private Button okButton;
|
||||||
|
@FXML
|
||||||
|
private ImageView imageView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
@ -26,4 +31,13 @@ public class LieuZJ implements Initializable {
|
|||||||
public void setImageView(Image imageCarte) {
|
public void setImageView(Image imageCarte) {
|
||||||
this.imageView.setImage(imageCarte);
|
this.imageView.setImage(imageCarte);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA() {
|
||||||
|
okButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
okButton.setDisable(false);
|
||||||
|
okButton.fire();
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,12 +46,6 @@ public class MenuController implements Initializable{
|
|||||||
AnchorPane pane = fxmlLoader.load();
|
AnchorPane pane = fxmlLoader.load();
|
||||||
Scene scene = new Scene(pane);
|
Scene scene = new Scene(pane);
|
||||||
Stage appStage = (Stage) ((Node) mouseEvent.getSource()).getScene().getWindow();
|
Stage appStage = (Stage) ((Node) mouseEvent.getSource()).getScene().getWindow();
|
||||||
|
|
||||||
double width = appStage.getWidth();
|
|
||||||
double height = appStage.getHeight();
|
|
||||||
double X = appStage.getX();
|
|
||||||
double Y = appStage.getY();
|
|
||||||
|
|
||||||
appStage.setScene(scene);
|
appStage.setScene(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -18,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;
|
||||||
@ -27,7 +29,9 @@ 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.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
@ -42,6 +46,7 @@ import javafx.util.Duration;
|
|||||||
import main.Contexte;
|
import main.Contexte;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
import main.Joueur;
|
import main.Joueur;
|
||||||
|
import main.JoueurVirtuel;
|
||||||
|
|
||||||
public class PlateauController implements Initializable {
|
public class PlateauController implements Initializable {
|
||||||
|
|
||||||
@ -58,13 +63,16 @@ public class PlateauController implements Initializable {
|
|||||||
private PiocherCarte pc;
|
private PiocherCarte pc;
|
||||||
private LancerDes ld;
|
private LancerDes ld;
|
||||||
|
|
||||||
private Map<Carte,BufferedImage> mapRessourcesCartes;
|
private static Map<Carte,BufferedImage> mapRessourcesCartes;
|
||||||
private Map<String,BufferedImage> mapRessourcesDosCartes;
|
private static Map<String,BufferedImage> mapRessourcesDosCartes;
|
||||||
|
|
||||||
public static int DICE_SIX = 1;
|
public static int DICE_SIX = 1;
|
||||||
public static int DICE_QUATRE = 0;
|
public static int DICE_QUATRE = 0;
|
||||||
public static int DICE_BOTH = 2;
|
public static int DICE_BOTH = 2;
|
||||||
|
|
||||||
|
private final double RES = 200./2250.;
|
||||||
|
private ResourceBundle resourceBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initialise les données du plateau
|
* initialise les données du plateau
|
||||||
*/
|
*/
|
||||||
@ -72,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();
|
||||||
@ -104,88 +113,6 @@ public class PlateauController implements Initializable {
|
|||||||
|
|
||||||
applyImages(cl,ivs);
|
applyImages(cl,ivs);
|
||||||
|
|
||||||
// BUTTONS ETC
|
|
||||||
//System.out.println(this.joueursPane);
|
|
||||||
|
|
||||||
/*
|
|
||||||
this.hboxJoueur.add(joueur1);
|
|
||||||
this.hboxJoueur.add(joueur2);
|
|
||||||
this.hboxJoueur.add(joueur3);
|
|
||||||
this.hboxJoueur.add(joueur4);
|
|
||||||
|
|
||||||
for (HBox hbox : hboxJoueur) {
|
|
||||||
tour.add((AnchorPane) hbox.getChildren().get(0));
|
|
||||||
VBox carte = (VBox) hbox.getChildren().get(1);
|
|
||||||
cartePerso.add((ImageView) carte.getChildren().get(0));
|
|
||||||
btnRevelation.add((Button) carte.getChildren().get(1));
|
|
||||||
VBox info = (VBox) hbox.getChildren().get(2);
|
|
||||||
nomJoueur.add((Label) info.getChildren().get(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
this.vboxJoueur.add(joueur5);
|
|
||||||
this.vboxJoueur.add(joueur6);
|
|
||||||
this.vboxJoueur.add(joueur7);
|
|
||||||
this.vboxJoueur.add(joueur8);
|
|
||||||
|
|
||||||
for (VBox vbox : vboxJoueur) {
|
|
||||||
tour.add((AnchorPane) vbox.getChildren().get(0));
|
|
||||||
HBox joueur = (HBox) vbox.getChildren().get(1);
|
|
||||||
VBox carte = (VBox) joueur.getChildren().get(1);
|
|
||||||
cartePerso.add((ImageView) carte.getChildren().get(0));
|
|
||||||
btnRevelation.add((Button) carte.getChildren().get(1));
|
|
||||||
VBox info = (VBox) joueur.getChildren().get(0);
|
|
||||||
nomJoueur.add((Label) info.getChildren().get(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
//initilaisation des boutons se reveler
|
|
||||||
int i = 0;
|
|
||||||
for (Button b : btnRevelation) {
|
|
||||||
int compteur = i;
|
|
||||||
b.setOnAction(e -> {try {seReveler(compteur);} catch (IOException e1) {e1.printStackTrace();}});
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
//initialisation des bouton carte personnage
|
|
||||||
int j = 0;
|
|
||||||
for (ImageView b : cartePerso) {
|
|
||||||
int compteur = j;
|
|
||||||
b.setOnMouseClicked(e -> {try {consulterSaCarte(compteur);} catch (IOException e1) {e1.printStackTrace();}});
|
|
||||||
j++;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
//initialisation des pions
|
|
||||||
VBox pionLieux14 = (VBox) lieux.getChildren().get(0);
|
|
||||||
VBox pionLieux58 = (VBox) lieux.getChildren().get(4);
|
|
||||||
for (int k=0; k<4; k++) {
|
|
||||||
pionLieux.add((Circle) pionLieux14.getChildren().get(k));
|
|
||||||
}
|
|
||||||
for (int k=0; k<4; k++) {
|
|
||||||
pionLieux.add((Circle) pionLieux58.getChildren().get(k));
|
|
||||||
}
|
|
||||||
|
|
||||||
VBox pionVie14 = (VBox) lieux.getChildren().get(0);
|
|
||||||
VBox pionVie58 = (VBox) lieux.getChildren().get(4);
|
|
||||||
for (int k=0; k<4; k++) {
|
|
||||||
pionVie.add((Circle) pionVie14.getChildren().get(k));
|
|
||||||
}
|
|
||||||
for (int k=0; k<4; k++) {
|
|
||||||
pionVie.add((Circle) pionVie58.getChildren().get(k));
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("Tour du joueur 1");
|
|
||||||
|
|
||||||
try {
|
|
||||||
final URL fxmlURL = getClass().getResource("../ressources/Jouer_tour(1)lancer_des.fxml");
|
|
||||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.ENGLISH);
|
|
||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
|
||||||
Pane root = fxmlLoader.load();
|
|
||||||
root.setPrefSize(255, 180);
|
|
||||||
tour.get(2).getChildren().setAll(root);
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -208,11 +135,15 @@ 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);
|
||||||
iv.fitHeightProperty().bind(sp.heightProperty());
|
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
}
|
iv.setFitWidth(RES*screenSize.width);
|
||||||
|
//iv.fitHeightProperty().bind(sp.heightProperty());
|
||||||
|
//iv.fitWidthProperty().bind(sp.widthProperty());
|
||||||
|
|
||||||
|
iv.setPreserveRatio(true);
|
||||||
|
//iv.fitWidthProperty().bind(sp.widthProperty());
|
||||||
|
}
|
||||||
|
|
||||||
private Pane getPaneJoueur(int i) {
|
private Pane getPaneJoueur(int i) {
|
||||||
|
|
||||||
@ -333,7 +264,7 @@ public class PlateauController implements Initializable {
|
|||||||
|
|
||||||
this.ld=new LancerDes(typeDice,rolls,c);
|
this.ld=new LancerDes(typeDice,rolls,c);
|
||||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||||
jihm.setZoneJoueur(ld.initLancer());
|
jihm.setZoneJoueur(ld.initLancer(joueur));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afficherChoisir(Joueur j, Contexte contexte) throws IOException {
|
public void afficherChoisir(Joueur j, Contexte contexte) throws IOException {
|
||||||
@ -342,17 +273,33 @@ public class PlateauController implements Initializable {
|
|||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
this.cb = fxmlLoader.getController();
|
this.cb = fxmlLoader.getController();
|
||||||
|
cb.setTitre(contexte);
|
||||||
|
if(j instanceof JoueurVirtuel) {
|
||||||
|
switch(contexte) {
|
||||||
|
case ACTIVER_EFFET_LIEU :
|
||||||
|
cb.fireBtnIAEffetLieu();
|
||||||
|
break;
|
||||||
|
case ATTAQUER :
|
||||||
|
cb.fireBtnIAattaquer((JoueurVirtuel)j, j.getJoueursRange());
|
||||||
|
break;
|
||||||
|
case CHOISIR_VISION :
|
||||||
|
cb.fireBtnIAVision();;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void afficherChoisirEquipementVole(Joueur j) throws IOException {
|
public void afficherChoisirEquipementVole(Joueur j, List<CarteEquipement> lce) throws IOException {
|
||||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2a)voler_equipement.fxml");
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2a)voler_equipement.fxml");
|
||||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
this.ce = fxmlLoader.getController();
|
this.ce = fxmlLoader.getController();
|
||||||
|
this.ce.setListCarteEquipements(lce);
|
||||||
|
this.ce.initChoisirEquipement();
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
@ -369,7 +316,7 @@ public class PlateauController implements Initializable {
|
|||||||
|
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
Pane p = (Pane) jihm.getZoneJoueur();
|
Pane p = (Pane) jihm.getZoneJoueur();
|
||||||
Pane pane = null;
|
Pane pane = new Pane();
|
||||||
|
|
||||||
if(p.getChildren() != null && p.getChildren().size() > 0) {
|
if(p.getChildren() != null && p.getChildren().size() > 0) {
|
||||||
|
|
||||||
@ -397,7 +344,20 @@ public class PlateauController implements Initializable {
|
|||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
LieuZJ lzj = fxmlLoader.getController();
|
LieuZJ lzj = fxmlLoader.getController();
|
||||||
lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
||||||
|
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
|
if(jihm.getPosition()==4 || jihm.getPosition()==5) {
|
||||||
|
SplitPane s=(SplitPane)root.getChildren().get(0);
|
||||||
|
AnchorPane a=(AnchorPane)s.getItems().get(0);
|
||||||
|
VBox v= (VBox)a.getChildren().get(0);
|
||||||
|
AnchorPane b=(AnchorPane)s.getItems().get(1);
|
||||||
|
ImageView i= (ImageView)b.getChildren().get(0);
|
||||||
|
|
||||||
|
v.setRotate(180);
|
||||||
|
i.setRotate(180);
|
||||||
|
s.setRotate(180);
|
||||||
|
}
|
||||||
|
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
public void afficherChoisirJoueur(Joueur j, List<Joueur> joueurs, Contexte contexte) throws IOException {
|
public void afficherChoisirJoueur(Joueur j, List<Joueur> joueurs, Contexte contexte) throws IOException {
|
||||||
@ -405,12 +365,30 @@ public class PlateauController implements Initializable {
|
|||||||
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
Pane root = (Pane)fxmlLoader.load();
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
|
|
||||||
|
List<JoueurIHM> joueursIHM = toJoueursIHM(joueurs);
|
||||||
|
|
||||||
this.cj = fxmlLoader.getController();
|
this.cj = fxmlLoader.getController();
|
||||||
this.cj.setListJoueursIHM(this.joueursIHM);
|
cj.setTitre(contexte);
|
||||||
|
this.cj.setListJoueursIHM(joueursIHM);
|
||||||
this.cj.initButtons();
|
this.cj.initButtons();
|
||||||
|
if(j instanceof JoueurVirtuel)
|
||||||
|
cj.fireBtnIA((JoueurVirtuel)j, contexte);
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
|
private List<JoueurIHM> toJoueursIHM(List<Joueur> joueurs) {
|
||||||
|
|
||||||
|
List<JoueurIHM> list = new ArrayList<JoueurIHM>();
|
||||||
|
|
||||||
|
for(Joueur j : joueurs) {
|
||||||
|
list.add(getJoueurIHM(j));
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void afficherPiocher(Joueur j) throws IOException {
|
public void afficherPiocher(Joueur j) throws IOException {
|
||||||
|
|
||||||
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
||||||
@ -422,6 +400,17 @@ public class PlateauController implements Initializable {
|
|||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
}
|
}
|
||||||
|
public void afficherEffet(Joueur j) throws IOException {
|
||||||
|
|
||||||
|
final URL fxmlURL = getClass().getResource("/ihm/ressources/Jouer_tour(2b)piocher_carte.fxml");
|
||||||
|
final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE);
|
||||||
|
final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle);
|
||||||
|
Pane root = (Pane)fxmlLoader.load();
|
||||||
|
//CartePiochable lzj = fxmlLoader.getController();
|
||||||
|
//lzj.setImageView(this.getImageCarte(j.getCarteLieu()));
|
||||||
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
|
jihm.setZoneJoueur(root);
|
||||||
|
}
|
||||||
|
|
||||||
public CarteEquipement getChoixEquipementVole(Joueur joueur) {
|
public CarteEquipement getChoixEquipementVole(Joueur joueur) {
|
||||||
JoueurIHM jihm = getJoueurIHM(joueur);
|
JoueurIHM jihm = getJoueurIHM(joueur);
|
||||||
@ -461,6 +450,7 @@ public class PlateauController implements Initializable {
|
|||||||
|
|
||||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||||
JoueurIHM jIHM = getJoueurIHM(joueur);
|
JoueurIHM jIHM = getJoueurIHM(joueur);
|
||||||
|
jIHM.getZoneJoueur().getChildren().setAll();
|
||||||
jIHM.deplacerPionVie(damage);
|
jIHM.deplacerPionVie(damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -481,13 +471,13 @@ public class PlateauController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Image getImageCarte(Carte carte) {
|
public static Image getImageCarte(Carte carte) {
|
||||||
BufferedImage bi = this.mapRessourcesCartes.get(carte);
|
BufferedImage bi = mapRessourcesCartes.get(carte);
|
||||||
return RessourceLoader.toJavaFX(bi);
|
return RessourceLoader.toJavaFX(bi);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Image getImageDosCarte(String s) {
|
public static Image getImageDosCarte(String s) {
|
||||||
BufferedImage bi = this.mapRessourcesDosCartes.get(s);
|
BufferedImage bi = mapRessourcesDosCartes.get(s);
|
||||||
return RessourceLoader.toJavaFX(bi);
|
return RessourceLoader.toJavaFX(bi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -501,7 +491,6 @@ public class PlateauController implements Initializable {
|
|||||||
public void retirerEquipement(Joueur j, CarteEquipement e) {
|
public void retirerEquipement(Joueur j, CarteEquipement e) {
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
jihm.retirerEquipement(e);
|
jihm.retirerEquipement(e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void close() throws IOException {
|
public void close() throws IOException {
|
||||||
@ -524,8 +513,14 @@ public class PlateauController implements Initializable {
|
|||||||
pu.getStage().hide();
|
pu.getStage().hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if(j instanceof JoueurVirtuel) {
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(3000), ae -> {
|
||||||
|
pu.getStage().hide();
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
pu.display();
|
pu.display();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afficherVision(Joueur j, CartePiochable cartePiochable) throws IOException {
|
public void afficherVision(Joueur j, CartePiochable cartePiochable) throws IOException {
|
||||||
@ -538,7 +533,20 @@ public class PlateauController implements Initializable {
|
|||||||
Image im = getImageCarte(cartePiochable);
|
Image im = getImageCarte(cartePiochable);
|
||||||
lzj.setImageView(im);
|
lzj.setImageView(im);
|
||||||
lzj.setText("Cachez la carte vision");
|
lzj.setText("Cachez la carte vision");
|
||||||
|
if(j instanceof JoueurVirtuel) lzj.fireBtnIA();
|
||||||
JoueurIHM jihm = getJoueurIHM(j);
|
JoueurIHM jihm = getJoueurIHM(j);
|
||||||
|
if(jihm.getPosition()==4 || jihm.getPosition()==5) {
|
||||||
|
SplitPane s=(SplitPane)root.getChildren().get(0);
|
||||||
|
AnchorPane a=(AnchorPane)s.getItems().get(0);
|
||||||
|
VBox v= (VBox)a.getChildren().get(0);
|
||||||
|
AnchorPane b=(AnchorPane)s.getItems().get(1);
|
||||||
|
ImageView i= (ImageView)b.getChildren().get(0);
|
||||||
|
|
||||||
|
v.setRotate(180);
|
||||||
|
i.setRotate(180);
|
||||||
|
s.setRotate(180);
|
||||||
|
}
|
||||||
|
jihm.getZoneJoueur();
|
||||||
jihm.setZoneJoueur(root);
|
jihm.setZoneJoueur(root);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -552,4 +560,49 @@ public class PlateauController implements Initializable {
|
|||||||
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -19,7 +19,9 @@ import javafx.scene.Node;
|
|||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.CheckBox;
|
import javafx.scene.control.CheckBox;
|
||||||
|
import javafx.scene.control.RadioButton;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
|
import javafx.scene.control.ToggleGroup;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
@ -43,18 +45,48 @@ public class PlayersController implements Initializable{
|
|||||||
@FXML private HBox hb7;
|
@FXML private HBox hb7;
|
||||||
@FXML private HBox hb8;
|
@FXML private HBox hb8;
|
||||||
|
|
||||||
|
|
||||||
|
//pour les radios boutons
|
||||||
|
@FXML private HBox hbr1;
|
||||||
|
@FXML private HBox hbr2;
|
||||||
|
@FXML private HBox hbr3;
|
||||||
|
@FXML private HBox hbr4;
|
||||||
|
@FXML private HBox hbr5;
|
||||||
|
@FXML private HBox hbr6;
|
||||||
|
@FXML private HBox hbr7;
|
||||||
|
@FXML private HBox hbr8;
|
||||||
|
|
||||||
|
|
||||||
|
@FXML private ToggleGroup tg1;
|
||||||
|
@FXML private ToggleGroup tg2;
|
||||||
|
@FXML private ToggleGroup tg3;
|
||||||
|
@FXML private ToggleGroup tg4;
|
||||||
|
@FXML private ToggleGroup tg5;
|
||||||
|
@FXML private ToggleGroup tg6;
|
||||||
|
@FXML private ToggleGroup tg7;
|
||||||
|
@FXML private ToggleGroup tg8;
|
||||||
|
|
||||||
|
|
||||||
private List<HBox> ligne = new ArrayList<HBox>();
|
private List<HBox> ligne = new ArrayList<HBox>();
|
||||||
private List<Button> plus = new ArrayList<Button>();
|
private List<Button> plus = new ArrayList<Button>();
|
||||||
private List<TextField> txt = new ArrayList<TextField>();
|
private List<TextField> txt = new ArrayList<TextField>();
|
||||||
private List<CheckBox> ia = new ArrayList<CheckBox>();
|
private List<CheckBox> ia = new ArrayList<CheckBox>();
|
||||||
|
|
||||||
|
private List<HBox> listeHbIA = new ArrayList<HBox>();
|
||||||
|
private List<RadioButton> listeIaLv1 = new ArrayList<RadioButton>();
|
||||||
|
private List<RadioButton> listeIaLv2 = new ArrayList<RadioButton>();
|
||||||
|
private List<RadioButton> listeIaLv3 = new ArrayList<RadioButton>();
|
||||||
|
|
||||||
|
private List<ToggleGroup> listeToggleRbIa = new ArrayList<ToggleGroup>();
|
||||||
|
|
||||||
|
|
||||||
private HashMap<Integer, Couple> joueurs = new HashMap<Integer, Couple>();
|
private HashMap<Integer, Couple> joueurs = new HashMap<Integer, Couple>();
|
||||||
|
|
||||||
private int nbJoueursH = 0;
|
private int nbJoueursH = 0;
|
||||||
private int nbJoueursV = 0;
|
private int nbJoueursV = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* recup<EFBFBD>re chaque bouton textField et Checkebox a partir des hbox
|
* recupère chaque bouton textField et Checkebox à partir des hbox
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
@ -66,12 +98,44 @@ public class PlayersController implements Initializable{
|
|||||||
ligne.add(hb6);
|
ligne.add(hb6);
|
||||||
ligne.add(hb7);
|
ligne.add(hb7);
|
||||||
ligne.add(hb8);
|
ligne.add(hb8);
|
||||||
|
|
||||||
|
listeHbIA.add(hbr1);
|
||||||
|
listeHbIA.add(hbr2);
|
||||||
|
listeHbIA.add(hbr3);
|
||||||
|
listeHbIA.add(hbr4);
|
||||||
|
listeHbIA.add(hbr5);
|
||||||
|
listeHbIA.add(hbr6);
|
||||||
|
listeHbIA.add(hbr7);
|
||||||
|
listeHbIA.add(hbr8);
|
||||||
|
|
||||||
|
|
||||||
|
listeToggleRbIa.add(tg1);
|
||||||
|
listeToggleRbIa.add(tg2);
|
||||||
|
listeToggleRbIa.add(tg3);
|
||||||
|
listeToggleRbIa.add(tg4);
|
||||||
|
listeToggleRbIa.add(tg5);
|
||||||
|
listeToggleRbIa.add(tg6);
|
||||||
|
listeToggleRbIa.add(tg7);
|
||||||
|
listeToggleRbIa.add(tg8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (HBox hb : ligne) {
|
for (HBox hb : ligne) {
|
||||||
txt.add((TextField) hb.getChildren().get(0));
|
txt.add((TextField) hb.getChildren().get(0));
|
||||||
plus.add((Button) hb.getChildren().get(1));
|
plus.add((Button) hb.getChildren().get(1));
|
||||||
ia.add((CheckBox) hb.getChildren().get(2));
|
ia.add((CheckBox) hb.getChildren().get(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (HBox hbr : listeHbIA) {
|
||||||
|
listeIaLv1.add((RadioButton) hbr.getChildren().get(0));
|
||||||
|
listeIaLv2.add((RadioButton) hbr.getChildren().get(1));
|
||||||
|
listeIaLv3.add((RadioButton) hbr.getChildren().get(2));
|
||||||
|
|
||||||
|
hbr.getChildren().get(0).setVisible(false);
|
||||||
|
hbr.getChildren().get(1).setVisible(false);
|
||||||
|
hbr.getChildren().get(2).setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
int i=0;
|
int i=0;
|
||||||
for (Button btn : plus) {
|
for (Button btn : plus) {
|
||||||
int compteur = i;
|
int compteur = i;
|
||||||
@ -106,10 +170,10 @@ public class PlayersController implements Initializable{
|
|||||||
CheckBox cb = (CheckBox) hb.getChildren().get(2);
|
CheckBox cb = (CheckBox) hb.getChildren().get(2);
|
||||||
if (tf.isEditable()) {
|
if (tf.isEditable()) {
|
||||||
if(cb.isSelected()) {
|
if(cb.isSelected()) {
|
||||||
joueurs.put(i, new Couple(tf.getText(), true));
|
joueurs.put(i, new Couple(tf.getText(), choixDifficulte(listeToggleRbIa.get(i))));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
joueurs.put(i, new Couple(tf.getText(), false));
|
joueurs.put(i, new Couple(tf.getText()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
@ -170,6 +234,12 @@ public class PlayersController implements Initializable{
|
|||||||
plus.get(indice).setOnAction(e -> {enleverJoueur(indice);});
|
plus.get(indice).setOnAction(e -> {enleverJoueur(indice);});
|
||||||
|
|
||||||
if (ia.get(indice).isSelected()) {
|
if (ia.get(indice).isSelected()) {
|
||||||
|
|
||||||
|
listeIaLv1.get(indice).setVisible(true);
|
||||||
|
listeIaLv2.get(indice).setVisible(true);
|
||||||
|
listeIaLv3.get(indice).setVisible(true);
|
||||||
|
|
||||||
|
|
||||||
nbJoueursV++;
|
nbJoueursV++;
|
||||||
}else {
|
}else {
|
||||||
nbJoueursH++;
|
nbJoueursH++;
|
||||||
@ -197,16 +267,47 @@ public class PlayersController implements Initializable{
|
|||||||
txt.get(indice).setStyle("-fx-background-color: silver;");
|
txt.get(indice).setStyle("-fx-background-color: silver;");
|
||||||
plus.get(indice).setOnAction(e -> {ajoutJoueur(indice);});
|
plus.get(indice).setOnAction(e -> {ajoutJoueur(indice);});
|
||||||
|
|
||||||
if (ia.get(indice).isSelected())
|
if (ia.get(indice).isSelected()) {
|
||||||
nbJoueursV--;
|
nbJoueursV--;
|
||||||
else
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
nbJoueursH--;
|
nbJoueursH--;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
listeIaLv1.get(indice).setVisible(false);
|
||||||
|
listeIaLv2.get(indice).setVisible(false);
|
||||||
|
listeIaLv3.get(indice).setVisible(false);
|
||||||
|
|
||||||
|
|
||||||
if (nbJoueursH + nbJoueursV < 4) {
|
if (nbJoueursH + nbJoueursV < 4) {
|
||||||
btnCommencer.setStyle("-fx-background-color: gray; -fx-text-fill: black;");
|
btnCommencer.setStyle("-fx-background-color: gray; -fx-text-fill: black;");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int choixDifficulte(ToggleGroup tog) {
|
||||||
|
if(tog.getSelectedToggle() == tog.getToggles().get(0)) {
|
||||||
|
System.out.println("ia facile");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (tog.getSelectedToggle() == tog.getToggles().get(1)) {
|
||||||
|
System.out.println("ia moyenne");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (tog.getSelectedToggle() == tog.getToggles().get(2)) {
|
||||||
|
System.out.println("ia difficile");
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
System.out.println("erreur choix difficulté de l'ia");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void mettreNomDefaut(int indice) {
|
public void mettreNomDefaut(int indice) {
|
||||||
if (ia.get(indice).isSelected()) {
|
if (ia.get(indice).isSelected()) {
|
||||||
ajoutJoueur(indice);
|
ajoutJoueur(indice);
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package ihm.controller;
|
package ihm.controller;
|
||||||
|
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import javafx.animation.KeyFrame;
|
||||||
|
import javafx.animation.Timeline;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
@ -16,12 +17,16 @@ import javafx.scene.layout.BackgroundImage;
|
|||||||
import javafx.scene.layout.BackgroundPosition;
|
import javafx.scene.layout.BackgroundPosition;
|
||||||
import javafx.scene.layout.BackgroundRepeat;
|
import javafx.scene.layout.BackgroundRepeat;
|
||||||
import javafx.scene.layout.BackgroundSize;
|
import javafx.scene.layout.BackgroundSize;
|
||||||
|
import javafx.util.Duration;
|
||||||
import main.GestionnaireJeu;
|
import main.GestionnaireJeu;
|
||||||
|
|
||||||
public class RecevoirCarte implements Initializable {
|
public class RecevoirCarte implements Initializable {
|
||||||
@FXML private Button okButton;
|
@FXML
|
||||||
@FXML private Label label;
|
private Button okButton;
|
||||||
@FXML private ImageView imageView;
|
@FXML
|
||||||
|
private Label label;
|
||||||
|
@FXML
|
||||||
|
private ImageView imageView;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(URL arg0, ResourceBundle arg1) {
|
public void initialize(URL arg0, ResourceBundle arg1) {
|
||||||
@ -39,9 +44,17 @@ public class RecevoirCarte implements Initializable {
|
|||||||
public void setImageView(Image imageCarte) {
|
public void setImageView(Image imageCarte) {
|
||||||
AnchorPane ap = (AnchorPane) imageView.getParent();
|
AnchorPane ap = (AnchorPane) imageView.getParent();
|
||||||
|
|
||||||
BackgroundImage myBI= new BackgroundImage(imageCarte,
|
BackgroundImage myBI = new BackgroundImage(imageCarte, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT,
|
||||||
BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT,
|
BackgroundPosition.DEFAULT, new BackgroundSize(BackgroundSize.AUTO, 1.0, true, true, false, false));
|
||||||
new BackgroundSize(BackgroundSize.AUTO,1.0,true,true,false,false));
|
|
||||||
ap.setBackground(new Background(myBI));
|
ap.setBackground(new Background(myBI));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fireBtnIA() {
|
||||||
|
okButton.setDisable(true);
|
||||||
|
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> {
|
||||||
|
okButton.setDisable(false);
|
||||||
|
okButton.fire();
|
||||||
|
}));
|
||||||
|
timeline.play();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
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>
|
@ -1,27 +1,26 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
<?import javafx.scene.control.ScrollPane?>
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
<?import javafx.scene.image.ImageView?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
<?import javafx.scene.layout.HBox?>
|
<?import javafx.scene.layout.HBox?>
|
||||||
<?import javafx.scene.layout.Pane?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="210.0" prefWidth="260.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.ChoisirEquipement">
|
<AnchorPane stylesheets="@style/plateau.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.ChoisirEquipement">
|
||||||
<children>
|
<children>
|
||||||
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" stylesheets="@style/popUp.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<VBox alignment="CENTER" spacing="10.0" styleClass="background" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
<children>
|
<children>
|
||||||
<Label layoutX="58.0" layoutY="14.0" text="%voler.equipement.joueur" />
|
<Label alignment="CENTER" contentDisplay="CENTER" styleClass="text" text="%voler.equipement.joueur" />
|
||||||
<ScrollPane layoutX="28.0" layoutY="38.0">
|
<ScrollPane fx:id="scrollpane" fitToHeight="true" fitToWidth="true" prefHeight="144.0" prefWidth="144.0" vbarPolicy="NEVER" VBox.vgrow="SOMETIMES">
|
||||||
<content>
|
<content>
|
||||||
<HBox>
|
<HBox fx:id="hbox" styleClass="background" />
|
||||||
<children>
|
|
||||||
<ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" />
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</content>
|
</content>
|
||||||
</ScrollPane>
|
</ScrollPane>
|
||||||
</children>
|
</children>
|
||||||
</Pane>
|
<padding>
|
||||||
|
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
|
||||||
|
</padding>
|
||||||
|
</VBox>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
@ -252,7 +252,7 @@
|
|||||||
<Insets bottom="25.0" />
|
<Insets bottom="25.0" />
|
||||||
</padding>
|
</padding>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<HBox alignment="CENTER" prefHeight="366.0" prefWidth="1125.0" spacing="50.0">
|
<HBox alignment="CENTER" maxWidth="1280.0" spacing="50.0">
|
||||||
<children>
|
<children>
|
||||||
<VBox alignment="TOP_CENTER">
|
<VBox alignment="TOP_CENTER">
|
||||||
<children>
|
<children>
|
||||||
@ -290,14 +290,14 @@
|
|||||||
</VBox>
|
</VBox>
|
||||||
<VBox alignment="CENTER" spacing="50.0">
|
<VBox alignment="CENTER" spacing="50.0">
|
||||||
<children>
|
<children>
|
||||||
<GridPane alignment="CENTER" hgap="20.0">
|
<GridPane alignment="CENTER" hgap="20.0" maxHeight="-Infinity" prefHeight="250.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="ALWAYS" />
|
<ColumnConstraints hgrow="ALWAYS" />
|
||||||
<ColumnConstraints />
|
<ColumnConstraints />
|
||||||
<ColumnConstraints hgrow="ALWAYS" />
|
<ColumnConstraints hgrow="ALWAYS" />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints />
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<GridPane>
|
<GridPane>
|
||||||
@ -324,21 +324,21 @@
|
|||||||
<ColumnConstraints />
|
<ColumnConstraints />
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints />
|
<RowConstraints vgrow="ALWAYS" />
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<HBox alignment="TOP_CENTER" maxHeight="-Infinity" maxWidth="-Infinity" spacing="5.0" styleClass="lieux" stylesheets="@style/plateau.css">
|
<HBox alignment="CENTER" spacing="5.0" styleClass="lieux" stylesheets="@style/plateau.css">
|
||||||
<children>
|
<children>
|
||||||
<StackPane HBox.hgrow="NEVER">
|
<StackPane HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="77.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" StackPane.alignment="CENTER" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="63.0" styleClass="lieu" />
|
<FlowPane styleClass="lieu" />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
<StackPane layoutX="39.0" layoutY="12.0" HBox.hgrow="NEVER">
|
<StackPane layoutX="39.0" layoutY="12.0" maxHeight="360.0" HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="40.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="13.0" />
|
<FlowPane />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
</children>
|
</children>
|
||||||
@ -353,14 +353,14 @@
|
|||||||
<children>
|
<children>
|
||||||
<StackPane HBox.hgrow="NEVER">
|
<StackPane HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="98.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="64.0" />
|
<FlowPane />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
<StackPane HBox.hgrow="NEVER">
|
<StackPane HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="93.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="69.0" />
|
<FlowPane />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
</children>
|
</children>
|
||||||
@ -370,16 +370,16 @@
|
|||||||
</HBox>
|
</HBox>
|
||||||
<HBox alignment="TOP_CENTER" spacing="5.0" styleClass="lieux" stylesheets="@style/plateau.css" GridPane.columnIndex="2">
|
<HBox alignment="TOP_CENTER" spacing="5.0" styleClass="lieux" stylesheets="@style/plateau.css" GridPane.columnIndex="2">
|
||||||
<children>
|
<children>
|
||||||
<StackPane HBox.hgrow="NEVER">
|
<StackPane maxHeight="360.0" HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="111.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="81.0" />
|
<FlowPane />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
<StackPane HBox.hgrow="NEVER">
|
<StackPane maxHeight="360.0" HBox.hgrow="NEVER">
|
||||||
<children>
|
<children>
|
||||||
<ImageView fitHeight="150.0" fitWidth="125.0" pickOnBounds="true" preserveRatio="true" />
|
<ImageView pickOnBounds="true" preserveRatio="true" />
|
||||||
<FlowPane prefHeight="150.0" prefWidth="113.0" />
|
<FlowPane />
|
||||||
</children>
|
</children>
|
||||||
</StackPane>
|
</StackPane>
|
||||||
</children>
|
</children>
|
||||||
|
@ -25,7 +25,7 @@ public class Configuration {
|
|||||||
Couple c = nomsJoueurs.get(i);
|
Couple c = nomsJoueurs.get(i);
|
||||||
|
|
||||||
if(c.isIa()) {
|
if(c.isIa()) {
|
||||||
joueurs.put(i,new JoueurVirtuel(c.getNom()));
|
joueurs.put(i,new JoueurVirtuel(c.getNom(),c.getLvlIa()));
|
||||||
}else {
|
}else {
|
||||||
joueurs.put(i,new Joueur(c.getNom()));
|
joueurs.put(i,new Joueur(c.getNom()));
|
||||||
}
|
}
|
||||||
|
@ -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
|
LANCER_DES_6, CHOISIR_VISION, CHOISIR_ACTION
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,20 +32,20 @@ public class ControleurIA {
|
|||||||
int diff = jIA.getDifficulte();
|
int diff = jIA.getDifficulte();
|
||||||
switch (diff) {
|
switch (diff) {
|
||||||
case 1:
|
case 1:
|
||||||
if (res < 25)
|
if (res < 60)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (res < 50)
|
if (res < 80)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (res < 75)
|
if (res < 100)
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
} else if (res < 10)
|
} else if (res < 30)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -29,9 +29,6 @@ public class GestionnaireEquipements {
|
|||||||
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
|
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
|
||||||
this.j.removeEquipementIHM(e);
|
this.j.removeEquipementIHM(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CarteEquipement> getEquipements() {
|
public List<CarteEquipement> getEquipements() {
|
||||||
|
@ -13,8 +13,10 @@ import carte.CarteEquipement;
|
|||||||
import carte.CarteLieu;
|
import carte.CarteLieu;
|
||||||
import carte.CartePiochable;
|
import carte.CartePiochable;
|
||||||
import carte.CartePiochable.Type;
|
import carte.CartePiochable.Type;
|
||||||
|
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 +51,6 @@ public class GestionnaireJeu {
|
|||||||
plateau.start();
|
plateau.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
|
|
||||||
return effets[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void deplacer(Joueur currentJoueur) {
|
public void deplacer(Joueur currentJoueur) {
|
||||||
|
|
||||||
@ -112,21 +110,46 @@ public class GestionnaireJeu {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Object choisir(Joueur joueur, List<?> list, Class<?> cls) {
|
public Object choisir(Joueur joueur, List<?> list, Class<?> cls) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(cls == CarteEquipement.class) {
|
if(cls == CarteEquipement.class) {
|
||||||
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.ACTIVER_EFFET_LIEU);
|
}else if(cls == Action.class) {
|
||||||
|
return choisirAction(joueur, (List<Action>) list, Contexte.CHOISIR_ACTION);
|
||||||
}
|
}
|
||||||
return list.get(0);
|
return list.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Action choisirAction(Joueur joueur, List<Action> list, Contexte choisirAction) {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
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) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
try {
|
try {
|
||||||
pc.afficherChoisirEquipementVole(joueur);
|
pc.afficherChoisirEquipementVole(joueur,lce);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -331,5 +354,20 @@ public class GestionnaireJeu {
|
|||||||
waitPlateau();
|
waitPlateau();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void recevoirCarteVision(Joueur j2, CarteVision carteVision) {
|
||||||
|
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
try {
|
||||||
|
pc.afficherVision(j2, carteVision);
|
||||||
|
} catch (IOException e) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
waitPlateau();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reveler(Joueur joueur) {
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
pc.revealJoueur(joueur);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import carte.CarteEquipement;
|
|||||||
import carte.CarteLieu;
|
import carte.CarteLieu;
|
||||||
import effet.Effet;
|
import effet.Effet;
|
||||||
import personnage.CartePersonnage;
|
import personnage.CartePersonnage;
|
||||||
|
import personnage.Metamorphe;
|
||||||
import personnage.CartePersonnage.Equipe;
|
import personnage.CartePersonnage.Equipe;
|
||||||
|
|
||||||
|
|
||||||
@ -128,11 +129,9 @@ public class Joueur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void voler(Joueur j2, CarteEquipement equipement) {
|
public void voler(Joueur j2, CarteEquipement equipement) {
|
||||||
|
|
||||||
j2.gestionnaireEquipements.retirer(equipement);
|
j2.gestionnaireEquipements.retirer(equipement);
|
||||||
this.gestionnaireEquipements.ajouter(equipement); }
|
this.gestionnaireEquipements.ajouter(equipement);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void attaquer(Joueur j2, int attaqueDice) {
|
public void attaquer(Joueur j2, int attaqueDice) {
|
||||||
|
|
||||||
@ -208,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,4 +271,12 @@ public class Joueur {
|
|||||||
this.cartePersonnage.utiliser();
|
this.cartePersonnage.utiliser();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isMetamorph() {
|
||||||
|
return this.cartePersonnage instanceof Metamorphe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Joueur choisir(List<Joueur> adjacents, Contexte attaquer) {
|
||||||
|
return this.plateau.choisir(this,adjacents, attaquer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package main;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import carte.CarteEquipement;
|
import carte.CarteEquipement;
|
||||||
import carte.CarteEquipementStat;
|
import carte.CarteEquipementStat;
|
||||||
@ -15,6 +16,11 @@ public class JoueurVirtuel extends Joueur {
|
|||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JoueurVirtuel(String nom, int lvlIa) {
|
||||||
|
super(nom);
|
||||||
|
nvDifficulte = lvlIa;
|
||||||
|
}
|
||||||
|
|
||||||
public Effet choisirEffet(List<Effet> effets) {
|
public Effet choisirEffet(List<Effet> effets) {
|
||||||
return effets.get((int) Math.floor(Math.random() * effets.size()));
|
return effets.get((int) Math.floor(Math.random() * effets.size()));
|
||||||
}
|
}
|
||||||
@ -51,6 +57,9 @@ public class JoueurVirtuel extends Joueur {
|
|||||||
case EFFET_POSITIF_SUR_AUTRES:
|
case EFFET_POSITIF_SUR_AUTRES:
|
||||||
res = choisirJoueurAmi(joueurs);
|
res = choisirJoueurAmi(joueurs);
|
||||||
break;
|
break;
|
||||||
|
case CHOISIR_VISION:
|
||||||
|
res = joueurs.get((int) Math.floor(Math.random() * joueurs.size())); // a revoir inshallah
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
res = null; // faire exception?
|
res = null; // faire exception?
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,11 @@ public class Pioche {
|
|||||||
Collections.shuffle(cartesPiochables);
|
Collections.shuffle(cartesPiochables);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CartePiochable piocher() {
|
public CartePiochable piocher(Joueur j) {
|
||||||
return cartesPiochables.pop();
|
CartePiochable cp = cartesPiochables.pop();
|
||||||
|
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
|
||||||
|
gj.piocher(j,cp);
|
||||||
|
return cp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Stack<CartePiochable> getStack() {
|
public Stack<CartePiochable> getStack() {
|
||||||
|
@ -289,7 +289,7 @@ public class Plateau extends Thread{
|
|||||||
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
if(currentJoueur.choisir(Contexte.ATTAQUER)){
|
||||||
if(currentJoueur.hasOpponents()) {
|
if(currentJoueur.hasOpponents()) {
|
||||||
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
List<Joueur> adjacents = currentJoueur.getJoueursRange();
|
||||||
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Joueur.class);
|
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Contexte.ATTAQUER);
|
||||||
attaquer(currentJoueur,cible);
|
attaquer(currentJoueur,cible);
|
||||||
if(isPartieTerminee()) break;
|
if(isPartieTerminee()) break;
|
||||||
}else {
|
}else {
|
||||||
@ -315,7 +315,6 @@ public class Plateau extends Thread{
|
|||||||
return this.getStat(PARTIE_FINIE) == 1;
|
return this.getStat(PARTIE_FINIE) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void deplacer(Joueur currentJoueur) {
|
public void deplacer(Joueur currentJoueur) {
|
||||||
|
|
||||||
boolean attributed = false;
|
boolean attributed = false;
|
||||||
@ -368,7 +367,7 @@ public class Plateau extends Thread{
|
|||||||
public int roll6(Joueur j) {
|
public int roll6(Joueur j) {
|
||||||
|
|
||||||
int roll = this.rollRandom(6);
|
int roll = this.rollRandom(6);
|
||||||
gj.rollDice(j, PlateauController.DICE_QUATRE, roll);
|
gj.rollDice(j, PlateauController.DICE_SIX, roll);
|
||||||
return roll;
|
return roll;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,7 +384,7 @@ public class Plateau extends Thread{
|
|||||||
int roll6 = rollRandom(6);
|
int roll6 = rollRandom(6);
|
||||||
int sum = Math.abs(roll4+roll6);
|
int sum = Math.abs(roll4+roll6);
|
||||||
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
||||||
return 3;
|
return sum;
|
||||||
//return Math.abs(roll4+roll6);
|
//return Math.abs(roll4+roll6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,16 +447,14 @@ 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 = this.getJoueurs();
|
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||||
|
joueurs.addAll(this.getJoueurs());
|
||||||
|
joueurs.remove(joueur);
|
||||||
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
return (Joueur) gj.choisir(joueur, joueurs, Joueur.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||||
gj.updateVieJoueur(joueur,damage);
|
gj.updateVieJoueur(joueur,damage);
|
||||||
|
|
||||||
@ -480,4 +477,8 @@ public class Plateau extends Thread{
|
|||||||
gj.retirerEquipement(joueur,e);
|
gj.retirerEquipement(joueur,e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Joueur choisir(Joueur joueur, List<Joueur> adjacents, Contexte attaquer) {
|
||||||
|
return gj.choisirJoueur(joueur, adjacents, attaquer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user