From 6d06aa7799e123c5f690cde1e6f988b96f1759ff Mon Sep 17 00:00:00 2001
From: ousseyn01 <ousseyn.ndiaye9@gmail.com>
Date: Sun, 24 Nov 2024 21:50:30 +0100
Subject: [PATCH] Cloud.java is DONE

---
 src/main/java/model/Cloud.java | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/Cloud.java
index f717409..99620fd 100644
--- a/src/main/java/model/Cloud.java
+++ b/src/main/java/model/Cloud.java
@@ -15,16 +15,32 @@ public class Cloud {
         this.neighbors = neighbors;
     }
 
-    public Position getPosition() {
-        return position;
+    public void moveAndExtinguishFire(Fire fire) {
+        Position newPosition = moveToNewPosition();
+        this.position = newPosition;
+
+        extinguishNeighboringFires(fire);
+    }
+
+    private Position moveToNewPosition() {
+        List<Position> neighborsList = neighbors.get(position);
+        return neighborsList.get((int) (Math.random() * neighborsList.size()));
     }
 
-    public void moveRandomly() {
-        List<Position> adjacentPositions = neighbors.get(position);
-        position = adjacentPositions.get(randomGenerator.nextInt(adjacentPositions.size()));
+    private void extinguishNeighboringFires(Fire fire) {
+        List<Position> neighboringPositions = neighbors.get(position);
+        for (Position neighbor : neighboringPositions) {
+            if (fire.getFirePositions().contains(neighbor)) {
+                fire.extinguishFire(neighbor);
+            }
+        }
+    }
+
+    public Position getPosition() {
+        return position;
     }
 
-    public void extinguishFire(Fire fire) {
+    public void extinguishFireCloud(Fire fire) {
             fire.getFirePositions().remove(position);
     }
 }
-- 
GitLab