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) {
if(!j.getEquipements().contains(this)) {
j.ajouterEquipement(this);
}
super.utiliser(j);
}
public abstract void reverse(Joueur j);

View File

@ -5,10 +5,10 @@ import main.Joueur;
public class EquipementStat extends Equipement{
public EquipementStat(String nom, String description, int b) {
public EquipementStat(String nom, String description) {
super(nom, description);
}
@Override
public void reverse(Joueur j) {
ActionAltererStatistiquesJoueur action = ((ActionAltererStatistiquesJoueur) this.getEffet().getAction()).getReverseAction();

View File

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

View File

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

View File

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

View File

@ -1,7 +1,12 @@
package main;
import java.util.List;
import effet.Effet;
public class GestionnaireJeu {
private Plateau plateau;
private View view;
public GestionnaireJeu (Plateau p) {
plateau = p;
@ -24,4 +29,27 @@ public class GestionnaireJeu {
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.Equipement;
import carte.EquipementStat;
import effet.Effet;
import personnage.CartePersonnage;
@ -40,7 +41,7 @@ public class Joueur {
public Joueur(String nom) {
this.nom = nom;
this.revele = false;
this.gestionnaireEquipements = new GestionnaireEquipements(this);
stats = new HashMap<>();
@ -49,7 +50,8 @@ public class Joueur {
//stats.put(PLAYER_HP, char.getHP());
//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_REVEAL, 0);
//stats.put(PLAYER_IMMUNITY, 0);
@ -72,6 +74,7 @@ public class Joueur {
if(stats.containsKey(key)) {
return stats.get(key);
}else {
return -1;
}
}
@ -90,8 +93,8 @@ public class Joueur {
public void voler(Joueur j2, Equipement equipement) {
j2.gestionnaireEquipements.retirerEquipement(equipement);
this.gestionnaireEquipements.ajouterEquipement(equipement); }
j2.gestionnaireEquipements.retirer(equipement);
this.gestionnaireEquipements.ajouter(equipement); }
public Equipement choisir(List<Equipement> equipements) {
// TODO Auto-generated method stub
@ -123,22 +126,28 @@ public class Joueur {
public void addToStat(String key, int valeur)
{
int valeurBase = this.getStat(key);
this.setStat(Joueur.PLAYER_HP,valeurBase+valeur);
this.setStat(key,valeurBase+valeur);
}
public Plateau getPlateau() {
return this.plateau;
}
public boolean choisir() {
return this.plateau.choisir(this);
}
public Joueur choisirAdjacents() {
// TODO Auto-generated method stub
return null;
return this.plateau.choisirAdjacents(this);
}
public Effet choisir(Effet[] effets) {
// TODO Auto-generated method stub
return null;
return this.plateau.choisirEffet(this,effets);
}
public Joueur choisiParmisTous() {
return this.plateau.choisirParmisTous(this);
}
public boolean getRevele() {
@ -162,10 +171,7 @@ public class Joueur {
this.plateau = plateau2;
}
public boolean choisir() {
// TODO Auto-generated method stub
return false;
}
public void utiliserEffetLieu() {
this.carteLieu.utiliser(this);
@ -181,10 +187,7 @@ public class Joueur {
}
public Joueur choisirTous() {
// TODO Auto-generated method stub
return null;
}
public CarteLieu getCarteLieu() {
return this.carteLieu;
@ -202,4 +205,12 @@ public class Joueur {
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 carte.CarteLieu;
import effet.Effet;
public class Plateau {
private GestionnaireJeu gj;
private List<Joueur> joueurs;
private List<CarteLieu> lieux;
@ -169,4 +171,30 @@ public class Plateau {
this.lieux = lieux;
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();
int roll = p.roll6();
Joueur joueur2 = joueur.choisirTous();
Joueur joueur2 = joueur.choisiParmisTous();
super.attaquer(joueur2, roll);
}
}

View File

@ -19,7 +19,7 @@ public class Georges extends Unique{
Plateau p = joueur.getPlateau();
int roll = p.roll4();
Joueur joueur2 = joueur.choisirTous();
Joueur joueur2 = joueur.choisiParmisTous();
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));
}
}