diff --git a/src/main/GestionnaireJeu.java b/src/main/GestionnaireJeu.java index f328f21..7d28b58 100644 --- a/src/main/GestionnaireJeu.java +++ b/src/main/GestionnaireJeu.java @@ -47,9 +47,7 @@ public class GestionnaireJeu { } - public static Configuration lancerConfiguration() { - - + public static Configuration lancerConfiguration() { //TODO return null; } diff --git a/src/main/Plateau.java b/src/main/Plateau.java index 04fda66..3ec70bc 100644 --- a/src/main/Plateau.java +++ b/src/main/Plateau.java @@ -28,14 +28,14 @@ public class Plateau { private Map stats; - public Plateau(List joueurs) { - this.joueurs = joueurs; + this.lieux = new ArrayList<>(); this.stats = new HashMap<>(); joueurs.forEach(x -> x.setPlateau(this)); + this.joueurs = joueurs; this.stats.put(NB_MORTS, 0); @@ -49,10 +49,14 @@ public class Plateau { this.stats.put(NB_NEUTRES, 0); } - private void initCartePersonnage(List cps, int nbJoueurs) throws Exception { + public void initCartePersonnage(List cps) throws Exception { + + int nbJoueurs = this.joueurs.size(); List lcp = new ArrayList<>(nbJoueurs); + + System.out.println(this.joueurs); switch(nbJoueurs) { case 4: @@ -76,26 +80,44 @@ public class Plateau { for(int i = 0; i< nbJoueurs; i++) { - this.joueurs.get(i).setCartePersonnage(lcp.get(i)); + Joueur j = joueurs.get(i); + j.setCartePersonnage(lcp.get(i)); } - } private List getRandomListPersonnages(List cps,int nbEquipeShadowHunter, int nbNeutres) { List lcp = new ArrayList(); - Collections.shuffle(lcp); + Collections.shuffle(cps); + int nbShadow = nbEquipeShadowHunter; int nbHunter = nbEquipeShadowHunter; + int nbNeutre = nbNeutres; + + for(CartePersonnage cp : cps) { - + + if(nbHunter > 0 && cp.getEquipe() == CartePersonnage.Equipe.HUNTER) { + nbHunter--; + lcp.add(cp); + } + + if(nbNeutre > 0 && cp.getEquipe() == CartePersonnage.Equipe.NEUTRE) { + nbNeutre--; + lcp.add(cp); + } + + if(nbShadow > 0 && cp.getEquipe() == CartePersonnage.Equipe.SHADOW) { + nbShadow--; + lcp.add(cp); + } } - - return cps; + System.out.println(lcp); + return lcp; } public void jeu() { @@ -123,7 +145,6 @@ public class Plateau { public void deplacer(Joueur currentJoueur) { - boolean attributed = false; while(!attributed) { @@ -140,7 +161,6 @@ public class Plateau { } } - public void attaquer(Joueur joueur1, Joueur joueur2) { int attaque = diffRolls(); @@ -151,7 +171,6 @@ public class Plateau { } } - public Joueur selectionnerJoueur() { return new Joueur("0"); } @@ -187,8 +206,7 @@ public class Plateau { { return this.stats.get(key); }else { - - //TODO Exception + return -1; } @@ -233,7 +251,6 @@ public class Plateau { return gj.choisirAdjacents(joueur, joueurs); } - public Effet choisirEffet(Joueur joueur, Effet[] effets) { return gj.choisirEffet(joueur,effets); diff --git a/src/personnage/Allie.java b/src/personnage/Allie.java index 7d55515..a8243f4 100644 --- a/src/personnage/Allie.java +++ b/src/personnage/Allie.java @@ -29,6 +29,26 @@ public class Allie extends Unique{ Condition winCondition = new ConditionMultiple(conditions); + this.setCondition(winCondition); + this.setEquipe(CartePersonnage.Equipe.NEUTRE); + this.setJoueur(joueur); + joueur.setCartePersonnage(this); + } + + public Allie() { + super("ALLIE","desc", 8, null); + + Action action = new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,this.getPv(),false); + Effet effet = new EffetSelf(action); + this.setEffet(effet); + + List conditions = new ArrayList(); + + conditions.add(new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.PARTIE_FINIE, 1, ConditionStatistiques.EQUAL)); + conditions.add(new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 0, ConditionStatistiques.LESS)); + + Condition winCondition = new ConditionMultiple(conditions); + this.setCondition(winCondition); this.setEquipe(CartePersonnage.Equipe.NEUTRE); } diff --git a/src/personnage/CartePersonnage.java b/src/personnage/CartePersonnage.java index e7fdf1a..78e7dd3 100644 --- a/src/personnage/CartePersonnage.java +++ b/src/personnage/CartePersonnage.java @@ -19,7 +19,7 @@ public abstract class CartePersonnage extends CarteCondition { super(nom, description); this.pv = pv; this.joueur = joueur; - joueur.setCartePersonnage(this); + } public abstract void utiliser(); diff --git a/src/personnage/Franklin.java b/src/personnage/Franklin.java index 54624b4..2f52c93 100644 --- a/src/personnage/Franklin.java +++ b/src/personnage/Franklin.java @@ -11,6 +11,12 @@ public class Franklin extends Unique{ this.setCondition(new WinConditionHunter()); this.setEquipe(CartePersonnage.Equipe.HUNTER); } + + public Franklin() { + super("Franklin", "desc", 12, null); + this.setCondition(new WinConditionHunter()); + this.setEquipe(CartePersonnage.Equipe.HUNTER); + } @Override public void attaquer(Joueur j, int blessure) { diff --git a/src/personnage/Vampire.java b/src/personnage/Vampire.java index c5666fd..5835997 100644 --- a/src/personnage/Vampire.java +++ b/src/personnage/Vampire.java @@ -10,6 +10,18 @@ import main.Joueur; public class Vampire extends CartePersonnage{ + + public Vampire() { + super("Vampire","desc", 13,null); + + Action action = new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,2,true); + Effet effet = new EffetSelf(action); + this.setEffet(effet); + this.setCondition(new WinConditionShadow()); + this.setEquipe(CartePersonnage.Equipe.SHADOW); + + } + public Vampire(Joueur joueur) { super("Vampire","desc", 13, joueur); @@ -19,8 +31,13 @@ public class Vampire extends CartePersonnage{ this.setEffet(effet); this.setCondition(new WinConditionShadow()); this.setEquipe(CartePersonnage.Equipe.SHADOW); + this.setJoueur(joueur); + joueur.setCartePersonnage(this); } + + + /** * Lance l'action d'attaquer de Vampire *

Effet : Soin 2 PV diff --git a/tests/main/GestionnaireEquipementsTest.java b/tests/main/GestionnaireEquipementsTest.java index 2338ef0..68924eb 100644 --- a/tests/main/GestionnaireEquipementsTest.java +++ b/tests/main/GestionnaireEquipementsTest.java @@ -42,7 +42,6 @@ class GestionnaireEquipementsTest { j1.setCartePersonnage(a1); j2.setCartePersonnage(a2); - } @Test @@ -55,14 +54,11 @@ class GestionnaireEquipementsTest { EquipementStat es = new EquipementStat("AddDamage", "desc"); es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true))); es.setCondition(new Condition()); - j1.ajouterEquipement(es); - + j1.ajouterEquipement(es); } - assertEquals(nbEffets, j1.getStat(Joueur.PLAYER_NB_EQUIPEMENTS)); } - @Test void ajouterEquipement_StackingStats() { diff --git a/tests/main/PlateauTest.java b/tests/main/PlateauTest.java index e37ea00..75012ac 100644 --- a/tests/main/PlateauTest.java +++ b/tests/main/PlateauTest.java @@ -1,5 +1,6 @@ package main; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -19,6 +20,9 @@ import effet.EffetSelf; import effet.action.ActionAltererStatistiquesJoueur; import effet.action.ActionVoler; import personnage.Allie; +import personnage.CartePersonnage; +import personnage.Franklin; +import personnage.Vampire; class PlateauTest { @@ -133,4 +137,71 @@ class PlateauTest { } } + @Test + void initCartePersonnage() throws Exception { + + + Joueur j; + + for(int k = 4 ; k < 9 ;k++) { + + + int nbJoueurs = k; + List joueurs = new ArrayList(); + List personnages = new ArrayList(5); + + int nbShadowHunters = 0; + int nbNeutres = 0; + + switch(nbJoueurs) { + + case 4: + nbShadowHunters = 2; + nbNeutres = 0; + break; + case 5: + nbShadowHunters = 2; + nbNeutres = 1; + break; + case 6: + nbShadowHunters = 2; + nbNeutres = 2; + break; + case 7: + nbShadowHunters = 2; + nbNeutres = 3; + break; + case 8: + nbShadowHunters = 3; + nbNeutres = 2; + break;} + + + + + for (int i = 0; i < nbJoueurs; i++) { + j = new Joueur("Michel"); + joueurs.add(new Joueur("Michel")); + } + + for(int i = 0 ; i