diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java index d3c27838c0ad1094f209e3b6fc8a25495f7e727a..f98ce0277a76cc1ca90608c212493f5fb06edfd0 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 ea3ad977ded5cb58e88a9c7fac93717497ed7052..db7e35d404138a90c053c820fa525c34648f7aa2 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 865d77a5bb38b53fce5451c215652bc0d5a9f8aa..8b54a6afdddede6509bf2e3636cbb60e7b7ccc1d 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 d33bb27acb1edcdfc704cc08a763aed146535f1f..4444bf3191429ab882fa68c40ab2adbd8bbe6498 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);