Ajout des classes Effets, modification Joueur

This commit is contained in:
Paul Gross 2020-04-18 13:18:21 +02:00
parent 080e3d264d
commit 76bf870241
14 changed files with 264 additions and 35 deletions

View File

@ -6,6 +6,24 @@ public class ActionAltererStatistiquesJoueur {
private int valeur; private int valeur;
private boolean ajouter; private boolean ajouter;
/**
* Constructeur ActionAltererStatistiquesJoueur
* @param key Le clé qui correspond à la valeur à modifier
* @param valeur La valeur
* @param ajouter Permet d'ajouter ou non "valeur" à la valeur précendente
* <br><br>
* Exemple :
* <br><br>
* ActionAltererStatistiquesJoueur("PV", -2, true)
* <br>
* Fait subir 2 PV's de dégâts au joueur
* <br><br>
* ActionAltererStatistiquesJoueur("PV", 2, false)
* <br>
* Change les PV's du joueur à 2
*
*/
public ActionAltererStatistiquesJoueur(String key, int valeur, boolean ajouter) public ActionAltererStatistiquesJoueur(String key, int valeur, boolean ajouter)
{ {
this.key = key; this.key = key;
@ -13,6 +31,13 @@ public class ActionAltererStatistiquesJoueur {
this.ajouter = ajouter; this.ajouter = ajouter;
} }
/**
* Lance l'action de modification de statistiques
* @param j1 Le joueur qui modifie
* @param j2 Le joueur dont les statistiques sont modifiées
* @return void
*/
public void affecter(Joueur j1, Joueur j2) public void affecter(Joueur j1, Joueur j2)
{ {
if(ajouter) if(ajouter)
@ -21,7 +46,6 @@ public class ActionAltererStatistiquesJoueur {
}else { }else {
j2.setStat(key, valeur); j2.setStat(key, valeur);
} }
} }
} }

View File

@ -0,0 +1,18 @@
package effet;
import main.Joueur;
public class ActionAttaquer extends Action {
/**
* Lance l'action d'attaquer
* @param j1 Le joueur qui attaque
* @param j2 Le joueur qui subit l'attaque
* @return void
*/
@Override
public void affecte(Joueur j1, Joueur j2) {
j1.attaquer(j2);
}
}

View File

@ -1,13 +1,33 @@
package effet; package effet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
public class ActionMultiple { import main.Joueur;
public class ActionMultiple extends Action{
private List<Action> actions; private List<Action> actions;
public ActionMultiple(Action...actions) public ActionMultiple(Action...actions)
{ {
super();
this.actions = new ArrayList<Action>(Arrays.asList(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) {
for(Action action : actions) {
action.affecte(j1, j2);
}
} }
} }

View File

@ -0,0 +1,22 @@
package effet;
import main.Joueur;
public class ActionPiocher extends Action{
public ActionPiocher() {
super();
}
/**
* Lance l'action de piocher une carte.
* @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) {
j2.piocher();
}
}

View File

@ -0,0 +1,28 @@
package effet;
import java.util.List;
import main.Equipement;
import main.Joueur;
public class ActionVoler extends Action{
/**
* Lance l'action de voler une carte équipement.
* @param j1 Le joueur qui vol
* @param j2 Le joueur volé
* @return void
*/
@Override
public void affecte(Joueur j1, Joueur j2) {
List<Equipement> equipements = j2.getEquipements();
// J1 choisit quel équipement voler
Equipement equipement = j1.choisir(equipements);
j1.voler(j2,equipement);
}
}

View File

@ -0,0 +1,21 @@
package effet;
import main.Joueur;
public class EffetChoisirCible extends Effet{
public EffetChoisirCible(Action action) {
super(action);
}
@Override
public void utiliser(Joueur joueur) {
Joueur j2 = joueur.choisirAdjacents();
Action action = this.getAction();
action.affecte(joueur, j2);
}
}

View File

@ -0,0 +1,22 @@
package effet;
import main.Joueur;
public class EffetChoisirEffet extends Effet{
private Effet[] effets;
public EffetChoisirEffet(Effet ...effets) {
super(null);
this.effets = effets;
}
@Override
public void utiliser(Joueur joueur) {
Effet effet = joueur.choisir(effets);
effet.utiliser(joueur);
}
}

View File

@ -2,7 +2,12 @@ package effet;
import main.Joueur; import main.Joueur;
import java.util.List; import java.util.List;
public class EffetCiblerAdjacents extends EffetTarget{ public class EffetCiblerAdjacents extends Effet{
public EffetCiblerAdjacents(Action action) {
super(action);
}
@Override @Override
public void utiliser(Joueur joueur) public void utiliser(Joueur joueur)

View File

@ -0,0 +1,26 @@
package effet;
import java.util.List;
import main.Joueur;
import main.Plateau;
public class EffetCiblerTous extends Effet {
public EffetCiblerTous(Action action) {
super(action);
}
@Override
public void utiliser(Joueur joueur) {
Plateau p = joueur.getPlateau();
List<Joueur> joueurs = p.getJoueurs();
Action action = this.getAction();
for(Joueur j : joueurs)
{
action.affecte(joueur, j);
}
}
}

View File

@ -4,9 +4,12 @@ import main.Joueur;
public class EffetSelf extends Effet{ public class EffetSelf extends Effet{
public EffetSelf(Action action) {
super(action);
}
@Override @Override
public void utiliser(Joueur joueur) { public void utiliser(Joueur joueur) {
this.getAction().affecte(joueur, joueur); this.getAction().affecte(joueur, joueur);
} }

View File

@ -1,9 +0,0 @@
package effet;
import main.Joueur;
public abstract class EffetTarget extends Effet{
public abstract void utiliser(Joueur joueur);
}

View File

@ -3,12 +3,16 @@ 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;
public class Joueur { public class Joueur {
private GestionnaireEquipements gestionnaireEquipements; private GestionnaireEquipements gestionnaireEquipements;
private String name; private String nom;
private boolean revealed; private boolean revele;
private boolean virtual;
private Plateau plateau; private Plateau plateau;
// map keys // map keys
@ -21,10 +25,10 @@ public class Joueur {
private Map<String, Integer> stats; private Map<String, Integer> stats;
public Joueur(String name) { public Joueur(String nom) {
this.name = name; this.nom = nom;
this.revealed = false; this.revele = false;
this.virtual = false;
stats = new HashMap<>(); stats = new HashMap<>();
@ -40,10 +44,6 @@ public class Joueur {
// immunité à certains effets? // immunité à certains effets?
} }
public void setVirtual() {
this.virtual = true;
}
//shadows, hunters ou neutre //shadows, hunters ou neutre
public String getEquipe() { public String getEquipe() {
return null; return null;
@ -67,6 +67,47 @@ public class Joueur {
return null; return null;
} }
public List<Equipement> getEquipements() {
// TODO Auto-generated method stub
return null;
}
public void voler(Joueur j2, Equipement equipement) {
// TODO Auto-generated method stub
}
public Equipement choisir(Equipement[] equipements) {
// TODO Auto-generated method stub
return null;
}
public void piocher() {
// TODO Auto-generated method stub
}
public void attaquer(Joueur j2) {
// TODO Auto-generated method stub
}
public Plateau getPlateau() {
return this.plateau;
}
public Joueur choisirAdjacents() {
// TODO Auto-generated method stub
return null;
}
public Effet choisir(Effet[] effets) {
// TODO Auto-generated method stub
return null;
}
public boolean getRevele() {
return this.revele;
}
} }

View File

@ -56,9 +56,6 @@ public class Plateau {
} }
public void choix(Choix choix) {
return 0;
}
public Joueur selectionnerJoueur() { public Joueur selectionnerJoueur() {
return new Joueur("0"); return new Joueur("0");
@ -84,4 +81,8 @@ public class Plateau {
public int roll6() { public int roll6() {
return (int) Math.floor(Math.random() * 5)+1; return (int) Math.floor(Math.random() * 5)+1;
} }
public List<Joueur> getJoueurs() {
return this.joueurs;
}
} }

View File

@ -16,14 +16,21 @@ public class Vampire extends CartePersonnage{
public void utiliser(Joueur j) public void utiliser(Joueur j)
{ {
//this.getEffet().utiliser() this.getEffet().utiliser(j);
} }
//m<EFBFBD>thode /**
* Lance l'action d'attaquer de Vampire
* <br><br> Efffet :
* @param j Le joueur qui subit l'attaque
* @return void
*/
public void attaquer(Joueur j) { public void attaquer(Joueur j) {
// attaquer(j) super.attaquer(j);
//utiliser(this.joueur); if(this.getJoueur().getRevele())
{
utiliser(this.getJoueur());
}
} }
} }