From 737e8785aebacd5b867e25f37fcf1c6552d51c49 Mon Sep 17 00:00:00 2001
From: Celia AREZKI <celia.arezki.1@etu.univ-amu.fr>
Date: Thu, 21 Nov 2024 21:52:46 +0100
Subject: [PATCH] MotorizedFirefighter : add the methode updateFireFighter

---
 src/main/java/model/MotorizedFirefighter.java | 30 ++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/main/java/model/MotorizedFirefighter.java b/src/main/java/model/MotorizedFirefighter.java
index cee837e..e40a80c 100644
--- a/src/main/java/model/MotorizedFirefighter.java
+++ b/src/main/java/model/MotorizedFirefighter.java
@@ -1,4 +1,32 @@
 package model;
 
-public class MotorizedFirefighter {
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class MotorizedFirefighter extends FirefighterManager {
+    public MotorizedFirefighter(List<Position> firefighterPositions) {
+        super(firefighterPositions);
+    }
+
+    @Override
+    public List<Position> updateFirefighters(int step, Map<Position, List<Position>> neighbors) {
+        List<Position> modifiedPositions = new ArrayList<>();
+        for (Position firefighterPosition : firefighterPositions) {
+            // Déplacement motorisé, on se déplace de deux cases
+            Position newFirefighterPosition = moveToTarget(firefighterPosition, fireManager.getFirePosition(), neighbors);
+            setFirefighterPosition(firefighterPosition, newFirefighterPosition);
+
+            // Vérifier si un feu est à la nouvelle position et l'éteindre
+            if (fireManager.isOnFire(newFirefighterPosition)) {
+                extinguishFire(newFirefighterPosition);
+            }
+
+            modifiedPositions.add(firefighterPosition);
+            modifiedPositions.add(newFirefighterPosition);
+        }
+        return modifiedPositions;
+    }
 }
-- 
GitLab