PlateauTest2 déplacement des pions
This commit is contained in:
parent
afaef5411b
commit
80a0c89d49
@ -1,9 +1,12 @@
|
||||
package ihm.controller;
|
||||
|
||||
import carte.CarteLieu;
|
||||
import javafx.scene.layout.FlowPane;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.paint.Color;
|
||||
import main.Joueur;
|
||||
|
||||
public class GestionnaireDePions {
|
||||
|
||||
@ -11,10 +14,12 @@ public class GestionnaireDePions {
|
||||
private Pion pionLieu;
|
||||
|
||||
private GridPane gridPaneVie;
|
||||
private GridPane gridPaneLieux;
|
||||
|
||||
public GestionnaireDePions(Color color,GridPane gridPaneVie) {
|
||||
public GestionnaireDePions(Color color,GridPane gridPaneVie,GridPane gridPaneLieux) {
|
||||
|
||||
this.gridPaneVie = gridPaneVie;
|
||||
this.gridPaneLieux = gridPaneLieux;
|
||||
this.pionVie = new Pion(color);
|
||||
this.pionLieu = new Pion(color);
|
||||
}
|
||||
@ -33,7 +38,28 @@ public class GestionnaireDePions {
|
||||
fpNew.getChildren().add(pionVie);
|
||||
}
|
||||
|
||||
public void deplacerPionLieux() {
|
||||
public void deplacerPionLieux(Joueur j) {
|
||||
|
||||
CarteLieu cl = j.getCarteLieu();
|
||||
int indexCL = j.getPlateau().getLieux().indexOf(cl);
|
||||
HBox hbox;
|
||||
System.out.println("GridPaneLieux "+this.gridPaneLieux);
|
||||
if(indexCL < 2) {
|
||||
hbox = (HBox) this.gridPaneLieux.getChildren().get(0);
|
||||
|
||||
}else if(indexCL < 4) {
|
||||
hbox = (HBox) this.gridPaneLieux.getChildren().get(1);
|
||||
|
||||
}else {
|
||||
hbox = (HBox) this.gridPaneLieux.getChildren().get(2);
|
||||
|
||||
}
|
||||
|
||||
StackPane sp = (StackPane) hbox.getChildren().get(indexCL%2);
|
||||
FlowPane fp = (FlowPane) sp.getChildren().get(0);
|
||||
fp.getChildren().add(this.pionLieu);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -22,13 +22,13 @@ public class JoueurIHM {
|
||||
private GestionnaireDePions gestionnaireDePions;
|
||||
private Color color;
|
||||
|
||||
public JoueurIHM(int i, Joueur joueur, Pane zoneJoueur, Color color, GridPane gridPaneVie) {
|
||||
public JoueurIHM(int i, Joueur joueur, Pane zoneJoueur, Color color, GridPane gridPaneVie, GridPane gridPaneLieux) {
|
||||
|
||||
this.setPosition(i);
|
||||
this.setJoueur(joueur);
|
||||
this.zoneJoueur = zoneJoueur;
|
||||
this.color = color;
|
||||
this.gestionnaireDePions = new GestionnaireDePions(this.color,gridPaneVie);
|
||||
this.gestionnaireDePions = new GestionnaireDePions(this.color,gridPaneVie, gridPaneLieux);
|
||||
|
||||
zoneJoueur.setBorder(new Border(new BorderStroke(color, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(5))));
|
||||
|
||||
@ -115,6 +115,10 @@ public class JoueurIHM {
|
||||
public void deplacerPionVie(int damage) {
|
||||
this.gestionnaireDePions.deplacerPionVie(damage);
|
||||
}
|
||||
|
||||
public void replacerPionLieu() {
|
||||
this.gestionnaireDePions.deplacerPionLieux(this.joueur);
|
||||
}
|
||||
|
||||
public void choisir() {
|
||||
|
||||
|
@ -34,7 +34,7 @@ public class PlateauController implements Initializable {
|
||||
|
||||
@FXML private AnchorPane rootPane;
|
||||
@FXML private GridPane gridPaneVie;
|
||||
//@FXML static public GridPane gridPaneLieux;
|
||||
@FXML public GridPane gridPaneLieux;
|
||||
|
||||
private ChoisirBoolean cb;
|
||||
|
||||
@ -62,7 +62,7 @@ public class PlateauController implements Initializable {
|
||||
|
||||
for(int i : map.keySet()) {
|
||||
System.out.println(i);
|
||||
joueursIHM.add(new JoueurIHM(i,map.get(i),getPaneJoueur(i),new Color(Math.random(), Math.random(), Math.random(),1),gridPaneVie));
|
||||
joueursIHM.add(new JoueurIHM(i,map.get(i),getPaneJoueur(i),new Color(Math.random(), Math.random(), Math.random(),1),gridPaneVie, gridPaneLieux));
|
||||
}
|
||||
|
||||
for(int i = 0; i<joueursIHM.size(); i++) {
|
||||
@ -281,4 +281,16 @@ public class PlateauController implements Initializable {
|
||||
jihm.getZoneJoueur().getChildren().setAll();
|
||||
return result;
|
||||
}
|
||||
|
||||
public void deplacer(Joueur currentJoueur) {
|
||||
JoueurIHM jIHM = getJoueurIHM(currentJoueur);
|
||||
jIHM.replacerPionLieu();
|
||||
|
||||
}
|
||||
|
||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||
/*JoueurIHM jIHM = getJoueurIHM(joueur);
|
||||
jIHM.deplacerPionVie(damage);*/
|
||||
|
||||
}
|
||||
}
|
@ -276,7 +276,7 @@
|
||||
<Circle fill="#64ff1f" radius="10.0" stroke="BLACK" strokeType="INSIDE" GridPane.rowIndex="3" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<GridPane hgap="20.0" GridPane.columnIndex="1">
|
||||
<GridPane fx:id="gridPaneLieux" hgap="20.0" GridPane.columnIndex="1">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints hgrow="SOMETIMES" />
|
||||
<ColumnConstraints hgrow="SOMETIMES" />
|
||||
|
@ -63,8 +63,14 @@ public class GestionnaireJeu {
|
||||
return joueurs.get(0);
|
||||
}
|
||||
|
||||
public void deplacer(Joueur currentJoueur) {
|
||||
|
||||
Platform.runLater(() -> {
|
||||
pc.deplacer(currentJoueur);
|
||||
});
|
||||
}
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
|
||||
|
||||
Platform.runLater(() -> {
|
||||
try {
|
||||
@ -90,14 +96,10 @@ public class GestionnaireJeu {
|
||||
try {
|
||||
return query.get().booleanValue();
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
// TODO Auto-generated catch block
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Platform.runLater(() -> {
|
||||
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -155,5 +157,12 @@ public class GestionnaireJeu {
|
||||
|
||||
}
|
||||
|
||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||
pc.updateVieJoueur(joueur, damage);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -65,11 +65,31 @@ public class Joueur {
|
||||
}
|
||||
|
||||
public void setStat(String key, int valeur) {
|
||||
|
||||
// TODO Il faut créer des observers de mort
|
||||
this.stats.put(key, valeur);
|
||||
updateVictoirePlateau();
|
||||
updateVie();
|
||||
}
|
||||
|
||||
private void updateVie() {
|
||||
int damage = damageTaken();
|
||||
this.plateau.updateVieJoueur(this, damage);
|
||||
|
||||
}
|
||||
|
||||
public int damageTaken() {
|
||||
return this.cartePersonnage.getPv() - this.getStat(PLAYER_HP);
|
||||
}
|
||||
|
||||
private void updateVictoirePlateau() {
|
||||
|
||||
int result = victoire() ? 0 : 1;
|
||||
this.plateau.setStat(Plateau.PARTIE_FINIE, result);
|
||||
}
|
||||
|
||||
public boolean victoire() {
|
||||
return this.cartePersonnage.victoire();
|
||||
}
|
||||
|
||||
public int getStat(String key) {
|
||||
|
||||
if(stats.containsKey(key)) {
|
||||
@ -80,7 +100,6 @@ public class Joueur {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<Joueur> getJoueursAdjacents() {
|
||||
|
||||
List<Joueur> joueurs = this.carteLieu.getJoueursAdjacents();
|
||||
@ -98,7 +117,6 @@ public class Joueur {
|
||||
this.gestionnaireEquipements.ajouter(equipement); }
|
||||
|
||||
public Equipement choisir(List<Equipement> equipements) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,6 @@ public class Plateau extends Thread{
|
||||
|
||||
public void initCartePersonnage(List<CartePersonnage> cps) throws Exception {
|
||||
|
||||
|
||||
int nbJoueurs = this.joueurs.size();
|
||||
List<CartePersonnage> lcp = new ArrayList<>(nbJoueurs);
|
||||
|
||||
@ -202,6 +201,7 @@ public class Plateau extends Thread{
|
||||
System.out.println("Au tour de "+currentJoueur.getNom());
|
||||
System.out.println("Lancement des dés.");
|
||||
deplacer(currentJoueur);
|
||||
if(isPartieTerminee()) break;
|
||||
System.out.println("Vous êtes désormais sur le lieu "+currentJoueur.getCarteLieu().getNom());
|
||||
System.out.println("Voulez vous activer l'effet du lieu ?");
|
||||
if(currentJoueur.choisir()) {
|
||||
@ -209,6 +209,7 @@ public class Plateau extends Thread{
|
||||
System.out.println("Vous avez "+currentJoueur.getStat(Joueur.PLAYER_HP)+" pv");
|
||||
currentJoueur.utiliserEffetLieu();
|
||||
System.out.println("Vous passez a "+currentJoueur.getStat(Joueur.PLAYER_HP)+" pv");
|
||||
if(isPartieTerminee()) break;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
@ -223,6 +224,7 @@ public class Plateau extends Thread{
|
||||
if(currentJoueur.hasOpponents()) {
|
||||
Joueur cible = currentJoueur.choisirAdjacents();
|
||||
attaquer(currentJoueur,cible);
|
||||
if(isPartieTerminee()) break;
|
||||
}else {
|
||||
System.out.println("Il n'y a personne a attaquer.");
|
||||
}
|
||||
@ -237,8 +239,24 @@ public class Plateau extends Thread{
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
List<Joueur> gagnants = new ArrayList<Joueur>();
|
||||
|
||||
for(Joueur j : joueurs) {
|
||||
if(j.victoire()) {
|
||||
gagnants.add(j);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO Liste des gagnants
|
||||
// TODO Evaluate every winners
|
||||
}
|
||||
|
||||
public boolean isPartieTerminee() {
|
||||
return this.getStat(PARTIE_FINIE) == 1;
|
||||
}
|
||||
|
||||
|
||||
public void deplacer(Joueur currentJoueur) {
|
||||
|
||||
boolean attributed = false;
|
||||
@ -255,6 +273,8 @@ public class Plateau extends Thread{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gj.deplacer(currentJoueur);
|
||||
}
|
||||
|
||||
public void attaquer(Joueur joueur1, Joueur joueur2) {
|
||||
@ -279,7 +299,6 @@ public class Plateau extends Thread{
|
||||
int roll4 =rollRandom(4);
|
||||
int roll6 = rollRandom(6);
|
||||
|
||||
|
||||
gj.rollDice(j, PlateauController.DICE_BOTH, roll4,roll6);
|
||||
return Math.abs(roll4-roll6);
|
||||
}
|
||||
@ -325,8 +344,7 @@ public class Plateau extends Thread{
|
||||
}else {
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void shuffleLieux(){
|
||||
@ -352,6 +370,11 @@ public class Plateau extends Thread{
|
||||
this.lieux = lieux;
|
||||
shuffleLieux();
|
||||
}
|
||||
|
||||
public List<CarteLieu> getLieux() {
|
||||
return this.lieux;
|
||||
}
|
||||
|
||||
|
||||
public boolean choisir(Joueur joueur) {
|
||||
return gj.choisir(joueur);
|
||||
@ -377,4 +400,10 @@ public class Plateau extends Thread{
|
||||
List<Joueur> joueurs = this.getJoueurs();
|
||||
return gj.choisirParmisTous(joueur,joueurs);
|
||||
}
|
||||
|
||||
|
||||
public void updateVieJoueur(Joueur joueur, int damage) {
|
||||
gj.updateVieJoueur(joueur,damage);
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user