private static boolean drainManaTrigger(AbilityFactory af, SpellAbility sa, boolean mandatory) {
        if (!ComputerUtil.canPayCost(sa))
            return false;

        HashMap<String, String> params = af.getMapParams();
        Target tgt = sa.getTarget();
        Card source = sa.getSourceCard();

        if (null == tgt) {
            if (mandatory) {
                return true;
            } else {
                ArrayList<Player> defined = AbilityFactory.getDefinedPlayers(source, params.get("Defined"), sa);

                if (!defined.contains(AllZone.getHumanPlayer())) {
                    return false;
                }
            }

            return true;
        } else {
            tgt.resetTargets();
            tgt.addTarget(AllZone.getHumanPlayer());
        }

        return true;
    }