diff --git a/src/main/java/model/FireManager.java b/src/main/java/model/FireManager.java
index 213e11c1ef32677c065ff13891b2ddb8b18dcd83..93b0299eb840fa28a3fa4d9e7c6b777917f93b33 100644
--- a/src/main/java/model/FireManager.java
+++ b/src/main/java/model/FireManager.java
@@ -42,15 +42,30 @@ public class FireManager implements FireBehavior, FireProperties{
         int rows = grid.length;
         int columns = grid[0].length;
 
+        // Créez un tableau pour suivre les tours avant que le feu se propage sur les rocailles
+        int[][] fireCooldown = new int[rows][columns];
+
+        // Initialisation du tableau de cooldown des rocailles à 0
+        for (int i = 0; i < rows; i++) {
+            for (int j = 0; j < columns; j++) {
+                if (grid[i][j] == ViewElement.ROCKY) {
+                    fireCooldown[i][j] = 4;  // Le feu prend 4 tours pour se propager sur les rocailles
+                } else {
+                    fireCooldown[i][j] = 0;  // Aucune attente pour les autres cases
+                }
+            }
+        }
+
         ViewElement[][] newGrid = new ViewElement[rows][columns];
         for (int i = 0; i < rows; i++) {
             System.arraycopy(grid[i], 0, newGrid[i], 0, columns);
         }
 
+        // Propagation du feu
         for (int i = 0; i < rows; i++) {
             for (int j = 0; j < columns; j++) {
                 if (grid[i][j] == ViewElement.FIRE) {
-                    // Tenter de propager le feu sur les voisins
+                    // Propager le feu sur les voisins si possible
                     for (Position neighbor : getNeighbors(i, j, rows, columns)) {
                         if (grid[neighbor.row()][neighbor.column()] == ViewElement.EMPTY) {
                             newGrid[neighbor.row()][neighbor.column()] = ViewElement.FIRE;
@@ -59,16 +74,31 @@ public class FireManager implements FireBehavior, FireProperties{
                         if (grid[neighbor.row()][neighbor.column()] == ViewElement.MOUNTAIN) {
                             newGrid[neighbor.row()][neighbor.column()] = ViewElement.MOUNTAIN;
                         }
+                        // Propagation du feu sur les rocailles après 4 tours
+                        if (grid[neighbor.row()][neighbor.column()] == ViewElement.ROCKY && fireCooldown[neighbor.row()][neighbor.column()] == 0) {
+                            newGrid[neighbor.row()][neighbor.column()] = ViewElement.FIRE;
+                        }
                     }
                 }
             }
         }
-        // Mise à jour de la grille
+
+        // Mise à jour de la grille après propagation
         for (int i = 0; i < rows; i++) {
             System.arraycopy(newGrid[i], 0, grid[i], 0, columns);
         }
+
+        // Décrémenter le cooldown des rocailles chaque tour
+        for (int i = 0; i < rows; i++) {
+            for (int j = 0; j < columns; j++) {
+                if (fireCooldown[i][j] > 0) {
+                    fireCooldown[i][j]--;  // Décrémenter le compteur de cooldown
+                }
+            }
+        }
     }
 
+
     private List<Position> getNeighbors(int row, int column, int rows, int columns) {
         List<Position> neighbors = new ArrayList<>();
         if (row > 0) neighbors.add(new Position(row - 1, column));
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java
index 4867898ce03a7fac80ce34585308af0f6d76b2ac..ed16ed1465ca78a590cd05a9e438baaf950101ba 100644
--- a/src/main/java/view/ViewElement.java
+++ b/src/main/java/view/ViewElement.java
@@ -3,7 +3,7 @@ package view;
 import javafx.scene.paint.Color;
 
 public enum ViewElement {
-  FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE) ,  CLOUD(Color.GRAY),     MOUNTAIN(Color.GRAY);
+  FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE) ,  CLOUD(Color.GRAY),  MOUNTAIN(Color.GRAY), ROCKY(Color.GRAY);
   final Color color;
   ViewElement(Color color) {
     this.color = color;