WinCondition Loup-Garou, Métamorphe, Vampire

This commit is contained in:
Paul Gross 2020-04-18 14:31:16 +02:00
parent ff0e8121e1
commit ddda065775
5 changed files with 71 additions and 15 deletions

View File

@ -5,6 +5,10 @@ import main.Joueur;
public class ConditionMultipleOR extends ConditionMultiple{
public ConditionMultipleOR(Condition ...conditions) {
super(conditions);
}
/**
* Vérifie qu'au moins une des conditions soit vérifiée.
* @param joueur Le joueur sur lequel on vérifie les conditions.

View File

@ -12,11 +12,14 @@ public class Plateau {
private List<CarteLieu> lieux;
public static final String PLATEAU_NB_MORTS = "nb_morts";
public static final String PLATEAU_NB_MORTS_NEUTRAL = "nb_morts_neutral";
public static final String PLATEAU_NB_MORTS_HUNTER = "nb_morts_hunter";
public static final String PLATEAU_NB_MORTS_SHADOW = "nb_morts_shadow";
public static final String PLATEAU_PARTIE_FINIE = "partie_finie";
public static final String NB_HUNTERS = "nb_hunters";
public static final String NB_SHADOWS = "nb_shadows";
public static final String NB_NEUTRES = "nb_neutres";
public static final String NB_MORTS = "nb_morts";
public static final String NB_MORTS_NEUTRAL = "nb_morts_neutral";
public static final String NB_MORTS_HUNTER = "nb_morts_hunter";
public static final String NB_MORTS_SHADOW = "nb_morts_shadow";
public static final String PARTIE_FINIE = "partie_finie";
private Map<String, Integer> stats;
@ -34,11 +37,14 @@ public class Plateau {
stats = new HashMap<>();
// Initialisation plateau
stats.put(PLATEAU_NB_MORTS, 0);
stats.put(PLATEAU_NB_MORTS_NEUTRAL, 0);
stats.put(PLATEAU_NB_MORTS_HUNTER, 0);
stats.put(PLATEAU_NB_MORTS_SHADOW, 0);
stats.put(PLATEAU_PARTIE_FINIE, 0);
stats.put(NB_HUNTERS, 0);
stats.put(NB_SHADOWS, 0);
stats.put(NB_NEUTRES, 0);
stats.put(NB_MORTS, 0);
stats.put(NB_MORTS_NEUTRAL, 0);
stats.put(NB_MORTS_HUNTER, 0);
stats.put(NB_MORTS_SHADOW, 0);
stats.put(PARTIE_FINIE, 0);
}

View File

@ -1,15 +1,26 @@
package personnage;
import condition.Condition;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import main.Joueur;
import main.Plateau;
public class LoupGarou extends CartePersonnage {
//constructeur
public LoupGarou(String nom, int hp, Joueur joueur, Condition condition) {
super(nom, hp, joueur, condition);
public LoupGarou(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur);
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition condition = new ConditionMultipleOR(
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.MORE)
,
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_NEUTRAL, 3, ConditionStatistiques.MORE)
);
this.setCondition(condition);
}
//méthodes
//m<EFBFBD>thodes
public void contreAttaquer(Joueur j) {
}

View File

@ -0,0 +1,25 @@
package personnage;
import condition.Condition;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import main.Joueur;
import main.Plateau;
public class Metamorphe extends CartePersonnage{
public Metamorphe(String nom, int pv, Joueur joueur) {
super(nom, pv, joueur);
// WinCondition
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition condition = new ConditionMultipleOR(
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.MORE)
,
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_NEUTRAL, 3, ConditionStatistiques.MORE)
);
this.setCondition(condition);
}
}

View File

@ -1,21 +1,31 @@
package personnage;
import condition.Condition;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import effet.Action;
import effet.ActionAltererStatistiquesJoueur;
import effet.Effet;
import effet.EffetSelf;
import main.Joueur;
import main.Plateau;
public class Vampire extends CartePersonnage{
public Vampire(String nom, int hp, Joueur joueur, Condition condition) {
super(nom, hp, joueur, condition);
public Vampire(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur);
Action action = new ActionAltererStatistiquesJoueur("HP",2,true);
Effet effet = new EffetSelf(action);
this.setEffet(effet);
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition condition = new ConditionMultipleOR(
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.MORE)
,
new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_NEUTRAL, 3, ConditionStatistiques.MORE)
);
this.setCondition(condition);
}
public void utiliser(Joueur j)