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