Carte vision donnée

This commit is contained in:
Paul Gross 2020-05-13 12:47:46 +02:00
parent b182af79a4
commit 1f6ee979a1
9 changed files with 109 additions and 22 deletions

View File

@ -41,6 +41,7 @@ public class CartePiochable extends CarteCondition implements Serializable{
/*
* @param j Appel la méthode utiliser de effet sur le joueur j
*/
public void utiliser(Joueur j) {
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
gj.piocher(j,this);

View File

@ -0,0 +1,40 @@
package carte;
import java.io.Serializable;
import condition.Condition;
import effet.EffetChoisirCible;
import effet.action.Action;
import main.GestionnaireJeu;
import main.Joueur;
public class CarteVision extends CartePiochable implements Serializable{
/**
*
*/
private static final long serialVersionUID = 903022795821166067L;
public CarteVision(Action a, Condition c) {
super(Type.VISION, "","");
this.setEffet(new EffetChoisirCible(a));
this.setCondition(c);
}
/*
* @param j le joueur utilisant son effet
*/
@Override
public void utiliser(Joueur j1) {
GestionnaireJeu gj = GestionnaireJeu.getGestionnaireJeu();
gj.piocher(j1,this);
Joueur j2 = j1.choisiParmisTous();
if(this.getCondition().isTrue(j2)) {
this.getEffet().getAction().affecte(j1, j2);
}
}
}

View File

@ -9,6 +9,7 @@ import carte.CarteLieu;
import carte.CarteLieuMultiple;
import carte.CarteLieuType;
import carte.CartePiochable;
import carte.CarteVision;
import condition.ConditionClassPersonnage;
import condition.ConditionEquipe;
import condition.ConditionMultiple;
@ -22,6 +23,7 @@ import effet.EffetSelf;
import effet.action.ActionAltererStatistiquesJoueur;
import effet.action.ActionAltererStatistiquesJoueurRoll;
import effet.action.ActionMultiple;
import effet.action.ActionMultipleChoisir;
import effet.action.ActionReveal;
import effet.action.ActionVoler;
import main.Joueur;
@ -152,6 +154,7 @@ public class CreatingCardsTest {
// Poupé démoniaque
// 26
DatabaseManager.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())
@ -170,21 +173,21 @@ public class CreatingCardsTest {
// Vision clairvoyante
DatabaseManager.queryInsertObject(33, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true)),
DatabaseManager.queryInsertObject(33, new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -1, true),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 11, ConditionStatistiques.LESS)));
// Vision cupide
DatabaseManager.queryInsertObject(34,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(34,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
DatabaseManager.queryInsertObject(35,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(35,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision destructrice
DatabaseManager.queryInsertObject(36, new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true)),
DatabaseManager.queryInsertObject(36, new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, -2, true),
new ConditionStatistiques(ConditionStatistiques.JOUEUR, Joueur.PLAYER_HP, 12, ConditionStatistiques.MORE)));
@ -192,35 +195,35 @@ public class CreatingCardsTest {
// Vision enivrante
DatabaseManager.queryInsertObject(38,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(38,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
DatabaseManager.queryInsertObject(39,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(39,new CarteVision( new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.NEUTRE,CartePersonnage.Equipe.SHADOW)));
// Vision Foudroyante
DatabaseManager.queryInsertObject(40,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
DatabaseManager.queryInsertObject(40,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision furtive
DatabaseManager.queryInsertObject(41,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(41,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
DatabaseManager.queryInsertObject(42,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirEffet(new EffetChoisirCible(new ActionVoler(ActionVoler.DONNER)),new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true))),
DatabaseManager.queryInsertObject(42,new CarteVision(new ActionMultipleChoisir(new ActionVoler(ActionVoler.DONNER),new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
new ConditionEquipe(CartePersonnage.Equipe.HUNTER,CartePersonnage.Equipe.SHADOW)));
// Vision Mortifère
DatabaseManager.queryInsertObject(43,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true)),
DatabaseManager.queryInsertObject(43,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-1,true),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision lugubre
DatabaseManager.queryInsertObject(45,new CartePiochable(CartePiochable.Type.VISION,new EffetChoisirCible(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true)),
DatabaseManager.queryInsertObject(45,new CarteVision(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP,-2,true),
new ConditionEquipe(CartePersonnage.Equipe.SHADOW)));
// Vision réconfortante

View File

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

View File

@ -19,9 +19,12 @@ public class EffetChoisirEffet extends Effet{
@Override
public void utiliser(Joueur joueur) {
Effet effet = (Effet) joueur.choisir(effets,Effet.class);
Effet e = choisirEffet(joueur);
e.utiliser(joueur);
}
effet.utiliser(joueur);
public Effet choisirEffet(Joueur joueur) {
return (Effet) joueur.choisir(effets,Effet.class);
}
}

View File

@ -33,4 +33,9 @@ public class ActionMultiple extends Action{
action.affecte(j1, j2);
}
}
public List<Action> getList(){
return this.actions;
}
}

View File

@ -0,0 +1,24 @@
package effet.action;
import main.Joueur;
public class ActionMultipleChoisir extends ActionMultiple{
public ActionMultipleChoisir(Action...actions) {
super(actions);
}
/**
* Lance l'action d'activer toutes les actions contenues dans ActionMultiple.
* @param j1 Le joueur qui lance l'action
* @param j2 Le joueur qui subit l'action
* @return void
*/
@Override
public void affecte(Joueur j1, Joueur j2) {
Action a = (Action) j1.choisir(this.getList(), Action.class);
a.affecte(j1, j2);
}
}

View File

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

View File

@ -368,13 +368,22 @@ public class PlateauController implements Initializable {
JoueurIHM jihm = getJoueurIHM(j);
Pane pane = (Pane) jihm.getZoneJoueur().getChildren().get(0);
Pane p = (Pane) jihm.getZoneJoueur();
Pane pane = null;
if(p.getChildren() != null && p.getChildren().size() > 0) {
pane = (Pane) p.getChildren().get(0);
}
jihm.setZoneJoueur(root);
Pane pp = pane;
Timeline timeline = new Timeline(new KeyFrame(
Duration.millis(1000),
ae -> {
jihm.resetZoneJoueur();
jihm.setZoneJoueur(pane);
jihm.setZoneJoueur(pp);
GestionnaireJeu.notifyPlateau();
}));
timeline.play();