@Override
    public boolean isDone(Game game)
    {
        boolean ended = super.isFinished(game);
        if(ended)
            return true;

         int countAcum = 0;

        if(itype1 != -1) countAcum += game.getNumSprites(itype1) - game.getNumDisabledSprites(itype1);
        if(itype2 != -1) countAcum += game.getNumSprites(itype2) - game.getNumDisabledSprites(itype2);
        if(itype3 != -1) countAcum += game.getNumSprites(itype3) - game.getNumDisabledSprites(itype3);

        if(countAcum == limit && canEnd) {
            countScore(game);
            return true;
        }

        if(min && countAcum > limit && canEnd) {
            countScore(game);
            return true; //If the limit is a lower bound in what's required.
        }

        return false;
    }