From 7f05c622204bc8f4bff6f857a976110f51a1388c Mon Sep 17 00:00:00 2001
From: rosier8u <basile.rosier6@etu.univ-lorraine>
Date: Sun, 17 Dec 2023 16:00:02 +0100
Subject: [PATCH] maj de la boucle de jeu

---
 design_pattern/src/modele/DialogueTerminal.java | 14 ++++++++++----
 design_pattern/src/modele/Jeu.java              |  6 +++++-
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/design_pattern/src/modele/DialogueTerminal.java b/design_pattern/src/modele/DialogueTerminal.java
index 904b864..065f8ff 100644
--- a/design_pattern/src/modele/DialogueTerminal.java
+++ b/design_pattern/src/modele/DialogueTerminal.java
@@ -40,6 +40,10 @@ public class DialogueTerminal {
 
         while (finDePartie == 0){
             jouer(scan);
+            if (jeu.getEquipeEnnemi().getTaille() > 0){
+                attaqueEnnemi();
+            }
+            annonceFinDeTour();
         }
     }
 
@@ -50,7 +54,6 @@ public class DialogueTerminal {
         switch (action){
             case 0:
                 attaquer(scan);
-                annonceFinDeTour();
                 break;
             case 1:
                 jeu.ameliorerEquipe(jeu.getEquipe());
@@ -154,13 +157,13 @@ public class DialogueTerminal {
 
     private void choixStrategie(Scanner scan){
         int strat = -1;
+        Personnage personnage = jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe()% jeu.tailleEquipe());
         while (strat < 0 || strat > 2) {
-            System.out.println("Votre personnage : " + jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe()) + " va attaquer" +
-                    "le personnage ennemi : " + jeu.getEquipeEnnemi().getPersonnage(jeu.getNbAttaqueEquipe()));
+            System.out.println("Votre personnage : " + personnage + " va attaquer" +
+                    " le personnage ennemi : " + jeu.getEquipeEnnemi().getPersonnage(jeu.getNbAttaqueEquipe()% jeu.tailleEquipeEnnemi()));
             System.out.println("Choisissez votre stratégie pour ce tour :\n0: Neutre\n1: Agressif\n2: Défensif");
             strat = Integer.parseInt(scan.nextLine());
         }
-        Personnage personnage = jeu.getEquipe().getPersonnage(jeu.getNbAttaqueEquipe());
         switch (strat) {
             case 0:
                  personnage.setStrategie(new ConcreteStrategieNeutre());
@@ -223,6 +226,9 @@ public class DialogueTerminal {
         annonceEtatEnnemi();
     }
 
+    private void attaqueEnnemi(){
+        jeu.produireAttaque(jeu.getEquipeEnnemi());
+    }
     private void annonceEtat(){
         for (Personnage p : jeu.getEquipe().getEquipe()){
             if (p.getEtat() != null){
diff --git a/design_pattern/src/modele/Jeu.java b/design_pattern/src/modele/Jeu.java
index 9035d09..fbcdd88 100644
--- a/design_pattern/src/modele/Jeu.java
+++ b/design_pattern/src/modele/Jeu.java
@@ -26,7 +26,11 @@ public class Jeu implements Facade {
 
     @Override
     public void produireAttaque(Equipe equipe) {
-        equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipeEnnemi().getPersonnage(getEquipeEnnemi().getTaille()-1));
+        if (equipe.equals(this.equipe)){
+            equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipeEnnemi().getPersonnage(getEquipeEnnemi().getTaille()-1));
+        }else {
+            equipe.getPersonnage(nbAttaqueEquipe).attaquer(getEquipe().getPersonnage(getEquipe().getTaille()-1));
+        }
         if (nbAttaqueEquipe == (Configuration.getInstance().getTailleMaxEquipe() - 1)){
             nbAttaqueEquipe = 0;
         }else {
-- 
GitLab