Voler équipements

This commit is contained in:
Paul Gross
2020-05-11 15:19:41 +02:00
parent 4d0d06de12
commit 77f7f3e0d9
7 changed files with 36 additions and 33 deletions

View File

@@ -109,7 +109,18 @@ public class GestionnaireJeu {
return false;
}
public CarteEquipement choisirEquipementVole(Joueur joueur) {
@SuppressWarnings("unchecked")
public Object choisir(Joueur joueur, List<?> list, Class<?> cls) {
if(cls == CarteEquipement.class) {
return choisirEquipementVole(joueur, (List<CarteEquipement>) list);
}
return list.get(0);
}
public CarteEquipement choisirEquipementVole(Joueur joueur, List<CarteEquipement> lce) {
Platform.runLater(() -> {
try {
pc.afficherChoisirEquipementVole(joueur);
@@ -140,7 +151,6 @@ public class GestionnaireJeu {
}
public void waitPlateau() {
synchronized(plateau) {
try {
plateau.wait();
@@ -204,10 +214,5 @@ public class GestionnaireJeu {
public RessourceLoader getRessourceLoader() {
return this.ressourceLoader;
}
}
}

View File

@@ -4,7 +4,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import carte.Carte;
import carte.CarteEquipement;
import carte.CarteLieu;
import effet.Effet;
@@ -226,24 +225,25 @@ public class Joueur {
}
public boolean hasOpponents() {
List<Joueur> joueursRange = this.getJoueursRange();
return !joueursRange.isEmpty();
}
public List<Joueur> getJoueursRange() {
CarteLieu cl = this.carteLieu;
List<Joueur> joueurs = new ArrayList<Joueur>();
joueurs.addAll(cl.getJoueurs());
joueurs.addAll(cl.getJoueursAdjacents());
joueurs.remove(this);
return !joueurs.isEmpty();
return joueurs;
}
public boolean choisir() {
return this.plateau.choisir(this);
}
public Object choisir(List<?> list) {
return list.get(0);
public Object choisir(List<?> adjacents,Class cls) {
return this.plateau.choisir(this,adjacents, cls);
}
public Joueur choisirAdjacents() {
@@ -254,4 +254,5 @@ public class Joueur {
return this.plateau.choisirParmisTous(this);
}
}

View File

@@ -8,6 +8,7 @@ import java.util.List;
import java.util.Map;
import carte.Carte;
import carte.CarteEquipement;
import carte.CarteLieu;
import carte.CarteLieuMultiple;
import carte.CarteLieuType;
@@ -265,6 +266,7 @@ public class Plateau extends Thread{
while(true) {
Joueur currentJoueur = this.joueurs.get(i % nbJoueurs);
currentJoueur.choisir(new ArrayList<CarteEquipement>(), CarteEquipement.class);
System.out.println("\n\n\n\n\n");
System.out.println("Au tour de "+currentJoueur.getNom());
System.out.println("Lancement des dés.");
@@ -287,8 +289,8 @@ public class Plateau extends Thread{
System.out.println("Souhaitez vous attaquer quelqu'un ?");
if(currentJoueur.choisir()){
if(currentJoueur.hasOpponents()) {
List<Joueur> adjacents = currentJoueur.getJoueursAdjacents();
Joueur cible = (Joueur) currentJoueur.choisir(adjacents);
List<Joueur> adjacents = currentJoueur.getJoueursRange();
Joueur cible = (Joueur) currentJoueur.choisir(adjacents,Joueur.class);
attaquer(currentJoueur,cible);
if(isPartieTerminee()) break;
}else {
@@ -459,4 +461,8 @@ public class Plateau extends Thread{
gj.updateVieJoueur(joueur,damage);
}
public Object choisir(Joueur joueur, List<?> list, Class cls) {
return gj.choisir(joueur,list,cls);
}
}