diff --git a/travail_de_groupe/chef_oeuvre/Res/background_sides.png b/travail_de_groupe/chef_oeuvre/Res/background_sides.png
index bbbb3a44de2425f13ef2a06314555364c814facf..52040cfbd1c62249c3d593a4939a0b438da81a8e 100755
Binary files a/travail_de_groupe/chef_oeuvre/Res/background_sides.png and b/travail_de_groupe/chef_oeuvre/Res/background_sides.png differ
diff --git a/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png b/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png
new file mode 100755
index 0000000000000000000000000000000000000000..a883dbc437bdfbacc65fde9c2693edc92708db26
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/empty_bucket.png differ
diff --git a/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png b/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png
new file mode 100755
index 0000000000000000000000000000000000000000..74c9e04dabe9c9f58e819d3d34b10f3b46bf9c1f
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/filled_bucket.png differ
diff --git a/travail_de_groupe/chef_oeuvre/Res/water.png b/travail_de_groupe/chef_oeuvre/Res/water.png
new file mode 100755
index 0000000000000000000000000000000000000000..a96e17c7999fbc681be91279a454b647505fa8ea
Binary files /dev/null and b/travail_de_groupe/chef_oeuvre/Res/water.png differ
diff --git a/travail_de_groupe/chef_oeuvre/chef_oeuvre.odt b/travail_de_groupe/chef_oeuvre/chef_oeuvre.odt
index 77ef2ff06ae6d7eb9e0f79c95727dd094f699c95..be89ba4f6298e709c64f98ccc8d6db6f0d61adb1 100644
Binary files a/travail_de_groupe/chef_oeuvre/chef_oeuvre.odt and b/travail_de_groupe/chef_oeuvre/chef_oeuvre.odt differ
diff --git a/travail_de_groupe/chef_oeuvre/map.txt b/travail_de_groupe/chef_oeuvre/map.txt
index cfd451b26db099bb036f41da76b8a9cb238c16d2..febf0b99c84c26d15b22aecde8e795d01cce47ea 100644
--- a/travail_de_groupe/chef_oeuvre/map.txt
+++ b/travail_de_groupe/chef_oeuvre/map.txt
@@ -15,6 +15,6 @@
 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
\ No newline at end of file
+2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
+2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c
index 7ea08e5402d367b665fc24bd8125efb4c354196d..caad8317dca7bb341842856eba8c5e14dff9a70a 100644
--- a/travail_de_groupe/chef_oeuvre/src/gest_event.c
+++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c
@@ -123,10 +123,14 @@ void manageGame(){
                     break;
                 
                 case SDL_MOUSEMOTION:
-                        mousePosition.x = (event.motion.x - (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2) / CELLSIZE;
-                        mousePosition.y = (event.motion.y - 0) / CELLSIZE;
+                    mousePosition.x = (event.motion.x - (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2) / CELLSIZE;
+                    mousePosition.y = (event.motion.y - 0) / CELLSIZE;
                     continue;
 
+                case SDL_MOUSEBUTTONDOWN:
+                    pourWater(mousePosition.x, mousePosition.y);
+                    break;
+
                 default:
                     continue;
             }
diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c
index 09106266f5eab936922d592ba96df555976809bd..cc5135b7b723da9287fb87cca4890714b0933639 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.c
+++ b/travail_de_groupe/chef_oeuvre/src/player.c
@@ -4,11 +4,12 @@ player_t player;
 
 
 void initPlayer(){
-    player.x = 18*32;
-    player.y = 0;
+    player.x = (MAPSIZE/2)*CELLSIZE;
+    player.y = (MAPSIZE/2)*CELLSIZE;
     player.w = CELLSIZE*0.8;
     player.h = CELLSIZE*0.8;
-    player.waterLevel = 0;
+    player.waterMax = 3;
+    player.currentWater = player.waterMax;
     player.speed = 1;
     player.isMoving = 0;
 }
@@ -134,5 +135,15 @@ int selectStateHover(){
 }
 
 
+void pourWater(int x, int y){
+    int onFire = searchFire(fireList, x, y);     
+    if(player.currentWater>0){
+        //downgrade the cliqued fire
+        if(onFire == 1 && selectStateHover() == 1){ 
+            fireList = deleteFire (fireList, x, y); 
+        }
+        player.currentWater = player.currentWater - 1;
+    }
+}
 
 
diff --git a/travail_de_groupe/chef_oeuvre/src/player.h b/travail_de_groupe/chef_oeuvre/src/player.h
index 8dda417ec6b48cac57240a0dc79a26c8748e4575..a8bcffb7d67bb15d6dfa6feaa4b19ef23b0a90f1 100644
--- a/travail_de_groupe/chef_oeuvre/src/player.h
+++ b/travail_de_groupe/chef_oeuvre/src/player.h
@@ -14,7 +14,8 @@ typedef struct player{
     int y;
     int w;
     int h;
-    int waterLevel;
+    int currentWater;
+    int waterMax;
     int speed;
     int isMoving;
 } player_t;
@@ -24,5 +25,6 @@ extern player_t player;
 void initPlayer();
 void manageMovement();
 int selectStateHover();
+void pourWater(int, int);
 
 #endif
\ No newline at end of file
diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c
index 2a4389c824bbafc9eda81397a8e3f90c55b51891..6963c387011b4ab9569146a1369da5f84f35faf8 100644
--- a/travail_de_groupe/chef_oeuvre/src/render.c
+++ b/travail_de_groupe/chef_oeuvre/src/render.c
@@ -38,6 +38,15 @@ SDL_Texture * playButtonHoverTexture;
 SDL_Surface * fireSurface;
 SDL_Texture * fireTexture;
 
+SDL_Surface * waterSurface;
+SDL_Texture * waterTexture;
+
+SDL_Surface * emptyBucketSurface;
+SDL_Texture * emptyBucketTexture;
+
+SDL_Surface * filledBucketSurface;
+SDL_Texture * filledBucketTexture;
+
 void createWindow(){
 
     if (SDL_Init(SDL_INIT_VIDEO) != 0){
@@ -111,8 +120,13 @@ void drawMap(){
     for(i = 0; i < MAPSIZE; i++){
         for(j = 0; j < MAPSIZE; j++){
             SDL_RenderCopy(renderer, grassTexture, NULL, &rect);
-            if(map[i][j] == 1){
-                SDL_RenderCopy(renderer, treeTexture, NULL, &rect);
+            switch (map[i][j]){
+                case 1:
+                    SDL_RenderCopy(renderer, treeTexture, NULL, &rect);
+                    break;
+                case 2:
+                    SDL_RenderCopy(renderer, waterTexture, NULL, &rect);
+                    break;
             }
             if (mousePosition.x == j && mousePosition.y == i){
                 if (selectStateHover()){
@@ -162,12 +176,32 @@ void drawFire(){
     }
 }
 
+void drawPlayerWaterLevel(){
+    int borderWidth = (screenDimension.w - (MAPSIZE * CELLSIZE)) / 2;
+    SDL_Rect rect;
+    rect.h = borderWidth/player.waterMax;
+    rect.w = borderWidth/player.waterMax;
+    int count = player.currentWater;
+    for (int i=0; i<player.waterMax; i++){
+        rect.x = (i*rect.h);
+        rect.y = screenDimension.h/3;
+        if (count){
+            count--;
+            SDL_RenderCopy(renderer, filledBucketTexture, NULL, &rect);
+        }
+        else {
+            SDL_RenderCopy(renderer, emptyBucketTexture, NULL, &rect);
+        }
+    }
+}
+
 void drawGame(){
     SDL_RenderClear(renderer);
     drawBackgroundSides();
     drawMap();
     drawPlayer();
     drawFire();
+    drawPlayerWaterLevel();
     SDL_RenderPresent(renderer);
 }
 
@@ -205,6 +239,15 @@ void mainLoop(){
     fireSurface = IMG_Load("Res/fire.png");
     fireTexture = SDL_CreateTextureFromSurface(renderer, fireSurface);
 
+    waterSurface = IMG_Load("Res/water.png");
+    waterTexture = SDL_CreateTextureFromSurface(renderer, waterSurface);
+
+    emptyBucketSurface = IMG_Load("Res/empty_bucket.png");
+    emptyBucketTexture = SDL_CreateTextureFromSurface(renderer, emptyBucketSurface);
+
+    filledBucketSurface = IMG_Load("Res/filled_bucket.png");
+    filledBucketTexture = SDL_CreateTextureFromSurface(renderer, filledBucketSurface);
+
     SDL_FreeSurface(grassSurface);
     SDL_FreeSurface(treeSurface);
     SDL_FreeSurface(hoverSurface);
@@ -215,6 +258,7 @@ void mainLoop(){
     SDL_FreeSurface(backgroundSidesSurface);
     SDL_FreeSurface(noHoverSurface);
     SDL_FreeSurface(fireSurface);
+    SDL_FreeSurface(waterSurface);
 
     unsigned int a = SDL_GetTicks();
     unsigned int b = SDL_GetTicks();