package model.Elements.Extinguisher;

import model.Board.Board;
import model.Elements.ModelElement;
import util.Neighbour;
import util.Position;

import java.util.ArrayList;
import java.util.List;

public class Cloud extends Extinguisher {


    public Cloud(Position position) {
        super(position);
        element = ModelElement.CLOUD;
    }

    public List<Position>update(Board<List<ModelElement>> firefighterBoard){

        this.neighbour = new Neighbour(firefighterBoard);
        List<Position> modifiedPositions = new ArrayList<>();

        Position currentPosition = this.getPosition();
        Position newPosition = this.neighbour.randomNeighbor(currentPosition);
        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);
        }

        return modifiedPositions;
    }




}