source of event may be MagicCardOnStack instead of MagicPermanent, therefore should use getSource()