diff --git a/Mage.Sets/src/mage/cards/b/BlastfireBolt.java b/Mage.Sets/src/mage/cards/b/BlastfireBolt.java index e6ac583f52d..7a87b5c9e65 100644 --- a/Mage.Sets/src/mage/cards/b/BlastfireBolt.java +++ b/Mage.Sets/src/mage/cards/b/BlastfireBolt.java @@ -30,6 +30,7 @@ package mage.cards.b; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DestroyAllAttachedEquipmentEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -69,40 +70,3 @@ public class BlastfireBolt extends CardImpl { return new BlastfireBolt(this); } } - -class DestroyAllAttachedEquipmentEffect extends OneShotEffect { - - public DestroyAllAttachedEquipmentEffect() { - super(Outcome.Benefit); - this.staticText = "Destroy all Equipment attached to that creature"; - } - - public DestroyAllAttachedEquipmentEffect(final DestroyAllAttachedEquipmentEffect effect) { - super(effect); - } - - @Override - public DestroyAllAttachedEquipmentEffect copy() { - return new DestroyAllAttachedEquipmentEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Permanent target = game.getPermanent(source.getFirstTarget()); - if (target != null) { - List attachments = new ArrayList<>(target.getAttachments()); - for (UUID attachmentId : attachments) { - Permanent attachment = game.getPermanent(attachmentId); - if (attachment != null && attachment.hasSubtype(SubType.EQUIPMENT, game)) { - attachment.destroy(source.getSourceId(), game, false); - } - } - } - return true; - } - return false; - } - -} diff --git a/Mage.Sets/src/mage/cards/c/CorrosiveOoze.java b/Mage.Sets/src/mage/cards/c/CorrosiveOoze.java index 31bc5dfbe21..244750d0e4d 100644 --- a/Mage.Sets/src/mage/cards/c/CorrosiveOoze.java +++ b/Mage.Sets/src/mage/cards/c/CorrosiveOoze.java @@ -37,6 +37,7 @@ import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.DestroyAllAttachedEquipmentEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -68,7 +69,8 @@ public class CorrosiveOoze extends CardImpl { this.toughness = new MageInt(2); // Whenever Corrosive Ooze blocks or becomes blocked by an equipped creature, destroy all Equipment attached to that creature at end of combat. - Effect effect = new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(new CorrosiveOozeEffect()), true); + Effect effect = new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyAllAttachedEquipmentEffect()), true); + effect.setText("destroy all Equipment attached to that creature at end of combat"); this.addAbility(new BlocksOrBecomesBlockedTriggeredAbility(effect, filter, false)); } @@ -80,43 +82,4 @@ public class CorrosiveOoze extends CardImpl { public CorrosiveOoze copy() { return new CorrosiveOoze(this); } -} - -class CorrosiveOozeEffect extends OneShotEffect { - - public CorrosiveOozeEffect() { - super(Outcome.DestroyPermanent); - } - - public CorrosiveOozeEffect(final CorrosiveOozeEffect effect) { - super(effect); - } - - @Override - public CorrosiveOozeEffect copy() { - return new CorrosiveOozeEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source)); - if (permanent != null) { - LinkedList attachments = new LinkedList(); - attachments.addAll(permanent.getAttachments()); - for (UUID uuid : attachments) { - Permanent attachment = game.getPermanent(uuid); - if (attachment != null && attachment.hasSubtype(SubType.EQUIPMENT, game)) { - attachment.destroy(source.getSourceId(), game, false); - } - } - return true; - } - return false; - } - - @Override - public String getText(Mode mode) { - return "destroy all Equipment attached to that creature at end of combat"; - } - -} +} \ No newline at end of file diff --git a/Mage/src/main/java/mage/abilities/effects/common/DestroyAllAttachedEquipmentEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DestroyAllAttachedEquipmentEffect.java new file mode 100644 index 00000000000..bd3d34e65b7 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/DestroyAllAttachedEquipmentEffect.java @@ -0,0 +1,55 @@ +package mage.abilities.effects.common; + +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.constants.Outcome; +import mage.constants.SubType; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * + * @author Quercitron + */ + +public class DestroyAllAttachedEquipmentEffect extends OneShotEffect { + + public DestroyAllAttachedEquipmentEffect() { + super(Outcome.Benefit); + this.staticText = "Destroy all Equipment attached to that creature"; + } + + public DestroyAllAttachedEquipmentEffect(final DestroyAllAttachedEquipmentEffect effect) { + super(effect); + } + + @Override + public DestroyAllAttachedEquipmentEffect copy() { + return new DestroyAllAttachedEquipmentEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Permanent target = game.getPermanent(source.getFirstTarget()); + if (target != null) { + List attachments = new ArrayList<>(target.getAttachments()); + for (UUID attachmentId : attachments) { + Permanent attachment = game.getPermanent(attachmentId); + if (attachment != null && attachment.hasSubtype(SubType.EQUIPMENT, game)) { + attachment.destroy(source.getSourceId(), game, false); + } + } + } + return true; + } + return false; + } + +}