Ajout de fonctionnalités main, pioche

This commit is contained in:
Paul Gross 2020-04-18 19:39:59 +02:00
parent 1d1519bb17
commit 7d1090bf8b
17 changed files with 81 additions and 90 deletions

View File

@ -3,14 +3,11 @@ package carte;
import main.Joueur; import main.Joueur;
import main.Type; import main.Type;
public class CartePiochable<T> extends CarteCondition implements Type{ public class CartePiochable<T extends Type> extends CarteCondition{
public void utiliser(Joueur j) { public void utiliser(Joueur j) {
super.utiliser(j); super.utiliser(j);
} }
} }

View File

@ -0,0 +1,16 @@
package condition;
import main.Joueur;
import main.Plateau;
public class WinConditionHunter extends Condition{
@Override
public boolean isTrue(Joueur j)
{
int nbShadow = j.getPlateau().getStat(Plateau.NB_SHADOWS);
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE);
return winCondition.isTrue(j);
}
}

View File

@ -0,0 +1,16 @@
package condition;
import main.Joueur;
import main.Plateau;
public class WinConditionShadow extends Condition{
@Override
public boolean isTrue(Joueur j)
{
int nbHunter = j.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_HUNTER, nbHunter, ConditionStatistiques.MORE);
return winCondition.isTrue(j);
}
}

View File

@ -1,7 +0,0 @@
package main;
import carte.Carte;
public class CartePiochable<Type> extends Carte<Type> {
}

View File

@ -3,7 +3,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import carte.CarteLieu;
import effet.Effet; import effet.Effet;
@ -18,10 +17,11 @@ public class Joueur {
// map keys // map keys
public static final String PLAYER_HP = "hp"; public static final String PLAYER_HP = "hp";
public static final String PLAYER_TURN = "turn"; public static final String PLAYER_TURN = "turn";
public static final String PLYAYER_DAMAGE = "damage"; public static final String PLAYER_DAMAGE = "damage";
public static final String PLAYER_RESISTANCE = "resistance"; public static final String PLAYER_RESISTANCE = "resistance";
public static final String PLAYER_REVEAL = "reveal"; public static final String PLAYER_REVEAL = "reveal";
public static final String PLAYER_IMMUNITY = "immunity"; public static final String PLAYER_IMMUNITY = "immunity";
public static final String PLAYER_NB_EQUIPEMENTS = "nb_equipements";
private Map<String, Integer> stats; private Map<String, Integer> stats;
@ -67,7 +67,7 @@ public class Joueur {
return null; return null;
} }
public List<Equipement> getEquipements() { public Equipement[] getEquipements() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }

View File

@ -1,13 +1,22 @@
package main; package main;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.Stack;
public class Pioche<Carte> { import carte.CartePiochable;
private List<CartePiochable> cartesPiochables;
public CartePiochable piocher() { public class Pioche<T extends Type> {
private Stack<CartePiochable<T>> cartesPiochables;
public void melanger()
{
Collections.shuffle(cartesPiochables); Collections.shuffle(cartesPiochables);
return cartesPiochables.get(0); }
public CartePiochable<?> piocher() {
return cartesPiochables.pop();
} }
} }

View File

@ -1,5 +1,5 @@
package main; package main;
public class TypeTenebre { public class TypeTenebre implements Type{
} }

View File

@ -12,8 +12,8 @@ import main.Plateau;
public class Allie extends Unique{ public class Allie extends Unique{
public Allie(String nom, int hp, Joueur joueur,boolean capaciteUsed) { public Allie(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur, capaciteUsed); super(nom, hp, joueur);
Action action = new ActionAltererStatistiquesJoueur("HP",this.getPv(),false); Action action = new ActionAltererStatistiquesJoueur("HP",this.getPv(),false);
Effet effet = new EffetSelf(action); Effet effet = new EffetSelf(action);

View File

@ -1,14 +1,21 @@
package personnage; package personnage;
import condition.Condition; import condition.Condition;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
public class Bob extends CartePersonnage{ public class Bob extends CartePersonnage{
public Bob(String nom, int hp, Joueur joueur, Condition condition,boolean capaciteUsed) { public Bob(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur, condition); super(nom, hp, joueur);
Condition condition = new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_NB_EQUIPEMENTS, 5, ConditionStatistiques.MORE);
this.setCondition(condition);
} }
@Override
public void utiliser(Joueur j){
}
public void attaquer(Joueur j) { public void attaquer(Joueur j) {

View File

@ -1,19 +1,15 @@
package personnage; package personnage;
import condition.Condition;
import main.Joueur; import main.Joueur;
public class Charles extends CartePersonnage{ public class Charles extends CartePersonnage{
//attributs
private boolean capaciteUsed;
//constructeur //constructeur
public Charles(String nom, int hp, Joueur joueur,Condition condition,boolean capaciteUsed) { public Charles(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur, condition); super(nom, hp, joueur);
this.capaciteUsed=capaciteUsed;
} }
//méthode //m<EFBFBD>thode
public void attaquer(Joueur j) { public void attaquer(Joueur j) {
} }

View File

@ -4,6 +4,7 @@ import condition.Condition;
import condition.ConditionMultiple; import condition.ConditionMultiple;
import condition.ConditionMultipleOR; import condition.ConditionMultipleOR;
import condition.ConditionStatistiques; import condition.ConditionStatistiques;
import condition.WinConditionHunter;
import main.Joueur; import main.Joueur;
import main.Plateau; import main.Plateau;
@ -22,7 +23,7 @@ public class Daniel extends CartePersonnage{
,new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS, 1, ConditionStatistiques.LESS) ,new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS, 1, ConditionStatistiques.LESS)
) )
// Shadows morts // Shadows morts
,new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE) ,new WinConditionHunter()
); );
this.setCondition(winCondition); this.setCondition(winCondition);
} }

View File

@ -1,18 +1,14 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionHunter;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class Emi extends CartePersonnage{ public class Emi extends CartePersonnage{
//constructeur //constructeur
public Emi(String nom, int hp, Joueur joueur) { public Emi(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur); super(nom, hp, joueur);
int nbShadow = joueur.getPlateau().getStat(Plateau.NB_SHADOWS); this.setCondition(new WinConditionHunter());
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE);
this.setCondition(winCondition);
} }
//m<EFBFBD>thode //m<EFBFBD>thode

View File

@ -1,19 +1,14 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionHunter;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class Franklin extends Unique{ public class Franklin extends Unique{
//constructeur //constructeur
public Franklin(String nom, int hp, Joueur joueur) { public Franklin(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur); super(nom, hp, joueur);
int nbShadow = joueur.getPlateau().getStat(Plateau.NB_SHADOWS); this.setCondition(new WinConditionHunter());
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE);
this.setCondition(winCondition);
} }
//m<EFBFBD>thode //m<EFBFBD>thode

View File

@ -1,20 +1,14 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionHunter;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class Georges extends Unique{ public class Georges extends Unique{
//constructeur //constructeur
public Georges(String nom, int hp, Joueur joueur) { public Georges(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur); super(nom, hp, joueur);
this.setCondition(new WinConditionHunter());
int nbShadow = joueur.getPlateau().getStat(Plateau.NB_SHADOWS);
Condition winCondition = new ConditionStatistiques(ConditionStatistiques.PLATEAU, Plateau.NB_MORTS_SHADOW, nbShadow, ConditionStatistiques.MORE);
this.setCondition(winCondition);
} }
//m<EFBFBD>thode //m<EFBFBD>thode

View File

@ -1,23 +1,14 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionShadow;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class LoupGarou extends CartePersonnage { public class LoupGarou extends CartePersonnage {
//constructeur //constructeur
public LoupGarou(String nom, int hp, Joueur joueur) { public LoupGarou(String nom, int hp, Joueur joueur) {
super(nom, hp, joueur); super(nom, hp, joueur);
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS); this.setCondition(new WinConditionShadow());
Condition winCondition = 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(winCondition);
} }
//m<EFBFBD>thodes //m<EFBFBD>thodes

View File

@ -1,24 +1,13 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionShadow;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class Metamorphe extends CartePersonnage{ public class Metamorphe extends CartePersonnage{
public Metamorphe(String nom, int pv, Joueur joueur) { public Metamorphe(String nom, int pv, Joueur joueur) {
super(nom, pv, joueur); super(nom, pv, joueur);
this.setCondition(new WinConditionShadow());
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition winCondition = 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(winCondition);
} }
} }

View File

@ -1,14 +1,12 @@
package personnage; package personnage;
import condition.Condition; import condition.WinConditionShadow;
import condition.ConditionMultipleOR;
import condition.ConditionStatistiques;
import effet.Action; import effet.Action;
import effet.ActionAltererStatistiquesJoueur; import effet.ActionAltererStatistiquesJoueur;
import effet.Effet; import effet.Effet;
import effet.EffetSelf; import effet.EffetSelf;
import main.Joueur; import main.Joueur;
import main.Plateau;
public class Vampire extends CartePersonnage{ public class Vampire extends CartePersonnage{
@ -18,14 +16,7 @@ public class Vampire extends CartePersonnage{
Action action = new ActionAltererStatistiquesJoueur("HP",2,true); Action action = new ActionAltererStatistiquesJoueur("HP",2,true);
Effet effet = new EffetSelf(action); Effet effet = new EffetSelf(action);
this.setEffet(effet); this.setEffet(effet);
this.setCondition(new WinConditionShadow());
int nbHunter = joueur.getPlateau().getStat(Plateau.NB_HUNTERS);
Condition winCondition = 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(winCondition);
} }
public void utiliser(Joueur j) public void utiliser(Joueur j)