@Override
    public boolean done(ArrayList<Node> nw, int fab){
        int a = ((BeaconFAB)nw.get(0).getFAB(fab)).A;
        Set<Integer> armies = new HashSet<Integer>();
        int min = Integer.MAX_VALUE;
        int d0 = 0;
        int d1 = 0;
        int d2 = 0;
        int d3 = 0;
        boolean res = true;
        int sw = 0;
        for(Node N:nw)
        {
            armies.add(((BeaconFAB)N.getFAB(fab)).A);
            sw = ((BeaconFAB)N.getFAB(fab)).D;
            min = min < sw ? min : sw;
            switch(sw)
            {
                case 0:
                    d0++;
                    break;
                case 1:
                    d1++;
                    break;
                case 2:
                    d2++;
                    break;
                case 3:
                    d3++;
                    break;
                default:
                    break;
            }
            if(((BeaconFAB)N.getFAB(fab)).A != a)
            {
                res = false;
            }
        }
        return res;
    }