public void activate(Card... targets) {
        this.targets = targets;
        payCost();
        for (Card target : targets) {
            target(target, source);
            if (!checkConditions((Permanent) target, conditions)) {
                throw new InvalidTargetException();
            }
        }
    }