From 824058813880c80d24eaca17c552e0967d1630d1 Mon Sep 17 00:00:00 2001
From: Louis MALTERRE <malterre.louis@laposte.net>
Date: Thu, 1 Dec 2022 17:35:07 +0100
Subject: [PATCH] monstres peuvent desormais mourir LM

---
 MAVENProject/src/main/java/entity/Character.java | 12 ++++++++++--
 MAVENProject/src/main/java/entity/Entity.java    |  1 +
 MAVENProject/src/main/java/entity/Monster.java   | 16 ++++++++++++++--
 MAVENProject/src/main/java/jeu/Jeu.java          |  3 +--
 4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index d3c2783..f98ce02 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -37,7 +37,8 @@ public class Character extends Entity{
 
         this.tableCommande = new HashMap<>();
         tableCommande.put("CommandX",(double)0);
-        tableCommande.put("CommandZ",(double)0);       
+        tableCommande.put("CommandZ",(double)0);
+        tableCommande.put("CommandAttack",(double)0); // 1 si attack, 0 sinon   
     }
 
     @Override
@@ -124,7 +125,7 @@ public class Character extends Entity{
     @Override
     public void attaque(){
         for (Monster monster : Jeu.getMonsterList()){
-            if (HitBox.collision(this.hitBox, monster.getHitBox())){
+            if (HitBox.collision(this.hitBox, monster.getHitBox()) && tableCommande.get("CommandAttack") == 1){
                 //le Math.max est la juste pour que la vie du perso ne tombe pas en-dessous de zero
                 monster.setNbLifePoints(Math.max(monster.getNbLifePoints()-attackStat,0));
             }
@@ -146,6 +147,8 @@ public class Character extends Entity{
                 System.out.println(tableCommande.get("CommandZ"));
             }      
         }
+
+        if (commandeJeu.get("Attack"))tableCommande.replace("CommandAttack", (double)1);
     }
 
     public void resetCommand(){
@@ -157,6 +160,7 @@ public class Character extends Entity{
     public void evolveCharacter(){
         getGameCommand();
         deplacements();
+        attaque();
         collisionGestion();
         updateVoisinage();
         this.setHitBox(new HitBox(this.getCoord(),entityHEIGHT,entityWIDTH)); // mise à jour moins crade pour l'instant
@@ -183,4 +187,8 @@ public class Character extends Entity{
     public void updateVoisinage(){
         voisinage = new HitBox(coord, 600, 600);
     }
+
+    public Boolean death(){
+        return false;
+    }
 }
diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java
index ea3ad97..db7e35d 100644
--- a/MAVENProject/src/main/java/entity/Entity.java
+++ b/MAVENProject/src/main/java/entity/Entity.java
@@ -88,4 +88,5 @@ public abstract class Entity {
         
     }
    
+    public Boolean death(){return false;}
 }
diff --git a/MAVENProject/src/main/java/entity/Monster.java b/MAVENProject/src/main/java/entity/Monster.java
index 865d77a..8b54a6a 100644
--- a/MAVENProject/src/main/java/entity/Monster.java
+++ b/MAVENProject/src/main/java/entity/Monster.java
@@ -2,7 +2,6 @@ package entity;
 
 import environnement.Coordonnees;
 import environnement.HitBox;
-
 import static jeu.Jeu.getGameCharacter;
 
 import java.util.List;
@@ -43,10 +42,23 @@ public class Monster extends Entity{
         deplacements();
         attaque();
         this.setHitBox(new HitBox(this.getCoord(),entityHEIGHT,entityWIDTH));
+        
     }
 
     public static void evolveAllMonsters(List<Monster> liste){ // evolution de tous les monstres
-        for (Monster monster : liste)monster.evolveMonster();
+        if (!liste.isEmpty()){
+            for (Monster monster : liste)monster.evolveMonster();
+        }
+        int i = 0;
+        while (i < liste.size()){
+            if (liste.get(i).death())liste.remove(i);
+            else i++;
+        }
+
+    }
+
+    public Boolean death(){
+        return nbLifePoints == 0;
     }
     
 }
diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index d33bb27..4444bf3 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -114,7 +114,7 @@ public class Jeu implements Game{
         obstacleTableCollisionCharac.add(NONE);
         obstacleTableCollisionCharac.add(NONE);
 
-        monsterList.add(new Monster(new Coordonnees(1000, sol.getHitbox().getExtremites().get("HautGauche").getZ()-30), 1000, 30, 60, 1,3));
+        monsterList.add(new Monster(new Coordonnees(1000, sol.getHitbox().getExtremites().get("HautGauche").getZ()-30), 1000, 30, 60, 1,1));
 
     }
 
@@ -137,7 +137,6 @@ public class Jeu implements Game{
         gameCharacter.evolveCharacter();
         //monstres evoluent dans le jeu
         Monster.evolveAllMonsters(monsterList);
-        System.out.println(gameCharacter.getNbLifePoints());
 
         //animation du perso dans le jeu (definir la bonne frame a cet instant)
         animation(Attack, Right, Left);
-- 
GitLab