From 558ec79e1fa4badeed9bc97faa6bfc0794343724 Mon Sep 17 00:00:00 2001 From: Paul Gross Date: Wed, 22 Apr 2020 14:42:21 +0200 Subject: [PATCH] GestionnaireEquipements + EquipementStat --- src/carte/Equipement.java | 4 +- src/carte/EquipementStat.java | 14 ++-- .../ActionAltererStatistiquesJoueur.java | 4 + src/effet/action/ActionVoler.java | 4 +- src/main/ControleurIA.java | 2 +- src/main/Effet.java | 5 -- src/main/GestionnaireEquipements.java | 78 +++++++------------ src/main/Joueur.java | 17 ++-- .../ConditionClassPersonnageTest.java | 2 - .../ActionAltererStatistiquesJoueurTest.java | 3 - 10 files changed, 53 insertions(+), 80 deletions(-) delete mode 100644 src/main/Effet.java diff --git a/src/carte/Equipement.java b/src/carte/Equipement.java index 15531cd..86694ec 100644 --- a/src/carte/Equipement.java +++ b/src/carte/Equipement.java @@ -4,7 +4,7 @@ import main.Joueur; import main.Type; -public class Equipement extends CartePiochable{ +public abstract class Equipement extends CartePiochable{ public Equipement(String nom, String description) { @@ -15,4 +15,6 @@ public class Equipement extends CartePiochable{ public void utiliser(Joueur j) { } + + public abstract void reverse(Joueur j); } diff --git a/src/carte/EquipementStat.java b/src/carte/EquipementStat.java index 2f642e2..f913524 100644 --- a/src/carte/EquipementStat.java +++ b/src/carte/EquipementStat.java @@ -1,13 +1,17 @@ package carte; +import effet.action.ActionAltererStatistiquesJoueur; +import main.Joueur; + public class EquipementStat extends Equipement{ - int blessures; + public EquipementStat(String nom, String description, int b) { super(nom, description); - blessures = b; } - - public int getBlessures() { - return blessures; + + @Override + public void reverse(Joueur j) { + ActionAltererStatistiquesJoueur action = ((ActionAltererStatistiquesJoueur) this.getEffet().getAction()).getReverseAction(); + action.affecte(j, j); } } diff --git a/src/effet/action/ActionAltererStatistiquesJoueur.java b/src/effet/action/ActionAltererStatistiquesJoueur.java index e2de8ba..3b5dff7 100644 --- a/src/effet/action/ActionAltererStatistiquesJoueur.java +++ b/src/effet/action/ActionAltererStatistiquesJoueur.java @@ -45,4 +45,8 @@ public class ActionAltererStatistiquesJoueur extends Action{ j2.setStat(key, valeur); } } + + public ActionAltererStatistiquesJoueur getReverseAction() { + return new ActionAltererStatistiquesJoueur(key, -valeur, true); + } } diff --git a/src/effet/action/ActionVoler.java b/src/effet/action/ActionVoler.java index c72f4ce..31cf7aa 100644 --- a/src/effet/action/ActionVoler.java +++ b/src/effet/action/ActionVoler.java @@ -1,5 +1,7 @@ package effet.action; +import java.util.List; + import carte.Equipement; import main.Joueur; @@ -15,7 +17,7 @@ public class ActionVoler extends Action{ @Override public void affecte(Joueur j1, Joueur j2) { - Equipement[] equipements = j2.getEquipements(); + List equipements = j2.getEquipements(); // J1 choisit quel équipement voler Equipement equipement = j1.choisir(equipements); diff --git a/src/main/ControleurIA.java b/src/main/ControleurIA.java index c62e2d9..629431c 100644 --- a/src/main/ControleurIA.java +++ b/src/main/ControleurIA.java @@ -147,7 +147,7 @@ public class ControleurIA { // bob : si attaque joueur possedant equipement 70?% devoilement public boolean devoilerIABob(JoueurVirtuel jIA, Joueur jAttaquee) { - if (jAttaquee.getNbEquipments() > 0 && getRandomPercentage() < 70) + if (jAttaquee.getStat(Joueur.PLAYER_NB_EQUIPEMENTS) > 0 && getRandomPercentage() < 70) return true; return false; } diff --git a/src/main/Effet.java b/src/main/Effet.java deleted file mode 100644 index d637c9c..0000000 --- a/src/main/Effet.java +++ /dev/null @@ -1,5 +0,0 @@ -package main; - -public class Effet { - -} diff --git a/src/main/GestionnaireEquipements.java b/src/main/GestionnaireEquipements.java index 040f47c..8b33b93 100644 --- a/src/main/GestionnaireEquipements.java +++ b/src/main/GestionnaireEquipements.java @@ -1,64 +1,40 @@ package main; -import java.util.HashMap; +import java.util.ArrayList; import java.util.List; -import java.util.Map; import carte.Equipement; -import carte.EquipementStat; -import condition.Condition; public class GestionnaireEquipements { - // String est le nom de l'equip, et Equip c'est l'objet, on suppose ici qu'il ne - // peut pas y avoir de doublon d'equipement - private Map equipements = new HashMap<>(); + + private Joueur j; + private List equipements; - public int getNbEquipments() { - return equipements.size(); - } - - // precondition : verifier que le gestionnaire contient l'equipement avec - // containsEquipement - public Equipement getEquipement(String key) { - return equipements.get(key); - } - - public boolean containsEquipement(String key) { - return equipements.containsKey(key); - } - - public void addEquipement(String s, Equipement e) { - equipements.put(s, e); - } - - // ex : si le joueur se fait voler un equipement, on l'enleve de la liste - // d'equipements - public Equipement removeEquipement(String key) { - return equipements.remove(key); - } - - // methode qui renvoit une liste des effets des equipements du joueur qui - // s'activeront dans une certaine phase de la partie par rapport a la condition - // en parametre - public List getEffets(Condition c) { - // TODO - return null; - } - - // pour methode choisir de joueur - public Equipement[] getArrayEquipements() { - return (Equipement[]) equipements.values().toArray(); + public GestionnaireEquipements(Joueur j) { + this.j = j; + this.equipements = new ArrayList(); } - public int getDamageUpdate() { - int res = 0; - Equipement[] e = (Equipement[]) equipements.values().toArray(); - for(int i = 0; i getEquipements() { + return equipements; + } + +} \ No newline at end of file diff --git a/src/main/Joueur.java b/src/main/Joueur.java index ccee0ee..d93e311 100644 --- a/src/main/Joueur.java +++ b/src/main/Joueur.java @@ -75,11 +75,7 @@ public class Joueur { return -1; } } - - - public int getNbEquipments() { - return gestionnaireEquipements.getNbEquipments(); - } + public List getJoueursAdjacents() { @@ -88,17 +84,16 @@ public class Joueur { return joueurs; } - public Equipement[] getEquipements() { - // TODO Auto-generated method stub - return null; + public List getEquipements() { + return this.gestionnaireEquipements.getEquipements(); } public void voler(Joueur j2, Equipement equipement) { - // TODO Auto-generated method stub - } + j2.gestionnaireEquipements.retirerEquipement(equipement); + this.gestionnaireEquipements.ajouterEquipement(equipement); } - public Equipement choisir(Equipement[] equipements) { + public Equipement choisir(List equipements) { // TODO Auto-generated method stub return null; } diff --git a/tests/condition/ConditionClassPersonnageTest.java b/tests/condition/ConditionClassPersonnageTest.java index 2c8cf8d..4b965d8 100644 --- a/tests/condition/ConditionClassPersonnageTest.java +++ b/tests/condition/ConditionClassPersonnageTest.java @@ -16,8 +16,6 @@ import personnage.Daniel; class ConditionClassPersonnageTest { - - @Test public void conditionClass_RenvoieAppartenancePersonnage() throws Exception { diff --git a/tests/effet/action/ActionAltererStatistiquesJoueurTest.java b/tests/effet/action/ActionAltererStatistiquesJoueurTest.java index 15c323b..f8aff8f 100644 --- a/tests/effet/action/ActionAltererStatistiquesJoueurTest.java +++ b/tests/effet/action/ActionAltererStatistiquesJoueurTest.java @@ -34,8 +34,6 @@ class ActionAltererStatistiquesJoueurTest { j1.setPlateau(p); j2.setPlateau(p); - - } @Test @@ -52,7 +50,6 @@ class ActionAltererStatistiquesJoueurTest { void affecte_StatsAddedUp() { int entier = rand.nextInt(); - int pvBaseJoueur = j2.getStat(Joueur.PLAYER_HP); ActionAltererStatistiquesJoueur aasj = new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, entier, true); aasj.affecte(j1, j2);