From a3ddf1f349f48ced1cbbbd4f0fa50bc905a2997e Mon Sep 17 00:00:00 2001
From: MEHDI <mehdi.belhachemi@etu-univ.amu.fr>
Date: Sun, 24 Nov 2024 19:14:38 +0100
Subject: [PATCH] mehdi : added Mountain class

---
 src/main/java/controller/Controller.java |  3 +++
 src/main/java/model/FireFighter.java     | 10 ++++++++++
 src/main/java/model/ModelElement.java    |  4 +++-
 src/main/java/model/Montain.java         | 12 ++++++++++++
 src/main/java/view/ViewElement.java      |  2 +-
 5 files changed, 29 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/model/Montain.java

diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 19a03ee..ac18882 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -94,6 +94,9 @@ public class Controller {
     if (squareState.contains(ModelElement.ROAD)) {
       return ViewElement.ROAD;
     }
+    if (squareState.contains(ModelElement.MOUNTAIN)) {
+      return ViewElement.MOUNTAIN;
+    }
     return ViewElement.EMPTY;
   }
 
diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java
index f07b2f8..b656cf7 100644
--- a/src/main/java/model/FireFighter.java
+++ b/src/main/java/model/FireFighter.java
@@ -6,6 +6,7 @@ import util.TargetStrategy;
 
 import java.util.ArrayList;
 
+import java.util.HashSet;
 import java.util.List;
 
 
@@ -29,17 +30,26 @@ public class FireFighter extends Extinguisher {
         Position currentPosition = this.getPosition();
         Position newPosition = targetStrategy.neighborClosestToFire(currentPosition, firefighterBoard.getFires().keySet(), this.neighbour.getNeighbors());
 
+
         this.setPosition(newPosition);
         modifiedPositions.add(currentPosition);
         modifiedPositions.add(newPosition);
 
         extinguish(firefighterBoard,newPosition);
 
+
+
         for (Position neighbor : this.neighbour.getNeighbors().get(newPosition)) {
             extinguish(firefighterBoard,neighbor);
             modifiedPositions.add(neighbor);
         }
 
+        for(Obstacle obstacle : firefighterBoard.getObstacles().values()){
+            if(obstacle instanceof Montain){
+                modifiedPositions.remove(obstacle.getPosition());
+            }
+        }
+
         return modifiedPositions;
     }
 
diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java
index 94616d5..4fdb6d9 100644
--- a/src/main/java/model/ModelElement.java
+++ b/src/main/java/model/ModelElement.java
@@ -10,7 +10,8 @@ public enum ModelElement {
   FIREFIGHTER(10),
   FIRE(10),
   CLOUD(10),
-  ROAD(5);
+  ROAD(5),
+  MOUNTAIN(5);
   private final int initialNumber;
 
 
@@ -30,6 +31,7 @@ public enum ModelElement {
       case ROAD -> new Road(position);
       case FIREFIGHTER -> new FireFighter(position);
       case CLOUD -> new Cloud(position);
+      case MOUNTAIN -> new Montain(position);
       default -> throw new IllegalArgumentException("Unknown ModelElement: " + this);
       };
 
diff --git a/src/main/java/model/Montain.java b/src/main/java/model/Montain.java
new file mode 100644
index 0000000..af69b26
--- /dev/null
+++ b/src/main/java/model/Montain.java
@@ -0,0 +1,12 @@
+package model;
+
+import util.Position;
+
+public class Montain extends Obstacle{
+    public Montain(Position position) {
+        super(position);
+        element = ModelElement.MOUNTAIN;
+    }
+
+
+}
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java
index c7fad49..7cc0683 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),CLOUD(Color.LIGHTSKYBLUE),ROAD(Color.GRAY), EMPTY(Color.WHITE);
+  FIREFIGHTER(Color.BLUE), FIRE(Color.RED),CLOUD(Color.LIGHTSKYBLUE),ROAD(Color.GRAY),MOUNTAIN(Color.BROWN), EMPTY(Color.WHITE);
   final Color color;
   ViewElement(Color color) {
     this.color = color;
-- 
GitLab