Changement des classes types par des enum

This commit is contained in:
Paul Gross 2020-05-06 16:15:36 +02:00
parent 1b554ad75c
commit 24cc4909bf
14 changed files with 152 additions and 128 deletions

View File

@ -1,19 +1,20 @@
package carte;
import effet.Effet;
import main.Joueur;
import main.Type;
public abstract class CarteEquipement<T extends Type> extends CartePiochable<Type>{
public abstract class CarteEquipement extends CartePiochable{
/**
*
*/
private static final long serialVersionUID = 7537771209935892801L;
public CarteEquipement(String nom, String description) {
super(nom, description);
// TODO Auto-generated constructor stub
public CarteEquipement(Type t, Effet effet) {
super(t, effet);
}
public void utiliser(Joueur j) {

View File

@ -1,12 +1,15 @@
package carte;
import effet.Effet;
import main.Joueur;
import main.Type;
public class CarteEquipementEffet<T extends Type> extends CarteEquipement<Type> {
public class CarteEquipementEffet extends CarteEquipement {
public CarteEquipementEffet(String nom, String description) {
super(nom, description);
public CarteEquipementEffet(Type t, Effet effet) {
super(t, effet);
// TODO Auto-generated constructor stub
}
/**

View File

@ -4,30 +4,28 @@ import condition.Condition;
import effet.Effet;
import effet.action.ActionAltererStatistiquesJoueur;
import main.Joueur;
import main.Type;
public class CarteEquipementStat<T extends Type> extends CarteEquipement<Type>{
public class CarteEquipementStat extends CarteEquipement{
public CarteEquipementStat(Type t, Effet effet) {
super(t, effet);
}
public CarteEquipementStat(Type t, Effet effet, Condition condition) {
super(t, effet);
this.setCondition(condition);
}
/**
*
*/
private static final long serialVersionUID = 1602387056611454284L;
public CarteEquipementStat(String nom, String description) {
super(nom, description);
}
public CarteEquipementStat(Effet effet, Condition condition) {
super("","");
this.setEffet(effet);
this.setCondition(condition);
}
public CarteEquipementStat(Effet effet) {
super("","");
this.setEffet(effet);
this.setCondition(new Condition());
}
@Override
public void reverse(Joueur j) {

View File

@ -4,24 +4,28 @@ import java.awt.Point;
import main.Joueur;
import main.Pioche;
import main.Type;
public class CarteLieuType<T extends Type> extends CarteLieu{
public class CarteLieuType extends CarteLieu{
private Pioche<T> pioche;
/**
*
*/
private static final long serialVersionUID = -497959392470353155L;
private Pioche pioche;
private CartePiochable.Type type;
public CarteLieuType(String name, String description ,Point coordinates,Pioche<T> pioche) {
public CarteLieuType(CartePiochable.Type type,String name, String description ,Point coordinates,Pioche pioche) {
super(name , description , coordinates);
this.type = type;
this.pioche = pioche;
}
/*
* @param j Appel la méthode utiliser de effet sur le joueur j
*/
public void utiliser(Joueur j) {
CartePiochable<?> carte = pioche.piocher();
CartePiochable carte = pioche.piocher();
carte.utiliser(j);
}

View File

@ -4,28 +4,33 @@ import java.io.Serializable;
import condition.Condition;
import effet.Effet;
import effet.EffetChoisirCible;
import effet.EffetSelf;
import main.Joueur;
import main.Type;
public class CartePiochable<T extends Type> extends CarteCondition implements Serializable{
public class CartePiochable extends CarteCondition implements Serializable{
private static final long serialVersionUID = 2391013233873750967L;
private Type type;
public CartePiochable(String nom, String description) {
public enum Type{
LUMIERE,
TENEBRE,
VISION
}
public CartePiochable(Type t, String nom, String description) {
super(nom, description);
}
public CartePiochable(Effet e, Condition c) {
public CartePiochable(Type t, Effet e, Condition c) {
super();
this.setEffet(e);
this.setCondition(c);
}
public CartePiochable(Effet effet) {
public CartePiochable(Type t, Effet effet) {
super();
this.type = t;
this.setEffet(effet);
this.setCondition(new Condition());
}
@ -37,4 +42,8 @@ public class CartePiochable<T extends Type> extends CarteCondition implements Se
super.utiliser(j);
}
public Type getType() {
return type;
}
}

View File

@ -44,25 +44,25 @@ public class CreatingCardsTest {
//Ange gardien
try {
QueryGenerator.queryInsertObject(2,new CartePiochable<TypeLumiere>(
QueryGenerator.queryInsertObject(2,new CartePiochable(CartePiochable.Type.LUMIERE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_IMMUNITY, 1, true))));
//Avénement suprême
QueryGenerator.queryInsertObject(3,new CartePiochable<TypeLumiere>(
QueryGenerator.queryInsertObject(3,new CartePiochable(CartePiochable.Type.LUMIERE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true))
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
));
//Barre de chocolat
QueryGenerator.queryInsertObject(4,new CartePiochable<TypeLumiere>(
QueryGenerator.queryInsertObject(4,new CartePiochable(CartePiochable.Type.LUMIERE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true))
,new ConditionMultiple(new ConditionClassPersonnage(Allie.class,Emi.class,Metamorphe.class), new ConditionReveal())
));
//Bénédiction
QueryGenerator.queryInsertObject(5,new CartePiochable<TypeLumiere>(new EffetChoisirCible(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,6, true))));
QueryGenerator.queryInsertObject(5,new CartePiochable(CartePiochable.Type.LUMIERE,new EffetChoisirCible(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,6, true))));
// BOUSSOLE mystique
@ -73,58 +73,58 @@ public class CreatingCardsTest {
// 8
// Eau bénite
QueryGenerator.queryInsertObject(9,new CartePiochable<TypeLumiere>(new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
QueryGenerator.queryInsertObject(10,new CartePiochable<TypeLumiere>(new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
QueryGenerator.queryInsertObject(9,new CartePiochable(CartePiochable.Type.LUMIERE,new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
QueryGenerator.queryInsertObject(10,new CartePiochable(CartePiochable.Type.LUMIERE,new EffetSelf(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP,2, true))));
// Eclair purificateur
QueryGenerator.queryInsertObject(11,new CartePiochable<TypeLumiere>(new EffetCiblerTous(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP, -2, true))));
QueryGenerator.queryInsertObject(11,new CartePiochable(CartePiochable.Type.LUMIERE,new EffetCiblerTous(new ActionAltererStatistiquesJoueurRoll(Joueur.PLAYER_HP, -2, true))));
// Lance de longinus
QueryGenerator.queryInsertObject(12,new CarteEquipementStat<TypeLumiere>(
QueryGenerator.queryInsertObject(12,new CarteEquipementStat(CartePiochable.Type.LUMIERE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true))
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.HUNTER), new ConditionReveal())
));
// Miroir divin
QueryGenerator.queryInsertObject(13,new CartePiochable<TypeLumiere>(new EffetSelf(new ActionReveal()),new ConditionClassPersonnage(Vampire.class,LoupGarou.class)));
QueryGenerator.queryInsertObject(13,new CartePiochable(CartePiochable.Type.LUMIERE,new EffetSelf(new ActionReveal()),new ConditionClassPersonnage(Vampire.class,LoupGarou.class)));
// Premiers secours
QueryGenerator.queryInsertObject(14, new CartePiochable<TypeLumiere>(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 7, false))));
QueryGenerator.queryInsertObject(14, new CartePiochable(CartePiochable.Type.LUMIERE,new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 7, false))));
//Savoir ancestral
QueryGenerator.queryInsertObject(15, new CartePiochable<TypeLumiere>(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_TURN, 1, true))));
QueryGenerator.queryInsertObject(15, new CartePiochable(CartePiochable.Type.LUMIERE,new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_TURN, 1, true))));
//Toge sainte
QueryGenerator.queryInsertObject(16, new CartePiochable<TypeLumiere>(new EffetSelf(new ActionMultiple(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_RESISTANCE, 1, true),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, -1, true)))));
QueryGenerator.queryInsertObject(16, new CartePiochable(CartePiochable.Type.LUMIERE,new EffetSelf(new ActionMultiple(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_RESISTANCE, 1, true),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, -1, true)))));
// Ténèbre
// Araignée Sanguinaire
QueryGenerator.queryInsertObject(17, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
QueryGenerator.queryInsertObject(17, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)))));
// Chauve - souris vampire
QueryGenerator.queryInsertObject(18, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
QueryGenerator.queryInsertObject(18, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
QueryGenerator.queryInsertObject(19, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
QueryGenerator.queryInsertObject(19, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
QueryGenerator.queryInsertObject(20, new CartePiochable<TypeTenebre>(new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
QueryGenerator.queryInsertObject(20, new CartePiochable(CartePiochable.Type.TENEBRE,new EffetMultiple(new EffetCiblerTous(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 1, true)))));
// Dynamite
@ -133,11 +133,11 @@ public class CreatingCardsTest {
// Hache tueuse
QueryGenerator.queryInsertObject(22,new CarteEquipementStat<TypeTenebre>(
QueryGenerator.queryInsertObject(22,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
// Hachoir maudit
QueryGenerator.queryInsertObject(23,new CarteEquipementStat<TypeTenebre>(
QueryGenerator.queryInsertObject(23,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
@ -150,39 +150,39 @@ public class CreatingCardsTest {
// Poupé démoniaque
// 26
QueryGenerator.queryInsertObject(28,new CartePiochable<TypeTenebre>(
QueryGenerator.queryInsertObject(28,new CartePiochable(CartePiochable.Type.TENEBRE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 20, true))
,new ConditionMultiple(new ConditionEquipe(CartePersonnage.Equipe.SHADOW), new ConditionReveal())
));
// 29
QueryGenerator.queryInsertObject(30,new CartePiochable<TypeTenebre>(
QueryGenerator.queryInsertObject(30,new CartePiochable(CartePiochable.Type.TENEBRE,
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
QueryGenerator.queryInsertObject(31,new CartePiochable<TypeTenebre>(
QueryGenerator.queryInsertObject(31,new CartePiochable(CartePiochable.Type.TENEBRE,
new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER))));
QueryGenerator.queryInsertObject(32,new CarteEquipementStat<TypeTenebre>(
QueryGenerator.queryInsertObject(32,new CarteEquipementStat(CartePiochable.Type.TENEBRE,
new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 1, true))));
// Vision clairvoyante
QueryGenerator.queryInsertObject(33, new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true)),
QueryGenerator.queryInsertObject(33, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true)),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS)));
// Vision cupide
QueryGenerator.queryInsertObject(34,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(34,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
QueryGenerator.queryInsertObject(35,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(35,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision destructrice
QueryGenerator.queryInsertObject(36, new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
QueryGenerator.queryInsertObject(36, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 12, ConditionStatistiques.MORE)));
@ -190,35 +190,35 @@ public class CreatingCardsTest {
// Vision enivrante
QueryGenerator.queryInsertObject(38,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(38,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
QueryGenerator.queryInsertObject(39,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(39,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision Foudroyante
QueryGenerator.queryInsertObject(40,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
QueryGenerator.queryInsertObject(40,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision furtive
QueryGenerator.queryInsertObject(41,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(41,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
QueryGenerator.queryInsertObject(42,new CartePiochable<TypeVision>(new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
QueryGenerator.queryInsertObject(42,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
// Vision Mortifère
QueryGenerator.queryInsertObject(43,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
QueryGenerator.queryInsertObject(43,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision lugubre
QueryGenerator.queryInsertObject(45,new CartePiochable<TypeVision>(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
QueryGenerator.queryInsertObject(45,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision réconfortante

View File

@ -7,13 +7,13 @@ import java.util.HashMap;
import java.util.Map;
import carte.Carte;
import carte.CartePiochable;
public class RessourceLoader {
private static Map<Integer, Carte> loadCards() throws ClassNotFoundException, IOException{
Table t = new Table();
Map<Integer, Carte> cartes = new HashMap<Integer,Carte>();
for(int i = 0; i < 61; i++) {
@ -30,6 +30,27 @@ public class RessourceLoader {
return cartes;
}
private static Map<Integer, CartePiochable> getMapType(CartePiochable.Type t, Map<Integer, Carte> cartes){
Map<Integer, CartePiochable> cartesType = new HashMap<Integer, CartePiochable>();
for(Integer i: cartes.keySet()) {
Carte c = cartes.get(i);
if(cartes.get(i) instanceof CartePiochable) {
CartePiochable carte = (CartePiochable) c;
CartePiochable.Type type = carte.getType();
if(t == type) {
cartesType.put(i,carte);
}
}
}
return cartesType;
}
public static Object deserialize(byte[] data) throws IOException, ClassNotFoundException {
ByteArrayInputStream in = new ByteArrayInputStream(data);
@ -42,6 +63,8 @@ public class RessourceLoader {
try {
Map<Integer, Carte> cartes = loadCards();
System.out.println(cartes);
System.out.println(getMapType(CartePiochable.Type.TENEBRE, cartes));
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}

View File

@ -1,34 +1,14 @@
package database;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import carte.Carte;
import carte.CartePiochable;
import condition.Condition;
import effet.EffetSelf;
import effet.action.ActionAltererStatistiquesJoueur;
import main.Joueur;
public class TestAddingCard {
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
private final static String user = "shManager";
private final static String password = "shadowhunter1234";
/*
public static void main(String[] args) {
CartePiochable<?> instance = new CartePiochable(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)), new Condition());
CartePiochable instance = new CartePiochable(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)), new Condition());
try {
insertCartePiochable(instance);
@ -81,5 +61,5 @@ public class TestAddingCard {
ObjectInputStream is = new ObjectInputStream(in);
return (CartePiochable<?>) is.readObject();
}
}*/
}

View File

@ -38,7 +38,7 @@ public class ActionVoler extends Action{
List<CarteEquipement> equipements = j2.getEquipements();
// J1 choisit quel équipement voler
CarteEquipement<?> equipement = j1.choisir(equipements);
CarteEquipement equipement = j1.choisir(equipements);
j1.voler(j2,equipement);
}else {
@ -46,7 +46,7 @@ public class ActionVoler extends Action{
List<CarteEquipement> equipements = j1.getEquipements();
// J1 choisit quel équipement voler
CarteEquipement<?> equipement = j1.choisir(equipements);
CarteEquipement equipement = j1.choisir(equipements);
j2.voler(j1,equipement);

View File

@ -6,13 +6,19 @@ import java.util.Stack;
import carte.CartePiochable;
public class Pioche<T extends Type> {
public class Pioche {
private Stack<CartePiochable<T>> cartesPiochables;
private Stack<CartePiochable> cartesPiochables;
private CartePiochable.Type type;
public Pioche(List<CartePiochable<T>> cartesPiochables) {
public Pioche(List<CartePiochable> cartesPiochables) {
}
public Pioche(CartePiochable.Type type, List<CartePiochable> list1) {
super();
this.cartesPiochables = new Stack<CartePiochable<T>>();
this.type = type;
this.cartesPiochables = new Stack<CartePiochable>();
this.cartesPiochables.addAll(cartesPiochables);
melanger();
}
@ -22,7 +28,7 @@ public class Pioche<T extends Type> {
Collections.shuffle(cartesPiochables);
}
public CartePiochable<?> piocher() {
public CartePiochable piocher() {
return cartesPiochables.pop();
}
}

View File

@ -61,31 +61,31 @@ public class Plateau extends Thread{
this.stats.put(NB_SHADOWS, 0);
this.stats.put(NB_NEUTRES, 0);
List<CartePiochable<TypeLumiere>> list1 = new ArrayList<>();
List<CartePiochable<TypeTenebre>> list2 = new ArrayList<>();
List<CartePiochable> list1 = new ArrayList<>();
List<CartePiochable> list2 = new ArrayList<>();
for(int i = 0; i < 60; i++) {
CartePiochable<TypeLumiere> carte1 = new CartePiochable<TypeLumiere>("Eau bénite", "Soin 2");
CartePiochable carte1 = new CartePiochable(CartePiochable.Type.LUMIERE,"Eau bénite", "Soin 2");
carte1.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)));
list1.add(carte1);
CartePiochable<TypeTenebre> carte2 = new CartePiochable<TypeTenebre>("Eau maudite", "Damage 2");
CartePiochable carte2 = new CartePiochable(CartePiochable.Type.TENEBRE,"Eau maudite", "Damage 2");
carte2.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)));
list2.add(carte2);
}
Pioche<TypeLumiere> piocheLumiere = new Pioche<TypeLumiere>(list1);
Pioche<TypeTenebre> piocheTenebre = new Pioche<TypeTenebre>(list2);
Pioche piocheLumiere = new Pioche(list1);
Pioche piocheTenebre = new Pioche(list2);
CarteLieu lieu1 = new CarteLieuType<TypeTenebre>("Antre de l'Ermite","desc",new Point(2,3),piocheTenebre);
CarteLieu lieu2 = new CarteLieuType<TypeTenebre>("Cimetière","desc",new Point(-1,8),piocheTenebre);
CarteLieu lieu1 = new CarteLieuType(CartePiochable.Type.TENEBRE,"Antre de l'Ermite","desc",new Point(2,3),piocheTenebre);
CarteLieu lieu2 = new CarteLieuType(CartePiochable.Type.TENEBRE,"Cimetière","desc",new Point(-1,8),piocheTenebre);
CarteLieu lieu3 = new CarteLieu("Forêt hantée","desc",new Point(-1,9));
lieu3.setEffet(new EffetChoisirEffet(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true))));
CarteLieu lieu4 = new CarteLieuType<TypeLumiere>("Monastère","desc",new Point(-1,6),piocheLumiere);
CarteLieu lieu4 = new CarteLieuType(CartePiochable.Type.LUMIERE,"Monastère","desc",new Point(-1,6),piocheLumiere);
CarteLieu lieu5 = new CarteLieuType<TypeTenebre>("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu5 = new CarteLieuType(CartePiochable.Type.TENEBRE,"Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)));

View File

@ -51,7 +51,7 @@ class GestionnaireEquipementsTest {
for(int i = 0; i < 20; i++) {
CarteEquipementStat es = new CarteEquipementStat("AddDamage", "desc");
CarteEquipementStat es = new CarteEquipementStat(null,null);
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);
@ -67,7 +67,7 @@ class GestionnaireEquipementsTest {
for(int i = 0; i < 20; i++) {
CarteEquipementStat es = new CarteEquipementStat("AddDamage", "desc");
CarteEquipementStat es = new CarteEquipementStat(null,null);
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);
@ -81,7 +81,7 @@ class GestionnaireEquipementsTest {
int valeurEffet = 3;
CarteEquipementStat es = new CarteEquipementStat("AddDamage", "desc");
CarteEquipementStat es = new CarteEquipementStat(null,null);
es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true)));
es.setCondition(new Condition());
j1.ajouterEquipement(es);

View File

@ -237,9 +237,9 @@ public class IATest {
public void choixEquipementTest() {
//setup
List<CarteEquipement> equips = new ArrayList<>();
equips.add(new CarteEquipementEffet("lol","mdr"));
equips.add(new CarteEquipementEffet("lol1","mdr1"));
equips.add(new CarteEquipementStat("lol2","mdr2"));
equips.add(new CarteEquipementEffet(null,null));
equips.add(new CarteEquipementEffet(null,null));
equips.add(new CarteEquipementStat(null,null));
//on choisit l'equipement avec les stat en priorite
assertTrue(jIA.choisirEquipement(equips) instanceof CarteEquipementStat);

View File

@ -54,33 +54,33 @@ class PlateauTest {
p = new Plateau(joueurs);
List<CartePiochable<TypeLumiere>> list1 = new ArrayList<>();
List<CartePiochable<TypeTenebre>> list2 = new ArrayList<>();
List<CartePiochable> list1 = new ArrayList<>();
List<CartePiochable> list2 = new ArrayList<>();
for(int i = 0; i < 60; i++) {
CartePiochable<TypeLumiere> carte1 = new CartePiochable<TypeLumiere>("Eau bénite", "Soin 2");
CartePiochable carte1 = new CartePiochable(CartePiochable.Type.LUMIERE,"Eau bénite", "Soin 2");
carte1.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)));
list1.add(carte1);
CartePiochable<TypeTenebre> carte2 = new CartePiochable<TypeTenebre>("Eau maudite", "Damage 2");
CartePiochable carte2 = new CartePiochable(CartePiochable.Type.TENEBRE,"Eau maudite", "Damage 2");
carte2.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)));
list2.add(carte2);
}
Pioche<TypeLumiere> piocheLumiere = new Pioche<TypeLumiere>(list1);
Pioche<TypeTenebre> piocheTenebre = new Pioche<TypeTenebre>(list2);
Pioche piocheLumiere = new Pioche(CartePiochable.Type.LUMIERE,list1);
Pioche piocheTenebre = new Pioche(CartePiochable.Type.TENEBRE,list2);
CarteLieu lieu1 = new CarteLieuType<TypeTenebre>("Antre de l'Ermite","desc",new Point(2,3),piocheTenebre);
CarteLieu lieu2 = new CarteLieuType<TypeTenebre>("Cimetière","desc",new Point(-1,8),piocheTenebre);
CarteLieu lieu1 = new CarteLieuType(CartePiochable.Type.TENEBRE,"Antre de l'Ermite","desc",new Point(2,3),piocheTenebre);
CarteLieu lieu2 = new CarteLieuType(CartePiochable.Type.TENEBRE,"Cimetière","desc",new Point(-1,8),piocheTenebre);
CarteLieu lieu3 = new CarteLieu("Forêt hantée","desc",new Point(-1,9));
lieu3.setEffet(new EffetChoisirEffet(new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,1,true))));
CarteLieu lieu4 = new CarteLieuType<TypeLumiere>("Monastère","desc",new Point(-1,6),piocheLumiere);
CarteLieu lieu4 = new CarteLieuType(CartePiochable.Type.LUMIERE,"Monastère","desc",new Point(-1,6),piocheLumiere);
CarteLieu lieu5 = new CarteLieuType<TypeTenebre>("Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu5 = new CarteLieuType(CartePiochable.Type.LUMIERE,"Sanctuaire Ancien","desc",new Point(4,5),piocheTenebre);
CarteLieu lieu6 = new CarteLieu("Sanctuaire Ancien","desc",new Point(-1,9));
lieu6.setEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.VOLER)));