Méthodes choisir pour l'ihm

This commit is contained in:
Paul Gross 2020-04-22 16:43:39 +02:00
parent 3e1637c525
commit 216d12408a
12 changed files with 205 additions and 32 deletions

View File

@ -13,7 +13,10 @@ public abstract class Equipement extends CartePiochable<Type>{
} }
public void utiliser(Joueur j) { public void utiliser(Joueur j) {
if(!j.getEquipements().contains(this)) {
j.ajouterEquipement(this);
}
super.utiliser(j);
} }
public abstract void reverse(Joueur j); public abstract void reverse(Joueur j);

View File

@ -5,7 +5,7 @@ import main.Joueur;
public class EquipementStat extends Equipement{ public class EquipementStat extends Equipement{
public EquipementStat(String nom, String description, int b) { public EquipementStat(String nom, String description) {
super(nom, description); super(nom, description);
} }

View File

@ -2,6 +2,8 @@ package condition;
import main.Joueur; import main.Joueur;
public abstract class Condition { public class Condition {
public abstract boolean isTrue(Joueur joueur); public boolean isTrue(Joueur joueur) {
return true;
}
} }

View File

@ -12,7 +12,7 @@ public class EffetChoisirCible extends Effet{
@Override @Override
public void utiliser(Joueur joueur) { public void utiliser(Joueur joueur) {
Joueur j2 = joueur.choisirTous(); Joueur j2 = joueur.choisiParmisTous();
Action action = this.getAction(); Action action = this.getAction();
action.affecte(joueur, j2); action.affecte(joueur, j2);

View File

@ -15,13 +15,13 @@ public class GestionnaireEquipements {
this.equipements = new ArrayList<Equipement>(); this.equipements = new ArrayList<Equipement>();
} }
public void ajouterEquipement(Equipement e) { public void ajouter(Equipement e) {
this.equipements.add(e); this.equipements.add(e);
e.utiliser(this.j); e.utiliser(this.j);
this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, 1); this.j.addToStat(Joueur.PLAYER_NB_EQUIPEMENTS, 1);
} }
public void retirerEquipement(Equipement e) { public void retirer(Equipement e) {
if(this.equipements.contains(e)) { if(this.equipements.contains(e)) {
e.reverse(j); e.reverse(j);
this.equipements.remove(e); this.equipements.remove(e);
@ -29,10 +29,6 @@ public class GestionnaireEquipements {
} }
} }
public void reverseEffect(Equipement e) {
e.reverse(j);
}
public List<Equipement> getEquipements() { public List<Equipement> getEquipements() {
return equipements; return equipements;
} }

View File

@ -1,7 +1,12 @@
package main; package main;
import java.util.List;
import effet.Effet;
public class GestionnaireJeu { public class GestionnaireJeu {
private Plateau plateau; private Plateau plateau;
private View view;
public GestionnaireJeu (Plateau p) { public GestionnaireJeu (Plateau p) {
plateau = p; plateau = p;
@ -24,4 +29,27 @@ public class GestionnaireJeu {
return null; return null;
} }
public Joueur choisirParmisTous(Joueur joueur, List<Joueur> joueurs) {
return joueur;
// TODO Auto-generated method stub
}
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
// TODO Auto-generated method stub
return null;
}
public Joueur choisirAdjacents(Joueur joueur, List<Joueur> joueurs) {
// TODO Auto-generated method stub
return null;
}
public boolean choisir(Joueur joueur) {
// TODO Auto-generated method stub
return false;
}
} }

View File

@ -5,6 +5,7 @@ import java.util.Map;
import carte.CarteLieu; import carte.CarteLieu;
import carte.Equipement; import carte.Equipement;
import carte.EquipementStat;
import effet.Effet; import effet.Effet;
import personnage.CartePersonnage; import personnage.CartePersonnage;
@ -40,7 +41,7 @@ public class Joueur {
public Joueur(String nom) { public Joueur(String nom) {
this.nom = nom; this.nom = nom;
this.revele = false; this.revele = false;
this.gestionnaireEquipements = new GestionnaireEquipements(this);
stats = new HashMap<>(); stats = new HashMap<>();
@ -49,7 +50,8 @@ public class Joueur {
//stats.put(PLAYER_HP, char.getHP()); //stats.put(PLAYER_HP, char.getHP());
//stats.put(PLAYER_TURN, 1); //stats.put(PLAYER_TURN, 1);
//stats.put(PLAYER_DAMAGE, 0); - dégats en + stats.put(PLAYER_DAMAGE, 0);
stats.put(PLAYER_NB_EQUIPEMENTS, 0);
//stats.put(PLAYER_RESISTANCE, 0); //stats.put(PLAYER_RESISTANCE, 0);
//stats.put(PLAYER_REVEAL, 0); //stats.put(PLAYER_REVEAL, 0);
//stats.put(PLAYER_IMMUNITY, 0); //stats.put(PLAYER_IMMUNITY, 0);
@ -72,6 +74,7 @@ public class Joueur {
if(stats.containsKey(key)) { if(stats.containsKey(key)) {
return stats.get(key); return stats.get(key);
}else { }else {
return -1; return -1;
} }
} }
@ -90,8 +93,8 @@ public class Joueur {
public void voler(Joueur j2, Equipement equipement) { public void voler(Joueur j2, Equipement equipement) {
j2.gestionnaireEquipements.retirerEquipement(equipement); j2.gestionnaireEquipements.retirer(equipement);
this.gestionnaireEquipements.ajouterEquipement(equipement); } this.gestionnaireEquipements.ajouter(equipement); }
public Equipement choisir(List<Equipement> equipements) { public Equipement choisir(List<Equipement> equipements) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
@ -123,7 +126,7 @@ public class Joueur {
public void addToStat(String key, int valeur) public void addToStat(String key, int valeur)
{ {
int valeurBase = this.getStat(key); int valeurBase = this.getStat(key);
this.setStat(Joueur.PLAYER_HP,valeurBase+valeur); this.setStat(key,valeurBase+valeur);
} }
@ -131,14 +134,20 @@ public class Joueur {
return this.plateau; return this.plateau;
} }
public boolean choisir() {
return this.plateau.choisir(this);
}
public Joueur choisirAdjacents() { public Joueur choisirAdjacents() {
// TODO Auto-generated method stub return this.plateau.choisirAdjacents(this);
return null;
} }
public Effet choisir(Effet[] effets) { public Effet choisir(Effet[] effets) {
// TODO Auto-generated method stub return this.plateau.choisirEffet(this,effets);
return null; }
public Joueur choisiParmisTous() {
return this.plateau.choisirParmisTous(this);
} }
public boolean getRevele() { public boolean getRevele() {
@ -162,10 +171,7 @@ public class Joueur {
this.plateau = plateau2; this.plateau = plateau2;
} }
public boolean choisir() {
// TODO Auto-generated method stub
return false;
}
public void utiliserEffetLieu() { public void utiliserEffetLieu() {
this.carteLieu.utiliser(this); this.carteLieu.utiliser(this);
@ -181,10 +187,7 @@ public class Joueur {
} }
public Joueur choisirTous() {
// TODO Auto-generated method stub
return null;
}
public CarteLieu getCarteLieu() { public CarteLieu getCarteLieu() {
return this.carteLieu; return this.carteLieu;
@ -202,4 +205,12 @@ public class Joueur {
this.revele = b; this.revele = b;
} }
public void ajouterEquipement(Equipement equipement) {
this.gestionnaireEquipements.ajouter(equipement);
}
public void retirerEquipement(Equipement equipement) {
this.gestionnaireEquipements.retirer(equipement);
}
} }

View File

@ -7,9 +7,11 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import carte.CarteLieu; import carte.CarteLieu;
import effet.Effet;
public class Plateau { public class Plateau {
private GestionnaireJeu gj;
private List<Joueur> joueurs; private List<Joueur> joueurs;
private List<CarteLieu> lieux; private List<CarteLieu> lieux;
@ -169,4 +171,30 @@ public class Plateau {
this.lieux = lieux; this.lieux = lieux;
shuffleLieux(); shuffleLieux();
} }
public boolean choisir(Joueur joueur) {
return gj.choisir(joueur);
}
public Joueur choisirAdjacents(Joueur joueur) {
List<Joueur> joueurs = new ArrayList<Joueur>();
CarteLieu cl = joueur.getCarteLieu();
joueurs.addAll(cl.getJoueurs());
joueurs.remove(joueur);
joueurs.addAll(cl.getJoueursAdjacents());
return gj.choisirAdjacents(joueur, joueurs);
}
public Effet choisirEffet(Joueur joueur, Effet[] effets) {
return gj.choisirEffet(joueur,effets);
}
public Joueur choisirParmisTous(Joueur joueur) {
List<Joueur> joueurs = this.getJoueurs();
return gj.choisirParmisTous(joueur,joueurs);
}
} }

5
src/main/View.java Normal file
View File

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

View File

@ -25,7 +25,7 @@ public class Franklin extends Unique{
Plateau p = joueur.getPlateau(); Plateau p = joueur.getPlateau();
int roll = p.roll6(); int roll = p.roll6();
Joueur joueur2 = joueur.choisirTous(); Joueur joueur2 = joueur.choisiParmisTous();
super.attaquer(joueur2, roll); super.attaquer(joueur2, roll);
} }
} }

View File

@ -19,7 +19,7 @@ public class Georges extends Unique{
Plateau p = joueur.getPlateau(); Plateau p = joueur.getPlateau();
int roll = p.roll4(); int roll = p.roll4();
Joueur joueur2 = joueur.choisirTous(); Joueur joueur2 = joueur.choisiParmisTous();
super.attaquer(joueur2, roll); super.attaquer(joueur2, roll);
} }
} }

View File

@ -0,0 +1,100 @@
package main;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import carte.EquipementStat;
import condition.Condition;
import effet.EffetSelf;
import effet.action.ActionAltererStatistiquesJoueur;
import personnage.Allie;
class GestionnaireEquipementsTest {
Joueur j1;
Joueur j2;
Plateau p;
Random rand;
Allie a1;
Allie a2;
@BeforeEach
void init()
{
rand = new Random();
List<Joueur> joueurs = new ArrayList<Joueur>();
j1 = new Joueur("Michel");
j2 = new Joueur("Antoine");
joueurs.add(j1);
joueurs.add(j2);
p = new Plateau(joueurs);
a1 = new Allie(j1);
a2 = new Allie(j2);
j1.setCartePersonnage(a1);
j2.setCartePersonnage(a2);
}
@Test
void ajouterEquipement_NbEquipements() {
int nbEffets = 20;
for(int i = 0; i < 20; i++) {
EquipementStat es = new EquipementStat("AddDamage", "desc");
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);
}
assertEquals(nbEffets, j1.getStat(Joueur.PLAYER_NB_EQUIPEMENTS));
}
@Test
void ajouterEquipement_StackingStats() {
int nbEffets = 20;
int valeurEffet = 3;
for(int i = 0; i < 20; i++) {
EquipementStat es = new EquipementStat("AddDamage", "desc");
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);
}
assertEquals(nbEffets*valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
}
@Test
void ajouterEquipement_RetirerEffet() {
int valeurEffet = 3;
EquipementStat es = new EquipementStat("AddDamage", "desc");
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);
assertEquals(valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE));
j1.retirerEquipement(es);
assertEquals(0, j1.getStat(Joueur.PLAYER_DAMAGE));
}
}