diff --git a/shDBlatest.sql b/shDBlatest.sql index f46bfe8..ad47ef6 100644 Binary files a/shDBlatest.sql and b/shDBlatest.sql differ diff --git a/src/carte/CarteCondition.java b/src/carte/CarteCondition.java index d46ba89..9b059c7 100644 --- a/src/carte/CarteCondition.java +++ b/src/carte/CarteCondition.java @@ -12,7 +12,8 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{ * */ private static final long serialVersionUID = 903022795821166067L; - + private Condition condition; + public CarteCondition() { super("",""); this.condition = new Condition(); @@ -21,12 +22,11 @@ public abstract class CarteCondition extends CarteEffet implements Serializable{ public CarteCondition(String nom, String description) { super(nom, description); - } - private Condition condition; + /* diff --git a/src/carte/CarteEquipement.java b/src/carte/CarteEquipement.java index 0f6fe42..907086e 100644 --- a/src/carte/CarteEquipement.java +++ b/src/carte/CarteEquipement.java @@ -17,6 +17,7 @@ public abstract class CarteEquipement extends CartePiochable{ super(t, effet); } + @Override public void utiliser(Joueur j) { if(!j.getEquipements().contains(this)) { j.ajouterEquipement(this); diff --git a/src/carte/CarteLieu.java b/src/carte/CarteLieu.java index c54908b..07c8a33 100644 --- a/src/carte/CarteLieu.java +++ b/src/carte/CarteLieu.java @@ -53,6 +53,11 @@ public class CarteLieu extends CarteEffet{ } } + + public CarteLieu getVoisin() { + return voisin; + } + public void setVoisin(CarteLieu cl) { this.voisin = cl; } diff --git a/src/carte/CarteLieuMultiple.java b/src/carte/CarteLieuMultiple.java index 1c43f93..1082c11 100644 --- a/src/carte/CarteLieuMultiple.java +++ b/src/carte/CarteLieuMultiple.java @@ -3,7 +3,6 @@ package carte; import java.awt.Point; import java.util.List; -import carte.CartePiochable.Type; import main.Joueur; import main.Pioche; @@ -24,8 +23,10 @@ public class CarteLieuMultiple extends CarteLieu{ * @param j Appel la méthode utiliser de effet sur le joueur j */ public void utiliser(Joueur j) { - Pioche p = (Pioche) j.choisir(pioches); - Carte c = p.piocher(); + Pioche p = (Pioche) j.choisir(pioches, Pioche.class); + System.out.println(pioches+ " "+p); + System.out.println(p.getStack()); + Carte c = p.piocher(j); c.utiliser(j); } diff --git a/src/carte/CarteLieuType.java b/src/carte/CarteLieuType.java index 8982607..85e44f1 100644 --- a/src/carte/CarteLieuType.java +++ b/src/carte/CarteLieuType.java @@ -31,7 +31,8 @@ public class CarteLieuType extends CarteLieu{ * @param j Appel la méthode utiliser de effet sur le joueur j */ public void utiliser(Joueur j) { - CartePiochable carte = pioche.piocher(); + System.out.println(pioche); + CartePiochable carte = pioche.piocher(j); carte.utiliser(j); } diff --git a/src/carte/CartePiochable.java b/src/carte/CartePiochable.java index 10890e7..7fb6811 100644 --- a/src/carte/CartePiochable.java +++ b/src/carte/CartePiochable.java @@ -4,6 +4,7 @@ import java.io.Serializable; import condition.Condition; import effet.Effet; +import main.GestionnaireJeu; import main.Joueur; public class CartePiochable extends CarteCondition implements Serializable{ @@ -20,10 +21,12 @@ public class CartePiochable extends CarteCondition implements Serializable{ public CartePiochable(Type t, String nom, String description) { super(nom, description); + this.type = t; } public CartePiochable(Type t, Effet e, Condition c) { super(); + this.type = t; this.setEffet(e); this.setCondition(c); } @@ -38,7 +41,10 @@ public class CartePiochable extends CarteCondition implements Serializable{ /* * @param j Appel la méthode utiliser de effet sur le joueur j */ + @Override public void utiliser(Joueur j) { + GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu(); + System.out.println("CartePiochable "+this + " Condition : "+this.getCondition()+" Effet : "+this.getEffet()+" Action : "+this.getEffet().getAction()); super.utiliser(j); } diff --git a/src/carte/CarteVision.java b/src/carte/CarteVision.java new file mode 100644 index 0000000..44126c4 --- /dev/null +++ b/src/carte/CarteVision.java @@ -0,0 +1,44 @@ +package carte; + +import java.io.Serializable; + +import condition.Condition; +import effet.EffetChoisirCible; +import effet.action.Action; +import main.Contexte; +import main.GestionnaireJeu; +import main.Joueur; + +public class CarteVision extends CartePiochable implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 903022795821166067L; + + public CarteVision(Action a, Condition c) { + super(Type.VISION, "",""); + this.setEffet(new EffetChoisirCible(a)); + this.setCondition(c); + } + + /* + * @param j le joueur utilisant son effet + */ + @Override + public void utiliser(Joueur j1) { + + GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu(); + gj.piocher(j1,this); + + 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((!(M) && Co) || (M && C)) { + this.getEffet().getAction().affecte(j1, j2); + } + } +} diff --git a/src/database/CreatingCardsTest.java b/src/database/CreatingCardsTest.java index db5e5ef..45f4719 100644 --- a/src/database/CreatingCardsTest.java +++ b/src/database/CreatingCardsTest.java @@ -9,6 +9,7 @@ import carte.CarteLieu; import carte.CarteLieuMultiple; import carte.CarteLieuType; import carte.CartePiochable; +import carte.CarteVision; import condition.ConditionClassPersonnage; import condition.ConditionEquipe; import condition.ConditionMultiple; @@ -22,6 +23,7 @@ import effet.EffetSelf; import effet.action.ActionAltererStatistiquesJoueur; import effet.action.ActionAltererStatistiquesJoueurRoll; import effet.action.ActionMultiple; +import effet.action.ActionMultipleChoisir; import effet.action.ActionReveal; import effet.action.ActionVoler; import main.Joueur; @@ -39,13 +41,18 @@ import personnage.Vampire; public class CreatingCardsTest { - public static void main(String[] args) { + public static void init() { // Lumière //Ange gardien try { - /* + + for(int i = 0; i < 67; i++) { + DatabaseManager.queryInsertObject(i, null); + } + + DatabaseManager.queryInsertObject(2,new CartePiochable(CartePiochable.Type.LUMIERE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_IMMUNITY, 1, true)))); @@ -114,19 +121,19 @@ public class CreatingCardsTest { // 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))))); // 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))))); - 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))))); - 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))))); // Dynamite @@ -135,6 +142,11 @@ public class CreatingCardsTest { // Hache tueuse + + DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE, + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); + + DatabaseManager.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); @@ -151,6 +163,7 @@ public class CreatingCardsTest { // Poupé démoniaque // 26 + DatabaseManager.queryInsertObject(28,new CartePiochable(CartePiochable.Type.TENEBRE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true)) @@ -165,26 +178,27 @@ public class CreatingCardsTest { DatabaseManager.queryInsertObject(31,new CartePiochable(CartePiochable.Type.TENEBRE, new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)))); + /* DatabaseManager.queryInsertObject(32,new CarteEquipementStat(CartePiochable.Type.TENEBRE, new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); - + */ // Vision clairvoyante - DatabaseManager.queryInsertObject(33, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(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))); // Vision cupide - DatabaseManager.queryInsertObject(34,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(34,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); - DatabaseManager.queryInsertObject(35,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(35,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); // Vision destructrice - DatabaseManager.queryInsertObject(36, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + DatabaseManager.queryInsertObject(36, new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true), new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 12, ConditionStatistiques.MORE))); @@ -192,35 +206,35 @@ public class CreatingCardsTest { // Vision enivrante - DatabaseManager.queryInsertObject(38,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(38,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); - DatabaseManager.queryInsertObject(39,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(39,new CarteVision( new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); // Vision Foudroyante - DatabaseManager.queryInsertObject(40,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), + DatabaseManager.queryInsertObject(40,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true), new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); // Vision furtive - DatabaseManager.queryInsertObject(41,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(41,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW))); - DatabaseManager.queryInsertObject(42,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + DatabaseManager.queryInsertObject(42,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW))); // Vision Mortifère - DatabaseManager.queryInsertObject(43,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), + DatabaseManager.queryInsertObject(43,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true), new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); // Vision lugubre - DatabaseManager.queryInsertObject(45,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)), + DatabaseManager.queryInsertObject(45,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true), new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); // Vision réconfortante @@ -240,7 +254,7 @@ public class CreatingCardsTest { DatabaseManager.queryInsertObject(56,new Metamorphe()); DatabaseManager.queryInsertObject(57,new Vampire()); - */ + //62 @@ -255,10 +269,8 @@ public class CreatingCardsTest { // 64 CarteLieu lieu3 = new CarteLieu(new Point(-1,9)); - lieu3.setEffet(new EffetChoisirEffet(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)), - - - new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true)))); + lieu3.setEffet(new EffetChoisirCible(new ActionMultipleChoisir(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true), + new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true)))); DatabaseManager.queryInsertObject(64,lieu3); // 65 @@ -270,7 +282,7 @@ public class CreatingCardsTest { DatabaseManager.queryInsertObject(66,lieu5); // 66 - CarteLieu lieu6 = new CarteLieu(new Point(-1,9)); + CarteLieu lieu6 = new CarteLieu(new Point(-1,10)); lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))); DatabaseManager.queryInsertObject(67,lieu6); diff --git a/src/database/DatabaseManager.java b/src/database/DatabaseManager.java index a4480e8..cce9054 100644 --- a/src/database/DatabaseManager.java +++ b/src/database/DatabaseManager.java @@ -19,15 +19,20 @@ public class DatabaseManager { private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase"; private final static String user = "shManager"; private final static String password = "shadowhunter1234"; - - public static Connection connect() throws SQLException { - return DriverManager.getConnection(url, user, password); - } + private static Connection connection; + + public static void connect() throws SQLException { + if(connection == null || connection.isClosed()) { + connection = DriverManager.getConnection(url, user, password); + } + } public static List remplirTable(String query) { List list = new ArrayList(); - try (Connection connection = connect()) { - + + + try{ + connect(); //System.out.println("Connected to PostgreSQL database!"); Statement statement = connection.createStatement(); //System.out.println("Reading records..."); @@ -44,8 +49,8 @@ public class DatabaseManager { public static List remplirTableSansImage(String query) { List list = new ArrayList(); - try (Connection connection = connect()) { - + try { + connect(); //System.out.println("Connected to PostgreSQL database!"); Statement statement = connection.createStatement(); //System.out.println("Reading records..."); @@ -93,8 +98,8 @@ public class DatabaseManager { query = "UPDATE " + table + " SET objet = ? " + " WHERE id = ? " ; - Connection conn = connect(); - PreparedStatement pst = conn.prepareStatement(query); + connect(); + PreparedStatement pst = connection.prepareStatement(query); pst.setBinaryStream(1, objectIS); pst.setInt(2, id); pst.executeUpdate(); diff --git a/src/database/QueryGenerator.java b/src/database/QueryGenerator.java index 7147a91..fb27905 100644 --- a/src/database/QueryGenerator.java +++ b/src/database/QueryGenerator.java @@ -54,6 +54,8 @@ public class QueryGenerator { table = getTable("CartesPersonnage"); } else if(id <= 61) { table = getTable("CartesDos"); + }else if(id <= 67) { + table = getTable("CartesLieu"); } return "SELECT * FROM " + table + " WHERE id = " + id; } diff --git a/src/database/RessourceLoader.java b/src/database/RessourceLoader.java index a5e9154..a8b9d6c 100644 --- a/src/database/RessourceLoader.java +++ b/src/database/RessourceLoader.java @@ -1,6 +1,7 @@ package database; -import java.awt.Image; + +import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; @@ -15,6 +16,8 @@ import javax.imageio.ImageIO; import carte.Carte; import carte.CarteLieu; import carte.CartePiochable; +import javafx.embed.swing.SwingFXUtils; +import javafx.scene.image.Image; import personnage.CartePersonnage; public class RessourceLoader { @@ -35,28 +38,32 @@ public class RessourceLoader { private final int ID_DOS_TENEBRE= 59; private final int ID_DOS_VISION= 61; - private Map ressourcesCartes; - private Map ressourcesDosCartes; + private Map ressourcesCartes; + private Map ressourcesDosCartes; public RessourceLoader() { - this.ressourcesCartes = new HashMap(); - this.ressourcesDosCartes = new HashMap(); + this.ressourcesCartes = new HashMap(); + this.ressourcesDosCartes = new HashMap(); } private Map loadCards() throws ClassNotFoundException, IOException{ Table t = new Table(); Map cartes = new HashMap(); - for(int i = 0; i < 61; i++) { + for(int i = 0; i < 67; i++) { String query = QueryGenerator.selectId(i+1); t.remplirTableQuery(query); - byte[] obj = t.getList().get(i).getObjet(); - if(obj != null) { - Object o = deserialize(obj); + Record r = t.getList().get(i); + byte[] obj = r.getObjet(); + Object o = deserialize(obj); + if(o != null && o != null) { + + Carte c = (Carte)o; + c.setNom(r.getNom()); cartes.put(i+1, c); } } @@ -105,21 +112,21 @@ public class RessourceLoader { return is.readObject(); } - private Image loadImage(int id) throws IOException { + private BufferedImage loadImage(int id) throws IOException { String name = ""+id+".png"; String url = "ressources/cartes/"+name; - Image picture = ImageIO.read(new File(url)); + BufferedImage picture = ImageIO.read(new File(url)); return picture; } - private Map getMapImageCarte(Map cartes) throws IOException{ + private Map getMapImageCarte(Map cartes) throws IOException{ - Map mapCarteImage = new HashMap(); + Map mapCarteImage = new HashMap(); for(Integer i : cartes.keySet()) { Carte c = cartes.get(i); - Image img = loadImage(i); + BufferedImage img = loadImage(i); mapCarteImage.put(c,img); } @@ -164,13 +171,12 @@ public class RessourceLoader { List cartesType = new ArrayList(); for(Carte c : cartes) { - - if(c instanceof CartePiochable) { CartePiochable carte = (CartePiochable) c; - + System.out.println(carte.getNom()+" "+carte.getType()); CartePiochable.Type type = carte.getType(); + if(t == type) { cartesType.add(carte); } @@ -208,4 +214,16 @@ public class RessourceLoader { return cartesLieu; } + public Map getRessourceCartes(){ + return this.ressourcesCartes; + } + + public Map getRessourceDosCartes(){ + return this.ressourcesDosCartes; + } + + public static Image toJavaFX(BufferedImage img) { + Image image = SwingFXUtils.toFXImage(img, null); + return image; + } } diff --git a/src/domaine/properties/langue.properties b/src/domaine/properties/langue.properties index f8fdaba..defb36f 100644 --- a/src/domaine/properties/langue.properties +++ b/src/domaine/properties/langue.properties @@ -24,7 +24,7 @@ choisir.equipement.a.voler=Choisissez un carte.vision=Carte Vision jouer.a.qui.donner.carte=Choisissez un joueur à  qui donner la carte. carte=Carte -effet=Effet : +effet=Effets sonores : carte.vue.par.joueur.pioche=Cette carte ne peut être vu que par le joueur qui la pioche. voir.carte=Voir carte recoit=reçoit @@ -68,4 +68,49 @@ mode.claire=Mode clair musique=Musique langue=Langue parametre=Paramètres -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Enregistrer +quitter=Quitter +retour=Retour +vousetes=Vous êtes : +voulez.vous.faire.action=Voulez vous faire cette action ? +oui=oui +non=non +choisir.joueur.attaquer=Choisir un joueur à attaquer ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choisir un joueur à qui donner la carte vision +attaquer=Attaquer ! +voulez.vous.attaquer.joueur=Voulez-vous attaquer un joueur ? +arriver.sur.carte.lieux=Vous arrivez sur cette Carte Lieu +ok=Ok +pause=Pause +sons=Sons +jeux=Jeux +reprendre.partie=Reprendre la partie +quitter.jeu=Quitter le jeu +equipement=Equipements +glisser.barre=Glissez la barre +page.precedente=Page précédente +page.suivante=Page suivante +menu=Menu +vous.avez.obtenu=Vous avez obtenu +souhaiter.vous.attaquer=Souhaitez vous attaquer ? +souhaiter.vous.activer.effet.lieu=Souhaitez vous activer l'effet du lieu ? +utilier.effet=Utiliser Effet +va.user.de.son.pouvoir=va user de son pouvoir +a.reussi.a.utiliser.son.pouvoir=a réussi à utiliser son pouvoir +cacher.carte.vision=Cachez la carte vision +consulter.sa.carte=Consulter sa carte +manque.joueur=Il manque des joueurs pour lancer une partie. +ajout.joueur=Ajout du joueur +desistement=Desistement du joueur +ia.facile=ia facile +ia.moyenne=ia moyenne +ia.difficile=ia difficile +erreur.difficulte=erreur choix difficulté de l'ia +retour.menu=Retour au Menu +retour.jeu=Retour au jeu +fichier.audio.non.trouver=le fichier audio n'est pas trouvé +vous.etes.soigne.de=Vous êtes soigné de +vous.etes.blesser.de=Vous êtes blessé de +souhaiter.vous.attaquer.qq=Souhaitez-vous attaquer quelqu'un? +souhaiter.vous.activer.carte.vision=Souhaitez-vous activer l'effet de la carte vision \ No newline at end of file diff --git a/src/domaine/properties/langue_de.properties b/src/domaine/properties/langue_de.properties new file mode 100644 index 0000000..acc5d64 --- /dev/null +++ b/src/domaine/properties/langue_de.properties @@ -0,0 +1,117 @@ +jouer=Jugar +regles=Reglas +commencer.partie=Comienza el juego +entrez.nom.joueur= Ingrese los nombres de los jugadores +nombre.joueur.minimum=(Necesita al menos 4 jugadores) +cocher.case=Marque la casilla para hacer de el jugador un jugador virtual +carte.personnage=Tarjeta de personaje +se.reveler=Revelarse +pas.de=sin +dégats=daños +reveler.et.soigner=Revela y cura mis heridas +rien.faire=hacer nada +effet.carte=Efecto de la tarjeta +choisir.joueur.soigner=Elige un jugador que quieras curar +joueur1.soigne.joueur2=El jugador 1 cura al jugador 2 +lancer.de.des=Tirar los dados +choisr.joueur=Elige un jugador +joueur=Jugador +choisir.joueur.infliger.blessures=Elige un jugador quien recibir 2 daños. +carte.equipement.a.donner=Elija la tarjeta de equipo que tiene dará +joueur.a.qui.donner.carte.equipement=Elige un jugador para darle esta tarjeta de equipo +carte.equipement=Tarjetas de equipo +choisir.equipement.a.voler=Elige equipo para robar +carte.vision=Tarjeta visión +jouer.a.qui.donner.carte=Elige un jugador para darle la tarjeta. +carte=tarjeta +effet=Efectos sonidos : +carte.vue.par.joueur.pioche=Esta carta solo puede ser vista por el jugador que la roba. +voir.carte=Ver la tarjeta +recoit=recibe +blessure=Lesión. +se.passe.rien=Se Pasa nada. +au.tour.de=Es el turno de +score.des.1=Puntuación de 1 +score.des.2=Puntuación de 2 +joueur1=Jugador 1 +joueur2=Jugador 2 +joueur3=Jugador 3 +joueur4=Jugador 4 +joueur5=Jugador 5 +joueur6=Jugador 6 +joueur7=Jugador 7 +joueur8=Jugador 8 +description.capacite.carte.lieux=Descripción de la capacidad de la tarjeta de ubicación. +utiliser.capaciter.lieux=Aprovechar la capacidad del local +sauter.etape=Salta este paso +carte.lieux=Tarjeta de ubicación +attaquer.joueur=¡Ataca a otro jugador! +piocher.carte=Dibujar una tarjeta +carte.tenebre=Tarjeta oscura +carte.lumiere=Tarjeta luz +attaquer.ou.soigner=Ataca al jugador o cura 2 heridas +ne.pas.attaqur=No atacar +reveler.identite=revelar su identidad! +c.est=es +faction=Facción: +utiliser.capacite=usa su capacidad. +nom.personnages=Nombre Carácter +votre.competence=Su competencia: +retourner.carte=Voltear la tarjeta +benediction=Bendición +premier.secours=Primeros auxilios +voler.equipement.joueur=Roba el equipo de los jugadores que elijas +choisir.carte.equipement.a.voler=Haga clic en la tarjeta del equipo que desea volar. +consequence=consecuencia +se.soigner=Cuidarse +mode.claire=Modo claro +musique=Música +langue=Lengua +parametre=configuraciones +enregistrer=salvado +quitter=Salir +retour=Regreso +vousetes=Eres : +voulez.vous.faire.action=¿Quieres hacer esta acción? +oui=si +non=no +choisir.joueur.attaquer=¡Elige un jugador para atacar! +stop=Detener +choisir.jouer.a.qui.donner.vision=Elige un jugador para darle la carta de visión +attaquer=¡Atacar! +voulez.vous.attaquer.joueur=¿Quieres atacar a un jugador? +arriver.sur.carte.lieux=Llega en es tarjeta del lugar +ok=Ok +pause=Pausa +sons=Suena +jeux=Juegos +reprendre.partie=Reanudar el juego +quitter.jeu=Abandonar el juego +equipement=Equipo +glisser.barre=Desliza la barra +page.precedente=página anterior +page.suivante=Siguiente página +menu=Menu +vous.avez.obtenu=Has obtenido +souhaiter.vous.attaquer=¿Quieres atacar? +souhaiter.vous.activer.effet.lieu=¿Quieres activar el efecto del lugar? +utilier.effet=Efecto de uso +va.user.de.son.pouvoir=usará su poder +a.reussi.a.utiliser.son.pouvoir=logró usar su poder +cacher.carte.vision=Ocultar la tarjeta de visión +consulter.sa.carte=Consulta tu tarjeta +manque.joueur=Faltan jugadores para comenzar un juego. +ajout.joueur=Agregar al jugador +desistement=Retirada del jugador +ia.facile=ia fácil +ia.moyenne=ia medio +ia.difficile=ia difícil +erreur.difficulte=dificultad de elección de error del ai +retour.menu=Volver al menú +retour.jeu=Volver al juego +fichier.audio.non.trouver=no se encuentra el archivo de audio +choisir.joueur.a.qui.voler.equipement=¡Elige al jugador para robar el equipo! +vous.etes.soigne.de=Te cuidan +vous.etes.blesser.de=Estás herido de +souhaiter.vous.attaquer.qq=¿Atacarías a alguien? +souhaiter.vous.activer.carte.vision=¿Quieres activar el efecto de tarjeta de visión? \ No newline at end of file diff --git a/src/domaine/properties/langue_en.properties b/src/domaine/properties/langue_en.properties index 5d85f6c..2b884ae 100644 --- a/src/domaine/properties/langue_en.properties +++ b/src/domaine/properties/langue_en.properties @@ -5,7 +5,7 @@ entrez.nom.joueur= Enter the players name nombre.joueur.minimum=(Requires at least 4 players) cocher.case=Check the box to make the player a virtual player carte.personnage=Character card -se.reveler=Reveal himslef +se.reveler=Reveal myself pas.de=No dégats=damages reveler.et.soigner=Reveal and heal my wounds @@ -13,7 +13,7 @@ rien.faire=Do nothing effet.carte=Card effect choisir.joueur.soigner=Choose a player you want to care for joueur1.soigne.joueur2=Player 1 heals Player 2 -lancer.de.des=roll the dice +lancer.de.des=Roll the dice choisr.joueur=Choose a player joueur=Player choisir.joueur.infliger.blessures=Choose a player to inflict 2 injuries @@ -24,7 +24,7 @@ choisir.equipement.a.voler=Choose equipment to steal carte.vision=Vision Card jouer.a.qui.donner.carte=Choose a player to give the card to. carte=Card -effet=Effect : +effet=Sound Effects: carte.vue.par.joueur.pioche=This card can only be seen by the player who draws it. voir.carte=See card recoit=receives @@ -69,4 +69,50 @@ mode.claire=Clear mode musique=Music langue=Language parametre=Setting -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Save +quitter=Exit +retour=Return +vousetes=Vous êtes : +voulez.vous.faire.action=Do you want to do this action? +oui=yes +non=no +choisir.joueur.attaquer=Choose a player to attack! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choose a player to give the vision card to +attaquer=Attack! +voulez.vous.attaquer.joueur=Do you want to attack a player? +arriver.sur.carte.lieux=You arrive on this Location Card +ok=Ok +pause=Pause +sons=Sounds +jeux=Game +reprendre.partie=Resume the game +quitter.jeu=Leave the game +equipement=Equipment +glisser.barre=Slide the bar +page.precedente=Previous page +page.suivante=Next page +menu=Menu +vous.avez.obtenu=You obtained +souhaiter.vous.attaquer=Do you want to attack? +souhaiter.vous.activer.effet.lieu=Do you want to activate the effect of the place? +utilier.effet=Use Effect +va.user.de.son.pouvoir=will use his power +a.reussi.a.utiliser.son.pouvoir=managed to use his power +cacher.carte.vision=Hide the vision card +consulter.sa.carte=Consult your card +manque.joueur=There are missing players to start a game. +ajout.joueur=Adding the player +desistement=Player's disclaimer +ia.facile=ai easy +ia.moyenne=ai average +ia.difficile=ai difficult +erreur.difficulte=error choice difficulty of the ai +retour.menu=Return to Menu +retour.jeu=Back to the game +fichier.audio.non.trouver=audio file is not found +choisir.joueur.a.qui.voler.equipement=Choose the player to steal equipment from! +vous.etes.soigne.de=You are cared for +vous.etes.blesser.de=Sei ferito da +souhaiter.vous.attaquer.qq=Would you attack someone? +souhaiter.vous.activer.carte.vision=Do you want to activate the vision card effect? \ No newline at end of file diff --git a/src/domaine/properties/langue_fr.properties b/src/domaine/properties/langue_fr.properties index 1356a68..99928bd 100644 --- a/src/domaine/properties/langue_fr.properties +++ b/src/domaine/properties/langue_fr.properties @@ -16,15 +16,15 @@ joueur1.soigne.joueur2=Joueur 1 soigne Joueur 2 lancer.de.des=Lancer les dés choisr.joueur=Choisissez un joueur joueur=Joueur -choisir.joueur.infliger.blessures=Choisissez un joueur à qui infliger 2 blessures +choisir.joueur.infliger.blessures=Choisissez un joueur à  qui infliger 2 blessures carte.equipement.a.donner=Choisissez la carte équipement que vous allez donner -joueur.a.qui.donner.carte.equipement=Choisissez un joueur à qui donner cette carte équipement +joueur.a.qui.donner.carte.equipement=Choisissez un joueur à  qui donner cette carte équipement carte.equipement=Cartes équipements choisir.equipement.a.voler=Choisissez un équipement à voler carte.vision=Carte Vision -jouer.a.qui.donner.carte=Choisissez un joueur à qui donner la carte. +jouer.a.qui.donner.carte=Choisissez un joueur à  qui donner la carte. carte=Carte -effet=Effet : +effet=Effets sonores : carte.vue.par.joueur.pioche=Cette carte ne peut être vu que par le joueur qui la pioche. voir.carte=Voir carte recoit=reçoit @@ -68,4 +68,50 @@ mode.claire=Mode clair musique=Musique langue=Langue parametre=Paramètre -enregistrer=Enregistrer \ No newline at end of file +enregistrer=Enregistrer +quitter=Quitter +retour=Retour +vousetes=Vous êtes : +voulez.vous.faire.action=Voulez vous faire cette action ? +oui=oui +non=non +choisir.joueur.attaquer=Choisir un joueur à attaquer ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Choisir un joueur à qui donner la carte vision +attaquer=Attaquer ! +voulez.vous.attaquer.joueur=Voulez-vous attaquer un joueur ? +arriver.sur.carte.lieux=Vous arrivez sur cette Carte Lieu +ok=Ok +pause=Pause +sons=Sons +jeux=Jeux +reprendre.partie=Reprendre la partie +quitter.jeu=Quitter le jeu +equipement=Equipements +glisser.barre=Glissez la barre +page.precedente=Page précédente +page.suivante=Page suivante +menu=Menu +vous.avez.obtenu=Vous avez obtenu +souhaiter.vous.attaquer=Souhaitez vous attaquer ? +souhaiter.vous.activer.effet.lieu=Souhaitez vous activer l'effet du lieu ? +utilier.effet=Utiliser Effet +va.user.de.son.pouvoir=va user de son pouvoir +a.reussi.a.utiliser.son.pouvoir=a réussi à utiliser son pouvoir +cacher.carte.vision=Cachez la carte vision +consulter.sa.carte=Consulter sa carte +manque.joueur=Il manque des joueurs pour lancer une partie. +ajout.joueur=Ajout du joueur +desistement=Desistement du joueur +ia.facile=ia facile +ia.moyenne=ia moyenne +ia.difficile=ia difficile +erreur.difficulte=erreur choix difficulté de l'ia +retour.menu=Retour au Menu +retour.jeu=Retour au jeu +fichier.audio.non.trouver=le fichier audio n'est pas trouvé +choisir.joueur.a.qui.voler.equipement=Choisissez le joueur à qui voler un equipement! +vous.etes.soigne.de=Vous êtes soigné de +vous.etes.blesser.de=Vous êtes blessé de +souhaiter.vous.attaquer.qq=Souhaitez-vous attaquer quelqu'un? +souhaiter.vous.activer.carte.vision=Souhaitez-vous activer l'effet de la carte vision diff --git a/src/domaine/properties/langue_it.properties b/src/domaine/properties/langue_it.properties new file mode 100644 index 0000000..bd81341 --- /dev/null +++ b/src/domaine/properties/langue_it.properties @@ -0,0 +1,117 @@ +jouer=Giocare +regles=Regole +commencer.partie=Cominciare una partita +entrez.nom.joueur= Mettete i nomi dei giocatori +nombre.joueur.minimum=(Necessita di un minimo di 4 giocatori) +cocher.case=Attivare la casella perché sia un giocatore virtuale +carte.personnage=Carta personaggio +se.reveler=Rivelarsi +pas.de=Non c'é +dégats=danni +reveler.et.soigner=Rivelarsi e guarirsi le ferite +rien.faire=Non fare niente +effet.carte=Effetto carta +choisir.joueur.soigner=Scegliete un giocatore da guarire +joueur1.soigne.joueur2=Giocatore 1 guarisce giocatore 2 +lancer.de.des=Lancio dei dadi +choisr.joueur=Scegliete un giocatore +joueur=Giocatore +choisir.joueur.infliger.blessures=Scegliete un giocatore al quale infliggere delle ferite +carte.equipement.a.donner=Choisissez la carte équipement que vous allez donner +joueur.a.qui.donner.carte.equipement=Scegliete un giocatore al quale dare un equipaggiamento +carte.equipement=Carte equipaggiamento +choisir.equipement.a.voler=Scegliete un equipaggiamento da rubare +carte.vision=Carta Visione +jouer.a.qui.donner.carte=Scegliete un giocatore al quale dare une carta. +carte=Carta +effet=Effetti sonori : +carte.vue.par.joueur.pioche=Questa carta puo essere vista solo dal giocatore che la pesca +voir.carte=Vedere carta +recoit=riceve +blessure=Ferite. +se.passe.rien=Non succede niente +au.tour.de=é il turno di +score.des.1=Resultato dadi 1 +score.des.2=Resultato dadi 2 +joueur1=Giocatore 1 +joueur2=Giocatore 2 +joueur3=Giocatore 3 +joueur4=Giocatore 4 +joueur5=Giocatore 5 +joueur6=Giocatore 6 +joueur7=Giocatore 7 +joueur8=Giocatore 8 +description.capacite.carte.lieux=Descrizione capacità carta luogo +utiliser.capaciter.lieux=Utilizzare capacità del luogo +sauter.etape=Saltare questa tappa +carte.lieux=Carte luogo +attaquer.joueur=Attaccare un altro giocatore ! +piocher.carte=Pescare una carta +carte.tenebre=Carta tenebra +carte.lumiere=Carte luce +attaquer.ou.soigner=Attaccare un giocatore o guarirsi 2 ferite +ne.pas.attaqur=Non attaccare +reveler.identite=Rivelare la sua identità! +c.est=é +faction=Fazione : +utiliser.capacite=Utilizzare capacità +nom.personnages=Nome personaggio +votre.competence=Vostra competenza : +retourner.carte=Girare la carta +benediction=Benedizione +premier.secours=Primi soccorsi +voler.equipement.joueur=Rubate un equipaggiamento al giocatore di vostra scelta +choisir.carte.equipement.a.voler=Clickate sulla carta equipaggiamento che volete rubare +consequence=conseguenza +se.soigner=Guarirsi +mode.claire=Modalità chiaro +musique=Musica +langue=Lingua +parametre=Impostazioni +enregistrer=Registrare +quitter=Uscire +retour=Precedente +vousetes=Voi siete : +voulez.vous.faire.action=Volete faire quest'azione? +oui=si +non=no +choisir.joueur.attaquer=Scegliete un giocatore da attaccare ! +stop=Stop +choisir.jouer.a.qui.donner.vision=Scegliete un giocatore da dare la carta visione ! +attaquer=Attacco ! +voulez.vous.attaquer.joueur=Volete attaccare qualcuno? +arriver.sur.carte.lieux=Arrivate sulla carta luogo +ok=Ok +pause=Pausa +sons=Suoni +jeux=Giochi +reprendre.partie=Riprendere la partita +quitter.jeu=Chiudere la partita +equipement=Equipaggiamenti +glisser.barre=Trascinate la barra +page.precedente=Pagina precedente +page.suivante=Pagina successiva +menu=Menu +vous.avez.obtenu=Avete ottenuto +souhaiter.vous.attaquer=Volete attaccare qualcuno? +souhaiter.vous.activer.effet.lieu=Volete utilizzare l'effetto del luogo? +utilier.effet=Utilizzare effetto +va.user.de.son.pouvoir=utilizzera il suo potere +a.reussi.a.utiliser.son.pouvoir=ha riuscito a utilizzare il suo potere +cacher.carte.vision=Nascondete la carta visione +consulter.sa.carte=Consultare la sua carta +manque.joueur=Mancano dei giocatori per lanciare la partita +ajout.joueur=Aggiunta di un giocatore +desistement=Ritiro di un giocatore +ia.facile=ia facile +ia.moyenne=ia media +ia.difficile=ia difficile +erreur.difficulte=errore difficolta ia +retour.menu=Ritornare al Menu +retour.jeu=Ritornare al gioco +fichier.audio.non.trouver=il file audio non è stato trovato +choisir.joueur.a.qui.voler.equipement=Scegli il giocatore dal quale rubare l'equipaggiamento! +vous.etes.soigne.de=Sei curato +vous.etes.blesser.de=Sei ferito da +souhaiter.vous.attaquer.qq=Attaccheresti qualcuno? +souhaiter.vous.activer.carte.vision=Vuoi attivare l'effetto della carta visione? \ No newline at end of file diff --git a/src/effet/Action.java b/src/effet/Action.java new file mode 100644 index 0000000..ac86607 --- /dev/null +++ b/src/effet/Action.java @@ -0,0 +1,9 @@ +package effet; + +import main.Joueur; + +public abstract class Action { + + public abstract void affecte(Joueur j1, Joueur j2); + +} diff --git a/src/effet/ActionAltererStatistiquesJoueur.java b/src/effet/ActionAltererStatistiquesJoueur.java new file mode 100644 index 0000000..a9504d3 --- /dev/null +++ b/src/effet/ActionAltererStatistiquesJoueur.java @@ -0,0 +1,53 @@ +package effet; +import main.Joueur; +public class ActionAltererStatistiquesJoueur extends Action{ + + private String key; + private int valeur; + private boolean ajouter; + + + /** + * Constructeur ActionAltererStatistiquesJoueur + * @param key Le clé qui correspond à la valeur à modifier + * @param valeur La valeur + * @param ajouter Permet d'ajouter ou non "valeur" à la valeur précendente + *

+ * Exemple : + *

+ * ActionAltererStatistiquesJoueur("PV", -2, true) + *
+ * Fait subir 2 PV's de dégâts au joueur + *

+ * ActionAltererStatistiquesJoueur("PV", 2, false) + *
+ * Change les PV's du joueur à 2 + * + */ + public ActionAltererStatistiquesJoueur(String key, int valeur, boolean ajouter) + { + this.key = key; + this.valeur = valeur; + this.ajouter = ajouter; + } + + + /** + * Lance l'action de modification de statistiques + * @param j1 Le joueur qui modifie + * @param j2 Le joueur dont les statistiques sont modifiées + * @return void + */ + public void affecte(Joueur j1, Joueur j2) + { + if(ajouter) + { + j2.setStat(key, j2.getStat(key)+valeur); + }else { + j2.setStat(key, valeur); + } + } + + + +} diff --git a/src/effet/ActionMultiple.java b/src/effet/ActionMultiple.java new file mode 100644 index 0000000..093198a --- /dev/null +++ b/src/effet/ActionMultiple.java @@ -0,0 +1,33 @@ +package effet; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import main.Joueur; + +public class ActionMultiple extends Action{ + + private List actions; + + public ActionMultiple(Action...actions) + { + super(); + this.actions = new ArrayList(Arrays.asList(actions)); + } + + /** + * Lance l'action d'activer toutes les actions contenues dans ActionMultiple. + * @param j1 Le joueur qui lance l'action + * @param j2 Le joueur qui subit l'action + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + + for(Action action : actions) { + + action.affecte(j1, j2); + } + } +} diff --git a/src/effet/EffetChoisirCible.java b/src/effet/EffetChoisirCible.java index c363d73..f2038f9 100644 --- a/src/effet/EffetChoisirCible.java +++ b/src/effet/EffetChoisirCible.java @@ -12,11 +12,13 @@ public class EffetChoisirCible extends Effet{ @Override public void utiliser(Joueur joueur) { - Joueur j2 = joueur.choisiParmisTous(); + Joueur j2 = choisirCible(joueur); Action action = this.getAction(); - action.affecte(joueur, j2); - + } + + public Joueur choisirCible(Joueur joueur) { + return joueur.choisiParmisTous(); } } diff --git a/src/effet/EffetChoisirEffet.java b/src/effet/EffetChoisirEffet.java index b1217e0..5367d7f 100644 --- a/src/effet/EffetChoisirEffet.java +++ b/src/effet/EffetChoisirEffet.java @@ -1,22 +1,30 @@ package effet; +import java.util.Arrays; +import java.util.List; + import main.Joueur; public class EffetChoisirEffet extends Effet{ - private Effet[] effets; + + private static final long serialVersionUID = -1412748549517929474L; + private List effets; public EffetChoisirEffet(Effet ...effets) { super(null); - this.effets = effets; + this.effets = Arrays.asList(effets); } @Override public void utiliser(Joueur joueur) { - Effet effet = joueur.choisir(effets); - - effet.utiliser(joueur); + Effet e = choisirEffet(joueur); + e.utiliser(joueur); + } + + public Effet choisirEffet(Joueur joueur) { + return (Effet) joueur.choisir(effets,Effet.class); } } diff --git a/src/effet/action/ActionAltererStatistiquesJoueur.java b/src/effet/action/ActionAltererStatistiquesJoueur.java index 9666a48..9ef379f 100644 --- a/src/effet/action/ActionAltererStatistiquesJoueur.java +++ b/src/effet/action/ActionAltererStatistiquesJoueur.java @@ -46,7 +46,7 @@ public class ActionAltererStatistiquesJoueur extends Action{ { j2.addToStat(key, valeur); }else { - j2.setStat(key, valeur); + j2.updateStat(key, valeur); } } @@ -58,8 +58,30 @@ public class ActionAltererStatistiquesJoueur extends Action{ this.valeur = valeur; } + public String getKey() { + return this.key; + } + @Override 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+" "+Math.abs(valeur)+" "+key+mot2+"joueur"; } } diff --git a/src/effet/action/ActionAltererStatistiquesJoueurRoll.java b/src/effet/action/ActionAltererStatistiquesJoueurRoll.java index 6e935dd..2327b7d 100644 --- a/src/effet/action/ActionAltererStatistiquesJoueurRoll.java +++ b/src/effet/action/ActionAltererStatistiquesJoueurRoll.java @@ -33,4 +33,9 @@ public class ActionAltererStatistiquesJoueurRoll extends ActionAltererStatistiqu super.affecte(j1, j2); } + + @Override + public String toString(){ + return "Lancer un dé "+valeurRoll+" pour modifier les "+this.getKey()+" du joueur"; + } } diff --git a/src/effet/action/ActionAttaquer.java b/src/effet/action/ActionAttaquer.java index 5bc7c21..c6d2365 100644 --- a/src/effet/action/ActionAttaquer.java +++ b/src/effet/action/ActionAttaquer.java @@ -18,5 +18,10 @@ public class ActionAttaquer extends Action { p.attaquer(j1, j2); } + + @Override + public String toString() { + return "Attaquer un joueur"; + } } diff --git a/src/effet/action/ActionMultiple.java b/src/effet/action/ActionMultiple.java index 9b25230..deccd78 100644 --- a/src/effet/action/ActionMultiple.java +++ b/src/effet/action/ActionMultiple.java @@ -33,4 +33,9 @@ public class ActionMultiple extends Action{ action.affecte(j1, j2); } } + + public List getList(){ + return this.actions; + } + } diff --git a/src/effet/action/ActionMultipleChoisir.java b/src/effet/action/ActionMultipleChoisir.java new file mode 100644 index 0000000..a335024 --- /dev/null +++ b/src/effet/action/ActionMultipleChoisir.java @@ -0,0 +1,24 @@ +package effet.action; + +import main.Joueur; + +public class ActionMultipleChoisir extends ActionMultiple{ + + + public ActionMultipleChoisir(Action...actions) { + super(actions); + } + + /** + * Lance l'action d'activer toutes les actions contenues dans ActionMultiple. + * @param j1 Le joueur qui lance l'action + * @param j2 Le joueur qui subit l'action + * @return void + */ + @Override + public void affecte(Joueur j1, Joueur j2) { + + Action a = (Action) j1.choisir(this.getList(), Action.class); + a.affecte(j1, j2); + } +} diff --git a/src/effet/action/ActionReveal.java b/src/effet/action/ActionReveal.java index 0824f45..c2f4b33 100644 --- a/src/effet/action/ActionReveal.java +++ b/src/effet/action/ActionReveal.java @@ -8,10 +8,14 @@ public class ActionReveal extends Action { * */ private static final long serialVersionUID = 7972405763634156578L; - + @Override public void affecte(Joueur j1, Joueur j2) { j2.reveal(); } + @Override + public String toString() { + return "Se réveler"; + } } diff --git a/src/effet/action/ActionVoler.java b/src/effet/action/ActionVoler.java index e793038..1d5de10 100644 --- a/src/effet/action/ActionVoler.java +++ b/src/effet/action/ActionVoler.java @@ -3,6 +3,7 @@ package effet.action; import java.util.List; import carte.CarteEquipement; +import javafx.scene.control.Label; import main.Joueur; public class ActionVoler extends Action{ @@ -32,24 +33,29 @@ public class ActionVoler extends Action{ @Override public void affecte(Joueur j1, Joueur j2) { + List equipements = j2.getEquipements(); - if(this.choix) { - - List equipements = j2.getEquipements(); + if(!equipements.isEmpty()) { - // J1 choisit quel équipement voler - CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements); + CarteEquipement equipement = null; + + if(this.choix) { + // J1 choisit quel équipement voler + equipement = (CarteEquipement) j1.choisir(equipements, CarteEquipement.class); + }else { + + // J1 choisit quel équipement voler + equipement = (CarteEquipement) j2.choisir(equipements,CarteEquipement.class); + } j1.voler(j2,equipement); - }else { - - List equipements = j1.getEquipements(); - - // J1 choisit quel équipement voler - CarteEquipement equipement = (CarteEquipement) j1.choisir(equipements); - - j2.voler(j1,equipement); - } + } + + @Override + public String toString() { + return "Voler un autre joueur"; + } + } diff --git a/src/ihm/.gitkeep b/src/ihm/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/ihm/Couple.java b/src/ihm/Couple.java index fb35684..2b005a4 100644 --- a/src/ihm/Couple.java +++ b/src/ihm/Couple.java @@ -3,10 +3,17 @@ package ihm; public class Couple { private String nom; private boolean ia; // true -> joueur virtuel + private int lvlIa; - public Couple (String nom, boolean ia) { + public Couple (String 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() { @@ -17,6 +24,7 @@ public class Couple { this.nom = nom; } + public boolean isIa() { return ia; } @@ -25,4 +33,14 @@ public class Couple { this.ia = ia; } + public int getLvlIa() { + return lvlIa; + } + + public void setLvlIa(int lvlIa) { + this.lvlIa = lvlIa; + } + + + } diff --git a/src/ihm/Die.java b/src/ihm/Die.java new file mode 100644 index 0000000..00d69f5 --- /dev/null +++ b/src/ihm/Die.java @@ -0,0 +1,40 @@ +package ihm; + +//adaptation du code a la source : https://stackoverflow.com/questions/50021161/java-how-to-update-dice-image-when-button-clicked-and-equal-to-number-given +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +/** + * + * @author blj0011 + */ +public class Die { + ImageView dieFace; + Image[] images; + int currentFace; + + public Die(Image[] images) { + this.images = images; + dieFace = new ImageView(this.images[0]);// set default to image 0 + } + + public Die(Image[] images, int dieFaceValue) { + // Need to catch for values less than 1 and greater than 6! + this.images = images; + dieFace = new ImageView(this.images[dieFaceValue - 1]); + } + + public ImageView getdieFace() { + return dieFace; + } + + public int getCurrentFace() { + return currentFace; + } + + public void setDieFace(int dieFaceValue) { + // Need to catch for values less than 1 and greater than 6! + dieFace.setImage(this.images[dieFaceValue - 1]); + currentFace = dieFaceValue; + } +} \ No newline at end of file diff --git a/src/ihm/DieImages.java b/src/ihm/DieImages.java new file mode 100644 index 0000000..c4d4dff --- /dev/null +++ b/src/ihm/DieImages.java @@ -0,0 +1,60 @@ +package ihm; + +//adaptation du code a la source : https://stackoverflow.com/questions/50021161/java-how-to-update-dice-image-when-button-clicked-and-equal-to-number-given + +import javafx.scene.image.Image; + +/** + * + * @author blj0011 + */ +public class DieImages { + final Image die1 = new Image(getClass().getResourceAsStream("ressources/img/des1.png")); + final Image die2 = new Image(getClass().getResourceAsStream("ressources/img/des2.png")); + final Image die3 = new Image(getClass().getResourceAsStream("ressources/img/des3.png")); + final Image die4 = new Image(getClass().getResourceAsStream("ressources/img/des4.png")); + final Image die5 = new Image(getClass().getResourceAsStream("ressources/img/des5.png")); + final Image die6 = new Image(getClass().getResourceAsStream("ressources/img/des6.png")); + + final Image dief1 = new Image(getClass().getResourceAsStream("ressources/img/desf1.png")); + final Image dief2 = new Image(getClass().getResourceAsStream("ressources/img/desf2.png")); + final Image dief3 = new Image(getClass().getResourceAsStream("ressources/img/desf3.png")); + final Image dief4 = new Image(getClass().getResourceAsStream("ressources/img/desf4.png")); + + final Image[] images = new Image[6]; + int taille; + + public DieImages(int i) { + + switch (i) { + case 6: + images[0] = die1; + images[1] = die2; + images[2] = die3; + images[3] = die4; + images[4] = die5; + images[5] = die6; + taille = 6; + break; + case 4: + images[0] = dief1; + images[1] = dief2; + images[2] = dief3; + images[3] = dief4; + taille = 4; + break; + default: + images[0] = die1; + images[1] = die2; + images[2] = die3; + images[3] = die4; + images[4] = die5; + images[5] = die6; + taille = 6; + } + } + + public Image[] getImages() { + return images; + } +} \ No newline at end of file diff --git a/src/ihm/EffetSonore.java b/src/ihm/EffetSonore.java index 27ad81c..b4bb5f2 100644 --- a/src/ihm/EffetSonore.java +++ b/src/ihm/EffetSonore.java @@ -6,29 +6,36 @@ import java.io.InputStream; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; +import javax.sound.sampled.FloatControl; public class EffetSonore { - - static boolean soundOK; - - public InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); - public InputStream fileSound2 = getClass().getResourceAsStream("/ihm/ressources/musique/BeepError.wav"); - + + static boolean soundOK; + + public InputStream fileSound1 = getClass().getResourceAsStream("/ihm/ressources/musique/BEEP1.wav"); + public InputStream fileSound2 = getClass().getResourceAsStream("/ihm/ressources/musique/BeepError.wav"); + public static FloatControl volumeEffet; + public static float lvVolumeEffet; + public static void playSoundEffect(InputStream path) { - + if (soundOK == true) { - + try { InputStream soundPath = path; - if (soundPath!=null) { + if (soundPath != null) { InputStream bufferedIn = new BufferedInputStream(soundPath); - + AudioInputStream audioInput = AudioSystem.getAudioInputStream(bufferedIn); Clip clipSound = AudioSystem.getClip(); clipSound.open(audioInput); + + volumeEffet = (FloatControl) clipSound.getControl(FloatControl.Type.MASTER_GAIN); + volumeEffet.setValue(lvVolumeEffet); + clipSound.start(); } else { @@ -40,7 +47,6 @@ public class EffetSonore { } } - } public static boolean isSoundOK() { @@ -51,10 +57,8 @@ public class EffetSonore { EffetSonore.soundOK = soundOK; } - - - - - + public static void setVolumeEffets(double dValeur) { + lvVolumeEffet = (float) (dValeur); + } } diff --git a/src/ihm/ImageViewEquipement.java b/src/ihm/ImageViewEquipement.java new file mode 100644 index 0000000..8b826a2 --- /dev/null +++ b/src/ihm/ImageViewEquipement.java @@ -0,0 +1,30 @@ +package ihm; + +import carte.CarteEquipement; +import ihm.controller.PlateauController; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +public class ImageViewEquipement extends ImageView{ + + private CarteEquipement ce; + + public ImageViewEquipement(CarteEquipement ce) { + this.ce = ce; + Image im = PlateauController.getImageCarte(ce); + this.setImage(im); + } + + public CarteEquipement getCp() { + return ce; + } + + public void setCp(CarteEquipement ce) { + this.ce = ce; + } + + public boolean contains(CarteEquipement ce) { + return this.ce == ce; + } + +} diff --git a/src/ihm/Main.java b/src/ihm/Main.java index 1d65e3b..5f4a035 100644 --- a/src/ihm/Main.java +++ b/src/ihm/Main.java @@ -1,9 +1,11 @@ package ihm; - import java.net.URL; import java.util.Locale; import java.util.ResourceBundle; +import database.CreatingCardsTest; +import database.RessourceLoader; +import ihm.controller.ParametreController; import javafx.application.Application; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader; @@ -14,15 +16,20 @@ import javafx.stage.WindowEvent; import main.GestionnaireJeu; public class Main extends Application { + /*GraphicsDevice Gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice(); + int width = Gd.getDisplayMode().getWidth(); + int height = Gd.getDisplayMode().getHeight(); */ + @Override public void start(Stage primaryStage) throws Exception { final URL fxmlURL = getClass().getResource("ressources/Menu.fxml"); - final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRANCE); + final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); Pane root = fxmlLoader.load(); primaryStage.setTitle("Shadow Hunters"); primaryStage.setScene(new Scene(root)); + primaryStage.setMaximized(true); primaryStage.centerOnScreen(); primaryStage.setOnCloseRequest(new EventHandler() { @Override @@ -35,13 +42,11 @@ public class Main extends Application { } public static void main(String[] args) { - + CreatingCardsTest.init(); GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu(); - /* RessourceLoader rl = new RessourceLoader(); rl.loadRessources(); gj.setRessourceLoader(rl); - */ launch(args); } } \ No newline at end of file diff --git a/src/ihm/Musique.java b/src/ihm/Musique.java index 89880e5..2490cd6 100644 --- a/src/ihm/Musique.java +++ b/src/ihm/Musique.java @@ -14,7 +14,7 @@ public class Musique { public static long clipTimePosition = 0; public static boolean musiqueEnCours = false; - static FloatControl volume ; + public static FloatControl volume ; public static void playMusique(InputStream path) { @@ -61,5 +61,14 @@ public class Musique { public static void volumeDown(Float valeur) { volume.setValue(volume.getValue() -valeur); } + + public static void setVolume(Float fValeur) { + volume.setValue(fValeur); + } + + public static void setVolume(double dValeur) { + float decibel = (float) (Math.log(dValeur) / Math.log(10) * 20); + volume.setValue(decibel); + } } diff --git a/src/ihm/PopUp.java b/src/ihm/PopUp.java index 7bcc2f6..028ef9d 100644 --- a/src/ihm/PopUp.java +++ b/src/ihm/PopUp.java @@ -62,6 +62,15 @@ public class PopUp{ }); } + + public Stage getStage() { + return popup; + } + + public Scene getScene() { + return scene; + } + public void display() { diff --git a/src/ihm/controller/AlterationVieZJ.java b/src/ihm/controller/AlterationVieZJ.java new file mode 100644 index 0000000..c4bef24 --- /dev/null +++ b/src/ihm/controller/AlterationVieZJ.java @@ -0,0 +1,28 @@ +package ihm.controller; + +import java.net.URL; +import java.util.ResourceBundle; + +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Label; + +public class AlterationVieZJ implements Initializable { + + @FXML private Label label; + + private ResourceBundle bundle1 = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); + + @Override + public void initialize(URL arg0, ResourceBundle arg1) { + + } + + public void changeLabel(int valeur) { + if(valeur > 0 ) { + this.label.setText(bundle1.getString("vous.etes.soigne.de")+valeur+"PV"); + }else { + this.label.setText(bundle1.getString("vous.etes.blesser.de")+valeur+"PV"); + } + } +} diff --git a/src/ihm/controller/ChoisirBoolean.java b/src/ihm/controller/ChoisirBoolean.java index 33dd2d1..2992f43 100644 --- a/src/ihm/controller/ChoisirBoolean.java +++ b/src/ihm/controller/ChoisirBoolean.java @@ -1,33 +1,47 @@ package ihm.controller; import java.net.URL; +import java.util.List; import java.util.ResourceBundle; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.util.Duration; +import main.Contexte; +import main.ControleurIA; import main.GestionnaireJeu; +import main.Joueur; +import main.JoueurVirtuel; public class ChoisirBoolean implements Initializable { - @FXML private Button ouiButton; - @FXML private Button nonButton; - @FXML private Label titre; + @FXML + private Button ouiButton; + @FXML + private Button nonButton; + @FXML + private Label titre; private boolean result; + + private ResourceBundle bundle1 = ResourceBundle.getBundle("domaine.properties.langue", ParametreController.LaLangue); + @Override public void initialize(URL arg0, ResourceBundle arg1) { - + ouiButton.setOnAction(x -> { - + this.result = true; GestionnaireJeu.notifyPlateau(); }); - + nonButton.setOnAction(x -> { this.result = false; GestionnaireJeu.notifyPlateau(); - }); + }); } public boolean getResult() { @@ -49,12 +63,72 @@ public class ChoisirBoolean implements Initializable { public void setNonButton(Button nonButton) { this.nonButton = nonButton; } - + public Label getTitre() { return titre; } - public void setTitre(Label titre) { - this.titre = titre; + public void setTitre(Contexte c) { + switch(c) { + case ATTAQUER: + titre.setText(bundle1.getString("souhaiter.vous.attaquer.qq")); + break; + case ACTIVER_EFFET_LIEU : + titre.setText(bundle1.getString("souhaiter.vous.activer.effet.lieu")); + break; + case CHOISIR_VISION : + titre.setText(bundle1.getString("souhaiter.vous.activer.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 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(); } } diff --git a/src/ihm/controller/ChoisirEquipement.java b/src/ihm/controller/ChoisirEquipement.java index f27f1df..04cc17f 100644 --- a/src/ihm/controller/ChoisirEquipement.java +++ b/src/ihm/controller/ChoisirEquipement.java @@ -1,38 +1,34 @@ package ihm.controller; -import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; +import carte.CarteEquipement; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.Initializable; -import javafx.scene.image.Image; +import javafx.scene.control.Button; import javafx.scene.image.ImageView; import javafx.scene.layout.GridPane; -import carte.CarteEquipement; +import javafx.scene.layout.HBox; +import javafx.util.Duration; +import main.Contexte; +import main.GestionnaireJeu; +import main.Joueur; +import main.JoueurVirtuel; public class ChoisirEquipement implements Initializable{ @FXML private GridPane grilleEquipement; + @FXML private HBox hbox; private List equipements = new ArrayList(); private CarteEquipement equipementSelected; @Override public void initialize(URL arg0, ResourceBundle arg1) { - for (int i=0; i { - equipementSelected = equipements.get(numEquipement); - }); - } } public List getEquipements() { @@ -58,5 +54,38 @@ public class ChoisirEquipement implements Initializable{ public void setGrilleEquipement(GridPane grilleEquipement) { this.grilleEquipement = grilleEquipement; } + + public CarteEquipement getResult() { + return equipementSelected; + } + public void setListCarteEquipements(List 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(); + }); + } + } + + public void fireBtnIA(JoueurVirtuel jIA, Contexte c) { + Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2000), ae -> { + equipementSelected = jIA.choisirEquipement(equipements); + GestionnaireJeu.notifyPlateau(); + })); + timeline.play(); + + } + + } diff --git a/src/ihm/controller/ChoisirJoueur.java b/src/ihm/controller/ChoisirJoueur.java index 2991b00..9886792 100644 --- a/src/ihm/controller/ChoisirJoueur.java +++ b/src/ihm/controller/ChoisirJoueur.java @@ -1,44 +1,106 @@ package ihm.controller; import java.net.URL; +import java.util.ArrayList; +import java.util.List; import java.util.ResourceBundle; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; import javafx.fxml.FXML; import javafx.fxml.Initializable; +import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.HBox; +import javafx.util.Duration; +import main.Contexte; +import main.GestionnaireJeu; +import main.Joueur; +import main.JoueurVirtuel; -public class ChoisirJoueur implements Initializable{ - @FXML private HBox joueurHaut; - @FXML private HBox joueurBas; - @FXML private Label titre; +public class ChoisirJoueur implements Initializable { + @FXML + private HBox joueurHaut; + @FXML + private HBox joueurBas; + @FXML + private Label titre; + @FXML + private Button btn1; + @FXML + private Button btn2; + @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 List listJoueursIHM; + private List + + + + + + + + + + + + diff --git a/src/ihm/ressources/ChoisirAction.fxml b/src/ihm/ressources/ChoisirAction.fxml new file mode 100644 index 0000000..2e16cf3 --- /dev/null +++ b/src/ihm/ressources/ChoisirAction.fxml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/ihm/ressources/Choix_joueur.fxml b/src/ihm/ressources/Choix_joueur.fxml index 0a48196..f3015bb 100644 --- a/src/ihm/ressources/Choix_joueur.fxml +++ b/src/ihm/ressources/Choix_joueur.fxml @@ -4,159 +4,245 @@ + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - -
- + - - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + diff --git a/src/ihm/ressources/Fin_De_Partie.fxml b/src/ihm/ressources/Fin_De_Partie.fxml new file mode 100644 index 0000000..177f818 --- /dev/null +++ b/src/ihm/ressources/Fin_De_Partie.fxml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ihm/ressources/Jouer_son_tour_donner_vision.fxml b/src/ihm/ressources/Jouer_son_tour_donner_vision.fxml new file mode 100644 index 0000000..37aa827 --- /dev/null +++ b/src/ihm/ressources/Jouer_son_tour_donner_vision.fxml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + - diff --git a/src/ihm/ressources/Jouer_tour(2bb3)recevoir_vision.fxml b/src/ihm/ressources/Jouer_tour(2bb3)recevoir_vision.fxml index 880164c..9974ea8 100644 --- a/src/ihm/ressources/Jouer_tour(2bb3)recevoir_vision.fxml +++ b/src/ihm/ressources/Jouer_tour(2bb3)recevoir_vision.fxml @@ -6,12 +6,11 @@ - - diff --git a/src/ihm/ressources/Jouer_tour(4)des_attaquer.fxml b/src/ihm/ressources/Jouer_tour(4)des_attaquer.fxml index dfa0372..b78423d 100644 --- a/src/ihm/ressources/Jouer_tour(4)des_attaquer.fxml +++ b/src/ihm/ressources/Jouer_tour(4)des_attaquer.fxml @@ -27,7 +27,7 @@ - - - - + + + + + + + + + - + - - + + - - - - - - - - - - - - - + + + + - - - - - - - + diff --git a/src/ihm/ressources/PlateauTest2.fxml b/src/ihm/ressources/PlateauTest2.fxml index 8c4f657..43cfdbd 100644 --- a/src/ihm/ressources/PlateauTest2.fxml +++ b/src/ihm/ressources/PlateauTest2.fxml @@ -5,6 +5,7 @@ + @@ -15,16 +16,15 @@ - - + - + @@ -63,13 +63,23 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -563,37 +672,15 @@ - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -626,13 +713,26 @@ - - + + + + + + + + diff --git a/src/ihm/ressources/afficher_carte_perso.fxml b/src/ihm/ressources/afficher_carte_perso.fxml index 308e619..7820a52 100644 --- a/src/ihm/ressources/afficher_carte_perso.fxml +++ b/src/ihm/ressources/afficher_carte_perso.fxml @@ -13,7 +13,7 @@ - + + + + + + diff --git a/src/ihm/ressources/img/des1.png b/src/ihm/ressources/img/des1.png new file mode 100644 index 0000000..bb88d34 Binary files /dev/null and b/src/ihm/ressources/img/des1.png differ diff --git a/src/ihm/ressources/img/des2.png b/src/ihm/ressources/img/des2.png new file mode 100644 index 0000000..c65025f Binary files /dev/null and b/src/ihm/ressources/img/des2.png differ diff --git a/src/ihm/ressources/img/des3.png b/src/ihm/ressources/img/des3.png new file mode 100644 index 0000000..7ad9bda Binary files /dev/null and b/src/ihm/ressources/img/des3.png differ diff --git a/src/ihm/ressources/img/des4.png b/src/ihm/ressources/img/des4.png new file mode 100644 index 0000000..d8006e6 Binary files /dev/null and b/src/ihm/ressources/img/des4.png differ diff --git a/src/ihm/ressources/img/des5.png b/src/ihm/ressources/img/des5.png new file mode 100644 index 0000000..52f4475 Binary files /dev/null and b/src/ihm/ressources/img/des5.png differ diff --git a/src/ihm/ressources/img/des6.png b/src/ihm/ressources/img/des6.png new file mode 100644 index 0000000..77513e3 Binary files /dev/null and b/src/ihm/ressources/img/des6.png differ diff --git a/src/ihm/ressources/img/desf1.png b/src/ihm/ressources/img/desf1.png new file mode 100644 index 0000000..89998dc Binary files /dev/null and b/src/ihm/ressources/img/desf1.png differ diff --git a/src/ihm/ressources/img/desf2.png b/src/ihm/ressources/img/desf2.png new file mode 100644 index 0000000..b0b64cc Binary files /dev/null and b/src/ihm/ressources/img/desf2.png differ diff --git a/src/ihm/ressources/img/desf3.png b/src/ihm/ressources/img/desf3.png new file mode 100644 index 0000000..0d6d601 Binary files /dev/null and b/src/ihm/ressources/img/desf3.png differ diff --git a/src/ihm/ressources/img/desf4.png b/src/ihm/ressources/img/desf4.png new file mode 100644 index 0000000..bcc8261 Binary files /dev/null and b/src/ihm/ressources/img/desf4.png differ diff --git a/src/ihm/ressources/jouerSonTour1.fxml b/src/ihm/ressources/jouerSonTour1.fxml new file mode 100644 index 0000000..9e890e3 --- /dev/null +++ b/src/ihm/ressources/jouerSonTour1.fxml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + - + + + + + + + + +