package magic.model.stack; import magic.model.MagicCopyMap; import magic.model.MagicPayedCost; import magic.model.MagicPermanent; import magic.model.event.MagicHandCastActivation; import magic.model.event.MagicEvent; import magic.model.event.MagicPermanentActivation; public class MagicAbilityOnStack extends MagicItemOnStack { public MagicAbilityOnStack(final MagicPermanentActivation activation, final MagicPermanent permanent, final MagicPayedCost payedCost) { super(permanent, permanent.getController(), activation.getPermanentEvent(permanent,payedCost), activation); } public MagicAbilityOnStack(final MagicHandCastActivation activation, final MagicEvent event) { super(event.getSource(), event.getPlayer(), event, activation); } private MagicAbilityOnStack(final MagicCopyMap copyMap, final MagicAbilityOnStack source) { super(copyMap, source); } @Override public MagicAbilityOnStack copy(final MagicCopyMap copyMap) { return new MagicAbilityOnStack(copyMap, this); } @Override public boolean isSpell() { return false; } @Override public boolean canBeCountered() { return true; } }