public boolean hasCandidates() {
        if (canTgtPlayer()) {
            return true;
        }

        for (Card c : AllZoneUtil.getCardsInZone(tgtZone, AllZone.getHumanPlayer())) {
            if (c.isValidCard(ValidTgts, srcCard.getController(), srcCard) && CardFactoryUtil.canTarget(srcCard, c)) {
                return true;
            }
        }

        for (Card c : AllZoneUtil.getCardsInZone(tgtZone, AllZone.getComputerPlayer())) {
            if (c.isValidCard(ValidTgts, srcCard.getController(), srcCard) && CardFactoryUtil.canTarget(srcCard, c)) {
                return true;
            }
        }

        return false;
    }