GestionnaireEquipements + EquipementStat

This commit is contained in:
Paul Gross 2020-04-22 14:42:21 +02:00
parent 65c7fa3694
commit 558ec79e1f
10 changed files with 53 additions and 80 deletions

View File

@ -4,7 +4,7 @@ import main.Joueur;
import main.Type;
public class Equipement extends CartePiochable<Type>{
public abstract class Equipement extends CartePiochable<Type>{
public Equipement(String nom, String description) {
@ -15,4 +15,6 @@ public class Equipement extends CartePiochable<Type>{
public void utiliser(Joueur j) {
}
public abstract void reverse(Joueur j);
}

View File

@ -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);
}
}

View File

@ -45,4 +45,8 @@ public class ActionAltererStatistiquesJoueur extends Action{
j2.setStat(key, valeur);
}
}
public ActionAltererStatistiquesJoueur getReverseAction() {
return new ActionAltererStatistiquesJoueur(key, -valeur, true);
}
}

View File

@ -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<Equipement> equipements = j2.getEquipements();
// J1 choisit quel équipement voler
Equipement equipement = j1.choisir(equipements);

View File

@ -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;
}

View File

@ -1,5 +0,0 @@
package main;
public class Effet {
}

View File

@ -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<String, Equipement> equipements = new HashMap<>();
private Joueur j;
private List<Equipement> 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<Effet> 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<Equipement>();
}
public int getDamageUpdate() {
int res = 0;
Equipement[] e = (Equipement[]) equipements.values().toArray();
for(int i = 0; i<equipements.values().toArray().length;i++) {
if(e[i] instanceof EquipementStat) {
//res+=(EquipementStat)e[i].get
}
public void ajouterEquipement(Equipement e) {
this.equipements.add(e);
e.utiliser(this.j);
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, 1);
}
public void retirerEquipement(Equipement e) {
if(this.equipements.contains(e)) {
e.reverse(j);
this.equipements.remove(e);
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, -1);
}
return res;
}
public void reverseEffect(Equipement e) {
e.reverse(j);
}
}
public List<Equipement> getEquipements() {
return equipements;
}
}

View File

@ -75,11 +75,7 @@ public class Joueur {
return -1;
}
}
public int getNbEquipments() {
return gestionnaireEquipements.getNbEquipments();
}
public List<Joueur> getJoueursAdjacents() {
@ -88,17 +84,16 @@ public class Joueur {
return joueurs;
}
public Equipement[] getEquipements() {
// TODO Auto-generated method stub
return null;
public List<Equipement> 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<Equipement> equipements) {
// TODO Auto-generated method stub
return null;
}

View File

@ -16,8 +16,6 @@ import personnage.Daniel;
class ConditionClassPersonnageTest {
@Test
public void conditionClass_RenvoieAppartenancePersonnage() throws Exception {

View File

@ -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);