From 0f0db90e9bc66675d90184773b4895d0b376c021 Mon Sep 17 00:00:00 2001
From: Louis <malterre.louis@laposte.net>
Date: Mon, 19 Dec 2022 18:45:51 +0100
Subject: [PATCH] stock kunais + rechargement implementes, si vous voulez
 modifier le temps de rechargement et le stock max de kunai, c est dans
 ShootingCharacter (evolveCharacter et au niveau des attributs), actuellement
 c'est 300 iterations pour recharger un kunai. LM

---
 MAVENProject/PlanUML.puml                           | 12 ++++++++++++
 MAVENProject/src/main/java/entity/Boss.java         |  2 --
 MAVENProject/src/main/java/entity/Entity.java       |  2 +-
 .../src/main/java/entity/ShootingCharacter.java     | 13 ++++++++++++-
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/MAVENProject/PlanUML.puml b/MAVENProject/PlanUML.puml
index 420778b..410976e 100644
--- a/MAVENProject/PlanUML.puml
+++ b/MAVENProject/PlanUML.puml
@@ -172,6 +172,18 @@ class entity.Kunai(){
 + public int getHeight()
 }
 
+class entity.Hearth{
+    - HitBox hitBox
+    - Coordonnees coord
+    - int width
+    - int height
+    - void heal
+    - HitBox getHitBox
+    - int getWidth
+    - int getHeight
+    + static void evolveHearths
+}
+
 class environment.Obstacle{
 }
 
diff --git a/MAVENProject/src/main/java/entity/Boss.java b/MAVENProject/src/main/java/entity/Boss.java
index 7f9ff08..eed2e60 100644
--- a/MAVENProject/src/main/java/entity/Boss.java
+++ b/MAVENProject/src/main/java/entity/Boss.java
@@ -42,7 +42,6 @@ public class Boss extends Monster{
         if (impulsionSaut != 0){
             
             newZ = newZ - impulsionSaut/2*delta*delta;
-            System.out.println(newZ-coord.getZ());
             vitesseActuZ = vitesseActuZ - 8*impulsionSaut*delta;
         }
 
@@ -76,7 +75,6 @@ public class Boss extends Monster{
             for (int i=0;i<collisionsPresentes.size();i++){
                 //si on trouve on sort de la boucle (pas besoin d'aller plus loin), on n'étudie qui si on ne donne pas de commande
                 if (impulsionSaut != 0){
-                    System.out.println("coucou");
                     break;
                 }
                 if (collisionsPresentes.get(listeObstaclesInVoisinage.get(i)) == BAS){
diff --git a/MAVENProject/src/main/java/entity/Entity.java b/MAVENProject/src/main/java/entity/Entity.java
index 5c2ccb1..780eb6f 100644
--- a/MAVENProject/src/main/java/entity/Entity.java
+++ b/MAVENProject/src/main/java/entity/Entity.java
@@ -18,7 +18,7 @@ public abstract class Entity {
     final double vitesseMax;
     HitBox hitBox;
     int attackStat; // nb de pv enleves par attaque
-    int maxLifePoints = 10;
+    int maxLifePoints = 5;
     int nbLifePoints = maxLifePoints;
     final double entityWIDTH;
     final double entityHEIGHT;
diff --git a/MAVENProject/src/main/java/entity/ShootingCharacter.java b/MAVENProject/src/main/java/entity/ShootingCharacter.java
index dbf6a10..d7f547c 100644
--- a/MAVENProject/src/main/java/entity/ShootingCharacter.java
+++ b/MAVENProject/src/main/java/entity/ShootingCharacter.java
@@ -8,16 +8,20 @@ import jeu.Jeu;
 public class ShootingCharacter extends Character{
 
     private int hasAttacked = 0; //varialbe disant si il a deja attaque, il ne peut attaque que toutes les deux frames, ainsi il ne peut attaquer que si = 0
+    private int stockMaxKunai = 10;
+    private int stockKunai = stockMaxKunai;
+    private int kunaiReloading = 0; //temps de rechargement des kunais
     public ShootingCharacter(Coordonnees c, double vitesseMax, double m, double impSaut){
         super(c, vitesseMax, m, impSaut);
     }
 
     public void attaque(){
-        if (this.getTableCommande().get("CommandAttack") != 0 && hasAttacked == 0){ //on ajoute un kunai dans la liste
+        if (this.getTableCommande().get("CommandAttack") != 0 && hasAttacked == 0 && stockKunai > 0){ //on ajoute un kunai dans la liste
             List<Kunai> temp = Jeu.getKunaiList();
             Coordonnees coordKunai = new Coordonnees(coord.getX() + (direction * (double) Kunai.getWidth() / 2) + ((direction * this.getEntityWIDTH()) / 2), coord.getZ());
             temp.add(new Kunai(direction, attackStat, coordKunai));
             Jeu.setKunaiList(temp);
+            stockKunai--;
             hasAttacked++;
         }
     }
@@ -28,5 +32,12 @@ public class ShootingCharacter extends Character{
             hasAttacked++;
             if (hasAttacked > 50)hasAttacked = 0; 
         }
+        if (kunaiReloading == 299){//si on a passe les temps de rechargement d un kunai
+            stockKunai = Math.min(stockKunai+1, stockMaxKunai);
+        }
+        kunaiReloading = (kunaiReloading+1)%300;
+        if (stockKunai == stockMaxKunai) { //pour apprecier la duree de rechargement totale
+            System.out.println("yo");
+        }
     }
 }
-- 
GitLab