From 390d6836cfd61db36c6d23cc23a168f140d1b40f Mon Sep 17 00:00:00 2001
From: antoinemeyer5 <antoine.meyer54@gmail.com>
Date: Thu, 23 Jun 2022 11:08:56 +0200
Subject: [PATCH] perte de vie du pompier par brulure fonctionnelle,
 invisibilite de 5 secondes apres chaque touche

---
 travail_de_groupe/chef_oeuvre/src/player.c | 12 ++++++++++--
 travail_de_groupe/chef_oeuvre/src/player.h |  2 ++
 travail_de_groupe/chef_oeuvre/src/render.h |  1 +
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index f17ae94..416b052 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -15,6 +15,7 @@ void initPlayer(){
     player.HPMax = 3;
     player.currentHP = player.HPMax;
     player.invisible = 0;
+    player.invisibleTime = 5;
 }
 
 int giveCaseBelowPosition(int x, int y){
@@ -42,9 +43,11 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){
 }
 
 void checkCollisionsFire(int dot1, int dot2){
-    if((dot1==1 || dot2==1) && player.invisible==0){
+    if(player.invisible==0 && (dot1==1 || dot2==1) && player.currentHP>0){
         player.currentHP = player.currentHP - 1;
         player.invisible = 1;
+        player.timeLastHitFire = (int)timer/1000;
+        printf("touche\n");
     }
 }
 
@@ -162,6 +165,12 @@ void manageMovement(){
         player.direction = PLAYER_RIGHT;
     }
     else player.isMoving = 0;
+    //
+    if(player.invisible==1){
+        if((int)timer/1000 - player.timeLastHitFire > player.invisibleTime){
+            player.invisible = 0;
+        }
+    }
 }
 
 int selectStateHover(){
@@ -173,7 +182,6 @@ int selectStateHover(){
     return stateHover;
 }
 
-
 void pourWater(int x, int y){
     int onFire = searchFire(fireList, x, y);     
     if(player.currentWater>0){
diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h
index 99afb10..b0b2253 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.h
+++ b/travail_de_groupe/chef_oeuvre/src/player.h
@@ -22,6 +22,8 @@ typedef struct player{
     int HPMax;
     int currentHP;
     int invisible;
+    int invisibleTime;
+    int timeLastHitFire;
 } player_t;
 
 extern player_t player;
diff --git a/travail_de_groupe/chef_oeuvre/src/render.h b/travail_de_groupe/chef_oeuvre/src/render.h
index 1af4a27..e48f649 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.h
+++ b/travail_de_groupe/chef_oeuvre/src/render.h
@@ -12,6 +12,7 @@ extern SDL_Window *window;
 extern SDL_Renderer *renderer;
 extern SDL_DisplayMode screenDimension;
 extern SDL_Rect buttonRect;
+extern float timer;
 
 void drawHover(int x, int y);
 void mainLoop();
-- 
GitLab