From e91b24c13a9c05e5557cf8469e1accd62db395ea Mon Sep 17 00:00:00 2001 From: Paul Gross Date: Wed, 6 May 2020 12:04:30 +0200 Subject: [PATCH] =?UTF-8?q?Images=20+=20ajout=20des=20cartes=20visions=20e?= =?UTF-8?q?t=20t=C3=A9n=C3=A8bres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/carte/CarteEquipementStat.java | 6 + ...onditionType.java => ConditionEquipe.java} | 11 +- src/database/CreatingCardsTest.java | 138 +++++++++++++++++- src/effet/EffetMultiple.java | 30 ++++ src/effet/action/ActionVoler.java | 39 ++++- src/ihm/controller/PlateauController.java | 2 +- src/main/Plateau.java | 2 +- src/personnage/Bob.java | 2 +- tests/condition/ConditionTypeTest.java | 4 +- tests/main/PlateauTest.java | 2 +- 10 files changed, 215 insertions(+), 21 deletions(-) rename src/condition/{ConditionType.java => ConditionEquipe.java} (80%) create mode 100644 src/effet/EffetMultiple.java diff --git a/src/carte/CarteEquipementStat.java b/src/carte/CarteEquipementStat.java index a079b96..58b25ab 100644 --- a/src/carte/CarteEquipementStat.java +++ b/src/carte/CarteEquipementStat.java @@ -22,6 +22,12 @@ public class CarteEquipementStat extends CarteEquipement{ this.setEffet(effet); this.setCondition(condition); } + + public CarteEquipementStat(Effet effet) { + super("",""); + this.setEffet(effet); + this.setCondition(new Condition()); + } @Override public void reverse(Joueur j) { diff --git a/src/condition/ConditionType.java b/src/condition/ConditionEquipe.java similarity index 80% rename from src/condition/ConditionType.java rename to src/condition/ConditionEquipe.java index 227518c..996c970 100644 --- a/src/condition/ConditionType.java +++ b/src/condition/ConditionEquipe.java @@ -1,6 +1,7 @@ package condition; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import main.Joueur; @@ -8,7 +9,7 @@ import personnage.CartePersonnage; import personnage.CartePersonnage.Equipe; -public class ConditionType extends Condition{ +public class ConditionEquipe extends Condition{ /** * @@ -16,12 +17,16 @@ public class ConditionType extends Condition{ private static final long serialVersionUID = 8261153600401164649L; private List equipes; - public ConditionType(Equipe e) { + public ConditionEquipe(Equipe e) { this.equipes = new ArrayList(); this.equipes.add(e); } - public ConditionType(List equipes){ + public ConditionEquipe(Equipe...equipes) { + this.equipes = Arrays.asList(equipes); + } + + public ConditionEquipe(List equipes){ this.equipes = new ArrayList(); this.equipes.addAll(equipes); diff --git a/src/database/CreatingCardsTest.java b/src/database/CreatingCardsTest.java index b8b2a78..927c2a6 100644 --- a/src/database/CreatingCardsTest.java +++ b/src/database/CreatingCardsTest.java @@ -2,21 +2,25 @@ package database; import carte.CarteEquipementStat; import carte.CartePiochable; -import condition.Condition; import condition.ConditionClassPersonnage; +import condition.ConditionEquipe; import condition.ConditionMultiple; import condition.ConditionReveal; -import condition.ConditionType; +import condition.ConditionStatistiques; import effet.EffetChoisirCible; +import effet.EffetChoisirEffet; import effet.EffetCiblerTous; +import effet.EffetMultiple; import effet.EffetSelf; -import effet.action.Action; import effet.action.ActionAltererStatistiquesJoueur; import effet.action.ActionAltererStatistiquesJoueurRoll; import effet.action.ActionMultiple; import effet.action.ActionReveal; +import effet.action.ActionVoler; import main.Joueur; import main.TypeLumiere; +import main.TypeTenebre; +import main.TypeVision; import personnage.Allie; import personnage.CartePersonnage; import personnage.Emi; @@ -38,7 +42,7 @@ public class CreatingCardsTest { //Avénement suprême insert(3,new CartePiochable( new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true)) - ,new ConditionMultiple(new ConditionType(CartePersonnage.Equipe.HUNTER), new ConditionReveal()) + ,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal()) )); //Barre de chocolat @@ -55,7 +59,7 @@ public class CreatingCardsTest { // BOUSSOLE mystique - // 6 + // 6 // 7 @@ -75,7 +79,7 @@ public class CreatingCardsTest { insert(12,new CarteEquipementStat( new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true)) - ,new ConditionMultiple(new ConditionType(CartePersonnage.Equipe.HUNTER), new ConditionReveal()) + ,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal()) )); // Miroir divin @@ -97,6 +101,128 @@ public class CreatingCardsTest { //Toge sainte insert(16, new CartePiochable(new EffetSelf(new ActionMultiple(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_RESISTANCE, 1, true),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, -1, true))))); + + + // Ténèbre + + // Araignée Sanguinaire + + insert(17, new CartePiochable(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true))))); + + + // Chauve - souris vampire + + insert(18, new CartePiochable(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true))))); + + insert(19, new CartePiochable(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true))))); + + insert(20, new CartePiochable(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true))))); + + // Dynamite + + // 21 + + + // Hache tueuse + insert(22,new CarteEquipementStat( + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); + + // Hachoir maudit + insert(23,new CarteEquipementStat( + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); + + + // Mitrailleuse funeste + // 24 + + // Peau de banane + // 25 + + // Poupé démoniaque + // 26 + + insert(28,new CartePiochable( + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true)) + ,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.SHADOW), new ConditionReveal()) + )); + + // 29 + + insert(30,new CartePiochable( + new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)))); + + insert(31,new CartePiochable( + new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)))); + + insert(32,new CarteEquipementStat( + new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true)))); + + + // Vision clairvoyante + insert(33, new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true)), + new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS))); + + // Vision cupide + + insert(34,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); + + insert(35,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); + + + // Vision destructrice + + insert(36, new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)), + new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 12, ConditionStatistiques.MORE))); + + + // Vision divine + + // Vision enivrante + + insert(38,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); + + insert(39,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW))); + + // Vision Foudroyante + + insert(40,new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), + new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); + + + // Vision furtive + + insert(41,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW))); + + insert(42,new CartePiochable(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))), + new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW))); + + // Vision Mortifère + + insert(43,new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), + new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); + + insert(44,new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)), + new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); + + + // Vision lugubre + + insert(46,new CartePiochable(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)), + new ConditionEquipe(CartePersonnage.Equipe.SHADOW))); + + // Vision réconfortante + + // Vision suprême + } diff --git a/src/effet/EffetMultiple.java b/src/effet/EffetMultiple.java new file mode 100644 index 0000000..3e66830 --- /dev/null +++ b/src/effet/EffetMultiple.java @@ -0,0 +1,30 @@ +package effet; + +import java.util.Arrays; +import java.util.List; + +import main.Joueur; + +public class EffetMultiple extends Effet{ + + + private List effets; + /** + * + */ + private static final long serialVersionUID = 1936073174860639420L; + + public EffetMultiple(Effet...effets) { + super(null); + this.effets = Arrays.asList(effets); + } + + @Override + public void utiliser(Joueur joueur) { + + for(Effet e : effets) { + e.utiliser(joueur); + } + } + +} diff --git a/src/effet/action/ActionVoler.java b/src/effet/action/ActionVoler.java index 0212e47..2671dc2 100644 --- a/src/effet/action/ActionVoler.java +++ b/src/effet/action/ActionVoler.java @@ -8,6 +8,21 @@ import main.Joueur; public class ActionVoler extends Action{ + public final static boolean DONNER = false; + public final static boolean VOLER = true; + + private boolean choix; + + public ActionVoler(Boolean choix) { + super(); + this.choix = choix; + } + + /** + * + */ + private static final long serialVersionUID = 3770148032992025640L; + /** * Lance l'action de voler une carte équipement. * @param j1 Le joueur qui vol @@ -17,12 +32,24 @@ public class ActionVoler extends Action{ @Override public void affecte(Joueur j1, Joueur j2) { - List equipements = j2.getEquipements(); - - // J1 choisit quel équipement voler - CarteEquipement equipement = j1.choisir(equipements); - - j1.voler(j2,equipement); + if(this.choix) { + + List equipements = j2.getEquipements(); + + // J1 choisit quel équipement voler + CarteEquipement equipement = j1.choisir(equipements); + + j1.voler(j2,equipement); + }else { + + List equipements = j1.getEquipements(); + + // J1 choisit quel équipement voler + CarteEquipement equipement = j1.choisir(equipements); + + j2.voler(j1,equipement); + + } } } diff --git a/src/ihm/controller/PlateauController.java b/src/ihm/controller/PlateauController.java index 9b7f841..84e6c05 100644 --- a/src/ihm/controller/PlateauController.java +++ b/src/ihm/controller/PlateauController.java @@ -69,7 +69,7 @@ public class PlateauController implements Initializable { } for(int i = 0; i("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre); CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9)); - lieu6.setEffet(new EffetChoisirCible(new ActionVoler())); + lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))); List cls = new ArrayList(); cls.add(lieu6); diff --git a/src/personnage/Bob.java b/src/personnage/Bob.java index 55de922..ef50a8d 100644 --- a/src/personnage/Bob.java +++ b/src/personnage/Bob.java @@ -14,7 +14,7 @@ public class Bob extends CartePersonnage{ this.setCondition(condition); - EffetTarget effet = new EffetTarget(new ActionVoler()); + EffetTarget effet = new EffetTarget(new ActionVoler(ActionVoler.VOLER)); this.setEffet(effet); } diff --git a/tests/condition/ConditionTypeTest.java b/tests/condition/ConditionTypeTest.java index 240ff16..2313207 100644 --- a/tests/condition/ConditionTypeTest.java +++ b/tests/condition/ConditionTypeTest.java @@ -24,7 +24,7 @@ class ConditionTypeTest { List equipes = new ArrayList(); equipes.add(CartePersonnage.Equipe.HUNTER); equipes.add(CartePersonnage.Equipe.NEUTRE); - ConditionType ct = new ConditionType(equipes); + ConditionEquipe ct = new ConditionEquipe(equipes); Joueur j = new Joueur(null); @@ -46,7 +46,7 @@ class ConditionTypeTest { List equipes = new ArrayList(); - ConditionType ct = new ConditionType(equipes); + ConditionEquipe ct = new ConditionEquipe(equipes); Joueur j = new Joueur(null); j.setCartePersonnage(new Allie(j)); assertFalse(ct.isTrue(j)); diff --git a/tests/main/PlateauTest.java b/tests/main/PlateauTest.java index 75012ac..4580e33 100644 --- a/tests/main/PlateauTest.java +++ b/tests/main/PlateauTest.java @@ -82,7 +82,7 @@ class PlateauTest { CarteLieu lieu5 = new CarteLieuType("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre); CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9)); - lieu6.setEffet(new EffetChoisirCible(new ActionVoler())); + lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))); List cls = new ArrayList(); cls.add(lieu6);