package model;

import util.Position;
import util.TargetStrategy;

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

public class Cloud extends Element {

    public Cloud() {
            super(ModelElement.CLOUD,
                    new CloudBehavior(ModelElement.CLOUD));
    }

    @Override
    public List<Position> Update(BoardData boardData, List<Position> modifiedPositions) {
        List<Position> cloudPositions=boardData.getPositions().get(type.ordinal());
        List<Position> newCloudPositions=behavior.getNext(boardData);
        modifiedPositions.removeAll(cloudPositions);
        modifiedPositions.addAll(cloudPositions);
        modifiedPositions.removeAll(newCloudPositions);
        modifiedPositions.addAll(newCloudPositions);
        cloudPositions.clear();
        cloudPositions.addAll(newCloudPositions);
        return modifiedPositions;
    }
}