@Override
    public boolean performTest(java.util.Map<String, Object> runParams) {
        if (mapParams.containsKey("Origin")) {
            if (!mapParams.get("Origin").equals("Any")) {
                if (mapParams.get("Origin") == null) {
                    return false;
                }
                if (!mapParams.get("Origin").equals((String) runParams.get("Origin"))) {
                    return false;
                }
            }
        }

        if (mapParams.containsKey("Destination")) {
            if (!mapParams.get("Destination").equals("Any")) {
                if (!mapParams.get("Destination").equals((String) runParams.get("Destination"))) {
                    return false;
                }
            }
        }

        if (mapParams.containsKey("ValidCard")) {
            Card moved = (Card) runParams.get("Card");
            if (!moved.isValidCard(mapParams.get("ValidCard").split(","), hostCard.getController(), hostCard)) {
                return false;
            }
        }

        return true;
    }