From 7f69a10889c98459f83db88b542e2386e104f4ad Mon Sep 17 00:00:00 2001
From: bruno <brunolacote1@gmail.com>
Date: Mon, 5 Dec 2022 12:54:01 +0100
Subject: [PATCH] Coffre

---
 .../src/main/java/entity/Character.java       |  9 ++++++
 MAVENProject/src/main/java/jeu/Jeu.java       |  6 ++++
 MAVENProject/src/main/java/jeu/Painter.java   | 31 +++++++++++++++++++
 3 files changed, 46 insertions(+)

diff --git a/MAVENProject/src/main/java/entity/Character.java b/MAVENProject/src/main/java/entity/Character.java
index f98ce02..2a9bc27 100644
--- a/MAVENProject/src/main/java/entity/Character.java
+++ b/MAVENProject/src/main/java/entity/Character.java
@@ -23,6 +23,7 @@ public class Character extends Entity{
     private double vitesseActuZ = 0;
     private final double impulsionSaut;
     private double masse;
+    private int clef;
 
     private Map<String,Double> tableCommande; //table des commandes du perso
 
@@ -131,6 +132,14 @@ public class Character extends Entity{
             }
         }
     }
+    
+    public void clef(){
+        for (Coffre coffre : Jeu.getCoffreTable()){
+            if (HitBox.collision(this.hitBox, coffre.getHitBox()){
+                monster.setNbLifePoints(Math.max(monster.getNbLifePoints()-attackStat,0));
+            }
+        }
+    }
 
     public void getGameCommand(){
 
diff --git a/MAVENProject/src/main/java/jeu/Jeu.java b/MAVENProject/src/main/java/jeu/Jeu.java
index 187be97..7499c22 100644
--- a/MAVENProject/src/main/java/jeu/Jeu.java
+++ b/MAVENProject/src/main/java/jeu/Jeu.java
@@ -16,6 +16,7 @@ import environnement.Coordonnees;
 import environnement.HitBox;
 import environnement.PositionCollision;
 import map.Obstacle;
+import map.Coffre;
 import loaders.CharacterLoader;
 
 import static environnement.PositionCollision.*;
@@ -57,6 +58,7 @@ public class Jeu implements Game{
     private static List<Obstacle> obstacleTable = new ArrayList<>();
     private static List<PositionCollision>  obstacleTableCollisionCharac= new ArrayList<>();
     private static List<Monster> monsterList = new ArrayList<>();
+    private static List<Coffre> coffreTable = new ArrayList<>();
 
     
 
@@ -108,6 +110,7 @@ public class Jeu implements Game{
         obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(300,550),32,128)));
         obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(800, 625),150,50)));
         obstacleTable.add(new Obstacle(new HitBox(new Coordonnees(600, 662.5),75,50)));
+        coffreTable.add(new Coffre(new HitBox(new Coordonnees(900, 685),30,30)));
 
         obstacleTableCollisionCharac.add(NONE);
         obstacleTableCollisionCharac.add(NONE);
@@ -203,6 +206,9 @@ public class Jeu implements Game{
     public static List<Obstacle> getObstacleTable() {
         return obstacleTable;
     }
+    public static List<Coffre> getCoffreTable() {
+        return coffreTable;
+    }
     public static List<PositionCollision> getObstacleTableCollisionCharac() {
         return obstacleTableCollisionCharac;
     }
diff --git a/MAVENProject/src/main/java/jeu/Painter.java b/MAVENProject/src/main/java/jeu/Painter.java
index 3d822af..0772b7b 100644
--- a/MAVENProject/src/main/java/jeu/Painter.java
+++ b/MAVENProject/src/main/java/jeu/Painter.java
@@ -6,6 +6,8 @@ import environnement.Coordonnees;
 import environnement.HitBox;
 import loaders.ObstacleLoader;
 import map.Obstacle;
+import loaders.CoffreLoader;
+import map.Coffre;
 
 import java.awt.*;
 import java.awt.image.BufferedImage;
@@ -82,6 +84,18 @@ public class Painter implements GamePainter{
         crayon.drawLine((int)bg.getX(),(int)bg.getZ(),(int)hg.getX(),(int)hg.getZ());
         crayon.drawLine((int)hg.getX(),(int)hg.getZ(),(int)hd.getX(),(int)hd.getZ());
 
+    }
+    private void drawCoffre(Graphics2D crayon, Coffre coffre){
+        HashMap<String, Coordonnees> extremites = coffre.getHitbox().getExtremites();
+        Coordonnees hd = extremites.get("HautDroite");
+        Coordonnees bd = extremites.get("BasDroite");
+        Coordonnees hg = extremites.get("HautGauche");
+        Coordonnees bg = extremites.get("BasGauche");
+        crayon.drawLine((int)hd.getX(),(int)hd.getZ(),(int)bd.getX(),(int)bd.getZ());
+        crayon.drawLine((int)bd.getX(),(int)bd.getZ(),(int)bg.getX(),(int)bg.getZ());
+        crayon.drawLine((int)bg.getX(),(int)bg.getZ(),(int)hg.getX(),(int)hg.getZ());
+        crayon.drawLine((int)hg.getX(),(int)hg.getZ(),(int)hd.getX(),(int)hd.getZ());
+
     }
 
     private void drawSol(Graphics2D crayon){
@@ -103,6 +117,15 @@ public class Painter implements GamePainter{
             }
             drawObstacle(crayon,obs);
         }
+        for (Coffre obs : Jeu.getCoffreTable()){
+            if (!collision(gameCharacter.getHitBox(), obs.getHitbox())){
+                crayon.setColor(Color.blue);
+            }
+            else {
+                crayon.setColor(Color.red);
+            }
+            drawCoffre(crayon,obs);
+        }
     }
 
     private void drawObstacleBis(Graphics2D crayon, Obstacle obstacle, String nom){
@@ -112,6 +135,14 @@ public class Painter implements GamePainter{
         int x = (int) hitBox.getCentre().getX();
         crayon.drawImage(loader.getImageObstacle(), x - (int) hitBox.getWidth()/2,z - (int) hitBox.getHeight()/2,null,null);
     }
+    
+    private void drawCoffreBis(Graphics2D crayon, Coffre coffre, String nom){
+        CoffreLoader loader = new CoffreLoader(coffre,nom);
+        HitBox hitBox = loader.getCoffre().getHitbox();
+        int z = (int) hitBox.getCentre().getZ();
+        int x = (int) hitBox.getCentre().getX();
+        crayon.drawImage(loader.getImageCoffre(), x - (int) hitBox.getWidth()/2,z - (int) hitBox.getHeight()/2,null,null);
+    }
 
     private void drawMonsters(Graphics2D crayon){
         int x;
-- 
GitLab