From 0c2c3ee5a55f36d270171f2f67938542e251fdc5 Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 2 Jul 2026 00:14:17 +0200 Subject: fork utilisant maven --- src/main/java/modele/Aptitude.java | 14 ++ src/main/java/modele/AptitudeArme.java | 20 +++ src/main/java/modele/Arme.java | 91 ++++++++++ src/main/java/modele/ArmeDist.java | 31 ++++ src/main/java/modele/ArmeMelee.java | 39 +++++ src/main/java/modele/Armee.java | 36 ++++ src/main/java/modele/ArmeeListe.java | 104 ++++++++++++ src/main/java/modele/Bouton.java | 31 ++++ src/main/java/modele/Calcul.java | 302 +++++++++++++++++++++++++++++++++ src/main/java/modele/Evenement.java | 48 ++++++ src/main/java/modele/Faction.java | 19 +++ src/main/java/modele/Figurine.java | 158 +++++++++++++++++ src/main/java/modele/Unit.java | 96 +++++++++++ src/main/java/modele/User.java | 83 +++++++++ 14 files changed, 1072 insertions(+) create mode 100644 src/main/java/modele/Aptitude.java create mode 100644 src/main/java/modele/AptitudeArme.java create mode 100644 src/main/java/modele/Arme.java create mode 100644 src/main/java/modele/ArmeDist.java create mode 100644 src/main/java/modele/ArmeMelee.java create mode 100644 src/main/java/modele/Armee.java create mode 100644 src/main/java/modele/ArmeeListe.java create mode 100644 src/main/java/modele/Bouton.java create mode 100644 src/main/java/modele/Calcul.java create mode 100644 src/main/java/modele/Evenement.java create mode 100644 src/main/java/modele/Faction.java create mode 100644 src/main/java/modele/Figurine.java create mode 100644 src/main/java/modele/Unit.java create mode 100644 src/main/java/modele/User.java (limited to 'src/main/java/modele') diff --git a/src/main/java/modele/Aptitude.java b/src/main/java/modele/Aptitude.java new file mode 100644 index 0000000..4ea1a9f --- /dev/null +++ b/src/main/java/modele/Aptitude.java @@ -0,0 +1,14 @@ +package modele; + +public class Aptitude { + + private String nom; + + public Aptitude(String nom) { + this.nom = nom; + } + + public String getName() { + return nom; + } +} diff --git a/src/main/java/modele/AptitudeArme.java b/src/main/java/modele/AptitudeArme.java new file mode 100644 index 0000000..28e82dd --- /dev/null +++ b/src/main/java/modele/AptitudeArme.java @@ -0,0 +1,20 @@ +package modele; + +public class AptitudeArme { + + private String nomArme; + private int val; + + public AptitudeArme(String nomArme, int val) { + this.nomArme = nomArme; + this.val = val; + } + public AptitudeArme(String nomArme) { + this.nomArme = nomArme; + } + + public void ArmeAptitude() { + + } + +} diff --git a/src/main/java/modele/Arme.java b/src/main/java/modele/Arme.java new file mode 100644 index 0000000..53db538 --- /dev/null +++ b/src/main/java/modele/Arme.java @@ -0,0 +1,91 @@ +package modele; + +import java.util.ArrayList; + +public abstract class Arme { + + private String nom; + private ArrayList aptitudes; + private String portee; + private String A; + private int F; + private int PA; + private String D; + public Arme(String nom, ArrayList aptitudes,String portee, String a, int f, int pA, String d) + { + this.nom = nom; + this.aptitudes = aptitudes; + this.portee=portee; + this.setAptitudes(aptitudes); + + A = a; + F = f; + PA = pA; + D = d; + } + public Arme(String nom, int F, int PA, String A, String D) { + this.nom = nom; + this.F = F; + this.PA = PA; + this.A=A; + this.D=D; + } + public ArrayList statsAtk(){ + ArrayList liste = new ArrayList(); + + liste.add(F); + liste.add(PA); + + return liste; + } + + //v2 + public String getD() { + return D; + } + public void setD(String d) { + D = d; + } + + public String getNom() { + return nom; + } + public void setNom(String nom) { + this.nom = nom; + } + + public String getPortee() { + return portee; + } + public void setPortee(String portee) { + this.portee = portee; + } + public String getA() { + return A; + } + public void setA(String a) { + A = a; + } + public int getF() { + return F; + } + public void setF(int f) { + F = f; + } + + public int getPA() { + return PA; + } + public void setPA(int pA) { + PA = pA; + } + + public abstract int getC(); + + public ArrayList getAptitudes() { + return aptitudes; + } + public void setAptitudes(ArrayList aptitudes) { + this.aptitudes = aptitudes; + } +} \ No newline at end of file diff --git a/src/main/java/modele/ArmeDist.java b/src/main/java/modele/ArmeDist.java new file mode 100644 index 0000000..1a43ad0 --- /dev/null +++ b/src/main/java/modele/ArmeDist.java @@ -0,0 +1,31 @@ +package modele; + +import java.util.ArrayList; + +public class ArmeDist extends Arme { + private int CT; + public ArmeDist(String nom, ArrayList aptitudes,String portee, String a, int f, int pA, String d,int ct) { + super(nom, aptitudes,portee, a, f, pA, d); + this.CT=ct; + // TODO Auto-generated constructor stub + } + @Override + public ArrayList statsAtk() { + // TODO Auto-generated method stub + ArrayList liste = super.statsAtk(); + liste.add(CT); + return liste; + } + public int getCT() { + return CT; + } + + public void setCT(int cT) { + CT = cT; + } + public int getC() { + return CT; + } +} + + diff --git a/src/main/java/modele/ArmeMelee.java b/src/main/java/modele/ArmeMelee.java new file mode 100644 index 0000000..6061c58 --- /dev/null +++ b/src/main/java/modele/ArmeMelee.java @@ -0,0 +1,39 @@ +package modele; + +import java.util.ArrayList; + +public class ArmeMelee extends Arme { + private int CC; + + public ArmeMelee(String nom, ArrayList aptitudes,String portee, String a, int f, int pA, String d,int cc) { + super(nom, aptitudes,portee, a, f, pA, d); + this.CC=cc; + // TODO Auto-generated constructor stub + } + + public ArmeMelee(String nom,int F,int PA,String A,String D,int cc) { + super(nom,F,PA,A,D); + this.CC = cc; + } + + @Override + public ArrayList statsAtk() { + ArrayList liste = super.statsAtk(); + liste.add(CC); + return null; + } + + public int getCC() { + return CC; + } + + public void setCC(int cC) { + CC = cC; + } + + @Override + public int getC() { + return CC; + } +} + diff --git a/src/main/java/modele/Armee.java b/src/main/java/modele/Armee.java new file mode 100644 index 0000000..132418b --- /dev/null +++ b/src/main/java/modele/Armee.java @@ -0,0 +1,36 @@ +package modele; + +public class Armee { + + private String nom; + private String logo; + private Faction faction; + + public Armee(String nom, String logo) { + this.nom = nom; + this.logo = logo; + } + + public Armee(String nom, String logo, Faction fact) { + this.nom = nom; + this.logo = logo; + this.faction = fact; + } + + public String getName() { + return nom; + } + + @Override + public String toString() { + return "" + nom + ""; + } + + public String getLogo() { + return logo; + } + + public Faction getFaction() { + return faction; + } +} diff --git a/src/main/java/modele/ArmeeListe.java b/src/main/java/modele/ArmeeListe.java new file mode 100644 index 0000000..7d3f866 --- /dev/null +++ b/src/main/java/modele/ArmeeListe.java @@ -0,0 +1,104 @@ +package modele; + +import java.util.ArrayList; + +public class ArmeeListe { + private int id; + private int idArmee; + private String nom; + private String description; + private String data; + private ArrayList unites = new ArrayList(); + private ArrayList unit_names = new ArrayList(); + + private int idUtilisateur; + + + + public ArmeeListe(String nom, String description, String data) { + this.nom = nom; + this.description = description; + this.data = data; + } + public ArmeeListe(ArrayList unit_list, String nom, String description, String data) { + this.unites = unit_list; + this.nom = nom; + this.description = description; + this.data = data; + } + + public ArmeeListe(int id, int idArmee, String nom, String description, String data, int idUtilisateur) { + this.id = id; + this.nom = nom; + this.description = description; + this.data= data; + this.idArmee = idArmee; + this.idUtilisateur = idUtilisateur; + } + + + public int getIdListe() { return id; } + public int getIdArmee() { return idArmee;} + public String getNomListe() { return nom; } + public String getDescriptionListe() { return description; } + public String getDataListe() { return data; } + public ArrayList getUniteListe() { return unit_names; } + + public void setUniteListe(ArrayList unite) { + this.unit_names = unite; + } + + // getters + public int getId() { + return id; + } + public String getName() { + return nom; + } + public void setName(String name) { + nom = name; + } + public String getDescription() { + return description; + } + public void setDescription(String desc) { + description = desc; + } + public String getData() { + return data; + } + public void setData(String data) { + this.data = data; + } + public int getIdUtilisateur() { + return idUtilisateur; + } + + public ArrayList getUnits() { + return unites; + } + public void setUnits(ArrayList units) { + unites = units; + } + public String[] getUnitNames() { + String[] unit_names = new String[unites.size()]; + for(int i = 0; i < unites.size(); i++) { + unit_names[i] = unites.get(i).getName(); + } + return unit_names; + } + public void addUnit(Unit unit) { + unites.add(unit); + } + public void removeUnit(Unit unit) { + unites.remove(unit); + } + public void setNom(String nom) { + this.nom = nom; + } + + public String toString() { + return "Liste ID: " + id + ", Nom: " + nom + ", Description: " + description + + ", Data: " + data + ", unite: " + unit_names; + } +} \ No newline at end of file diff --git a/src/main/java/modele/Bouton.java b/src/main/java/modele/Bouton.java new file mode 100644 index 0000000..4d5c911 --- /dev/null +++ b/src/main/java/modele/Bouton.java @@ -0,0 +1,31 @@ +package modele; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.scene.Node; +import javafx.scene.control.Button; + +public class Bouton extends Button{ + + public Bouton() { + super(); + // TODO Auto-generated constructor stub + } + + public Bouton(String text, Node graphic) { + super(text, graphic); + // TODO Auto-generated constructor stub + } + + public Bouton(String text) { + super(text); + // TODO Auto-generated constructor stub + } + + + public Bouton setOnAction2(EventHandler value) { + super.setOnAction(value); + return this; + + } +} diff --git a/src/main/java/modele/Calcul.java b/src/main/java/modele/Calcul.java new file mode 100644 index 0000000..0ae1832 --- /dev/null +++ b/src/main/java/modele/Calcul.java @@ -0,0 +1,302 @@ +package modele; + +public class Calcul { + private int[] tabdegat1; + private float degat_moyen1; + private float mort_moyen1; + private int[] tabmort1; + + + public Calcul(int[] tabdegat1, float degat_moyen1, float mort_moyen1,int[] tabmort1) { + super(); + this.tabdegat1 = tabdegat1; + this.degat_moyen1 = degat_moyen1; + this.mort_moyen1 = mort_moyen1; + this.tabmort1 = tabmort1; + } + + // getter set setter + public int[] getTabdegat1() { + return tabdegat1; + } + public void setTabdegat1(int[] tabdegat1) { + this.tabdegat1 = tabdegat1; + } + public float getDegat_moyen1() { + return degat_moyen1; + } + public void setDegat_moyen1(float degat_moyen1) { + this.degat_moyen1 = degat_moyen1; + } + public float getMort_moyen1() { + return mort_moyen1; + } + public void setMort_moyen1(float mort_moyen1) { + this.mort_moyen1 = mort_moyen1; + } + public int[] getTabmort1() { + return tabmort1; + } + public void setTabmort1(int[] tabmort1) { + this.tabmort1 = tabmort1; + } + + // 1er jet de dé : jet pour toucher une figurine , résultat en fonction de CC ou CT + public static boolean jet_de_touche(boolean jet,int C){ + // simulation lancer de dé + int d1 = (int) ((Math.random() * (7 - 1)) + 1); + switch(d1){ + // si 1 echec critique + case 1 : + jet=false; + break; + // si 6 reussite critique + case 6 : + jet=true; + break; + // comparaison du dé avec CC ou CT + default : + if( d1 >= C){ + jet=true; + } + } + // return booléen pour continuer ou non attaque + return jet; + } + + // 2eme jet de dé : jet pour blesser une figurine , résultat en fonction de force de fig attaquante et de endurance de figurine attaquée + public static boolean jet_de_blessure (boolean jet,int fo,int end){ + // simulation lancer de dé + int d2 = (int) ((Math.random() * (7 - 1)) + 1); + + switch(d2){ + // si 1 echec critique + case 1 : + jet=false; + break; + // si 6 reussite critique + case 6 : + jet=true; + break; + default : + //Comparaison entre force et endurance pour savoir si attaque blesse + if(fo >2*end) { + if(d2>=2) { + jet = true; + } + } + if(fo>end && fo<2*end) { + if(d2>=3) { + jet = true; + } + } + if(fo==end) { + if(d2>=4) { + jet = true; + } + } + if(fo>0.5*end && fo=5) { + jet = true; + } + } + if(fo <=0.5*(float)end) { + if(d2>=6) { + jet = true; + } + } + + } + // return booléen pour continuer ou non attaque + return jet; + } + + // fonction pour determiner le nbr d'attaque d'une arme + public static int chgt_a (String a){ + int attaque =0; + int d1 = (int) ((Math.random() * (7 - 1)) + 1); + int d2 = (int) ((Math.random() * (4 - 1)) + 1); + switch(a) { + case "D6": + attaque = d1; + break; + case "D6+1": + attaque = d1+1; + //System.out.println("test"); + break; + case "D6+2": + attaque = d1+2; + break; + case "D6+3": + attaque = d1+3; + break; + case "D6+4": + attaque = d1+4; + break; + case "D3": + attaque = d2; + break; + default : + attaque = Integer.parseInt(a); + } + return attaque; + } + + // fonction pour determiner le nbr de dégats d'une arme + public static int chgt_d (String d){ + int degat =0; + int d1 = (int) ((Math.random() * (7 - 1)) + 1); + int d2 = (int) ((Math.random() * (4 - 1)) + 1); + int d3 = (int) ((Math.random() * (9 - 1)) + 1); + switch(d) { + case "D8": + degat = d3; + break; + case "D6": + degat = d1; + break; + case "D6+1": + degat = d1+1; + break; + case "D6+2": + degat = d1+2; + break; + case "D6+3": + degat = d1+3; + break; + case "D6+4": + degat = d1+4; + break; + case "D3": + degat = d2; + break; + default : + degat = Integer.parseInt(d); + } + return degat; + } + + // 2eme jet de dé : jet de sauvegarde , pour savoir si l'armure d'une figurine la protège d'une blessure + public static boolean jet_de_sauvegarde (boolean block,int pa,int sv){ + // simulation du jet de dé + int d3 = (int) ((Math.random() * (7 - 1)) + 1); + switch(d3) { + //echec critique la figurine adverse n'a pas réussie à se protéger + case 1: + block = false; + default : + //comparaison entre pénétration d'armure et sauvegarde + if ( d3 + pa < sv ){ + block = false; + } + } + //// return booléen pour finaliser ou non attaque + return block; + } + + // fonction simulant des battailes entre 2 unités + public static Calcul bataille(modele.Unit u1, modele.Unit u2){ + + // Déclaration des variables + + int complet_degat = 0; + float degat_moyen; + float mort_moyen = 0; + boolean dflag = false; + int[] tabdegat = new int[50]; + int[] tabmort = new int[50]; + + // boucle simulant 10 000 batailles + for (int k=0;k<10000;k++){ + + int sum_degat = 0; + int adv = 0; + int pvE=u2.getFigurines().get(adv).getHP(); + int mort = 0; + + // boucle parcourant les figurines d'une unité + for (int j=0; j0) { + int attaque = chgt_a(u1.getFigurines().get(j).getSelectedWeapon().getA()); + + // Condition permettant d'attaquer une nouvelle figurine + while(pvE <=0 && adv+10){ + + int degat= chgt_d((u1.getFigurines().get(j).getSelectedWeapon().getD())); + pvE=pvE - degat ; + + // Calcul des dégats effectués par une attaque + if(pvE<0) { + sum_degat = sum_degat + degat + pvE; + complet_degat = complet_degat +degat +pvE; + } + else { + sum_degat = sum_degat + degat; + complet_degat = degat+complet_degat; + } + + // booléen pour indiquer une mort possible + dflag = true; + } + + // compteur du nbr de mort + if(pvE <=0 && dflag == true ) { + mort = mort+1; + mort_moyen = mort_moyen+1; + } + } + } + } + // si fig mort changement de prochaine cible + if(pvE <=0 ) { + if (adv+1 armes; + Arme selected_weapon; + + ArrayList aptitudes; + HashMap selectedAptitudes = new HashMap(); + + String nom; + String logoChemin; + String M; + int E; + int SV; + int HP; + int HP_max; + int CD; + int CO; + + public Figurine(ArrayList armes, ArrayList aptitudes, String nom, String logoChemin, String m, int e, int sV, int hP, int cD, int cO) { + //super(); // inutile, Figurine n'a pas de parent + + this.armes = armes; + if(armes.size() > 0) { + selected_weapon = armes.get(0); // arme par défaut + } + this.aptitudes = aptitudes; + + this.nom = nom; + this.logoChemin = logoChemin; + M = m; + E = e; + SV = sV; + HP = hP; + HP_max = hP; + CD = cD; + CO = cO; + } + + public Figurine(String nom_figurine, int E, int SV, int HP,ArrayList l1) { + this.nom = nom_figurine; + this.E = E; + this.SV = SV; + this.HP = HP; + this.armes = l1; + } + + //renvoi un dico avec en clé les noms des stats des armes et en valeurs une liste de valeur de toute les armes + public HashMap> statAtk(){ + HashMap> liste = new HashMap>(); + ArrayList stats = new ArrayList(); + + ArrayList A = new ArrayList(); + ArrayList F = new ArrayList(); + ArrayList PA = new ArrayList(); + ArrayList D = new ArrayList(); + + for (Arme arme : armes) { + stats = arme.statsAtk(); + A.add(stats.get(0)); + F.add(stats.get(1)); + PA.add(stats.get(2)); + D.add(stats.get(3)); + } + liste.put("A", A); + liste.put("F", F); + liste.put("PA", PA); + liste.put("D", D); + + return liste; + } +// public void updateHP(int dommage) { +// this.HP +=dommage; +// } + public HashMap defense(){ + HashMap liste = new HashMap(); + liste.put("E", E); + liste.put("SV", SV); + return liste; + } + + + public ArrayList getArmes() { + return armes; + } + public Arme getWeaponByName(String name) { + for(Arme weapon : armes) { + if(weapon.getNom() == name) { + return weapon; + } + } + return armes.get(0); // arme par défaut si aucune ne correspond + } + public Arme getSelectedWeapon() { + return selected_weapon; + } + public void setWeapon(Arme weapon) { + selected_weapon = weapon; + } + + public ArrayList getAptitudes() { + return aptitudes; + } + public HashMap getSelectedAptitudes() { + return selectedAptitudes; + } +// public void setSelectedAptitudes(HashMap aptitudes) { +// selectedAptitudes = aptitudes; +// } + + public String getNom() { + return nom; + } + + public String getLogoChemin() { + return logoChemin; + } + + public String getM() { + return M; + } + + public int getE() { + return E; + } + + public int getSV() { + return SV; + } + + public int getHP() { + return HP; + } + public int getHPMax() { + return HP_max; + } + + public int getCD() { + return CD; + } + + public int getCO() { + return CO; + } + + + public void setHP(int hP) { + HP = hP; + } + + @Override + public String toString() { + return "" + nom + ""; + } +} diff --git a/src/main/java/modele/Unit.java b/src/main/java/modele/Unit.java new file mode 100644 index 0000000..11b51d9 --- /dev/null +++ b/src/main/java/modele/Unit.java @@ -0,0 +1,96 @@ +package modele; + +import java.util.ArrayList; +import java.util.HashMap; + + + +public class Unit { + + private ArrayList figurines; + private HashMap> identical_figs = new HashMap>(); + private int id; + private String nom; + private int points; + private String logo; + private Armee armee; + + public Unit(ArrayList figurines, String nom, int points, String logo, Armee armee) { + this.figurines = figurines; + this.makeIdenticalFigsGroups(); + this.nom = nom; + this.points = points; + this.logo = logo; + this.armee = armee; + } + public Unit(ArrayList figurines,int id, String nom, int points,String logo, Armee armee) { + this.id = id; + this.figurines = figurines; + this.nom = nom; + this.logo = logo; + this.points = points; + this.armee = armee; + } + + // bientôt inutile + public Unit(String nom_unit,ArrayList list_unit) { + this.nom = nom_unit; + this.figurines = list_unit; + } + + // getters + public ArrayList getFigurines() { + return figurines; + } + public HashMap> getIdenticalFigsGroups(){ + return identical_figs; + } + + // est exécuté dès qu'on touche au slider + public int getAliveFigsOfAGroup(String group_name) { + int nb = 0; + for(Figurine fig : identical_figs.get(group_name)) + { + if(fig.getHP() > 0) { + nb++; + } + } + return nb; + } + + public int getId() { + return id; + } + public String getName() { + return nom; + } + public int getPoints() { + return points; + } + public String getLogo() { + return nom; + } + public Armee getArmee() { + return armee; + } + + public void setFigurine(ArrayList liste) { + figurines = liste; + } + + private void makeIdenticalFigsGroups() { + for(Figurine fig : figurines) + { + if(!identical_figs.containsKey(fig.getNom())) // si nouveau type de figurines + { + identical_figs.put(fig.getNom(), new ArrayList()); // création d'uné paire clé/liste dans la hashmap + } + identical_figs.get(fig.getNom()).add(fig); // récupérer la liste correspondante à la clé et ajouter la figurine + } + } + + @Override + public String toString() { + return "" + nom + ""; + } +} diff --git a/src/main/java/modele/User.java b/src/main/java/modele/User.java new file mode 100644 index 0000000..a9a155d --- /dev/null +++ b/src/main/java/modele/User.java @@ -0,0 +1,83 @@ +package modele; + +import java.util.ArrayList; + +public class User { + + private ArrayList listes = new ArrayList(); + private String nom; + private String mdp; + private String email; + private int id; + private String role; + + public User( String nom, int id2, String role2) { + this.nom = nom; + this.id=id2; + this.role=role2; + } + + public User(ArrayList listes, String nom, String mdp, String email, int id,String role) { + this.listes = listes; + this.nom = nom; + this.mdp = mdp; + this.email = email; + this.id = id; + this.role=role; + } + + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + + public String getRole() { + return role; + } + public void setRole(String role) { + this.role = role; + } + + public ArrayList getListes() { + return listes; + } + public void setListes(ArrayList listes) { + this.listes = listes; + } + public String[] getListNames() { + String[] list_names = new String[listes.size()]; + for(int i = 0; i < listes.size(); i++) + { + list_names[i] = listes.get(i).getName(); + } + return list_names; + } + + public String getNom() { + return nom; + } + public void setNom(String nom) { + this.nom = nom; + } + public String getMdp() { + return mdp; + } + public void setMdp(String mdp) { + this.mdp = mdp; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + + public void addArmee(ArmeeListe armee) { + listes.add(armee); + } + public void removeArmee(ArmeeListe armee) { + listes.remove(armee); + } +} -- cgit v1.2.3