@Override
    public boolean evaluate(Card target) {
        if (subTypes.length == 0) {
            return false;
        }
        for (String subType : subTypes) {
            if (!target.hasType(subType)) {
                return false;
            }
        }
        return true;
    }