diff --git a/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java b/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java index a7be5dabb6..d7125ec8ff 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java @@ -1,14 +1,10 @@ - - package mage.cards.s; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -17,34 +13,30 @@ import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.permanent.token.WolfToken; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author Loki */ public final class SwordOfBodyAndMind extends CardImpl { public SwordOfBodyAndMind(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +2/+2 and has protection from green and from blue. - Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)); - Effect effect = new GainAbilityAttachedEffect(ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.BLUE), AttachmentType.EQUIPMENT); - effect.setText("and has protection from green and from blue"); - ability.addEffect(effect); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.BLUE), AttachmentType.EQUIPMENT + ).setText("and has protection from green and from blue")); this.addAbility(ability); // Whenever equipped creature deals combat damage to a player, you create a 2/2 green Wolf creature token and that player puts the top ten cards of their library into their graveyard. @@ -87,12 +79,10 @@ class SwordOfBodyAndMindAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { - DamagedPlayerEvent damageEvent = (DamagedPlayerEvent)event; + DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; Permanent p = game.getPermanent(event.getSourceId()); if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { - for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getPlayerId())); - } + this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } return false; @@ -102,4 +92,4 @@ class SwordOfBodyAndMindAbility extends TriggeredAbilityImpl { public String getRule() { return "Whenever equipped creature deals combat damage to a player, you create a 2/2 green Wolf creature token and that player mills ten cards."; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java b/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java index 1fde6eb424..2726d3e9a0 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java @@ -1,10 +1,10 @@ package mage.cards.s; import mage.ObjectColor; +import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.UntapAllLandsControllerEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; @@ -17,7 +17,6 @@ import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.targetpointer.FixedTarget; @@ -32,15 +31,18 @@ public final class SwordOfFeastAndFamine extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); this.subtype.add(SubType.EQUIPMENT); - // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); - // Equipped creature gets +2/+2 and has protection from black and from green. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.BLACK), AttachmentType.EQUIPMENT))); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.BLACK, ObjectColor.GREEN), AttachmentType.EQUIPMENT + ).setText("and has protection from black and from green")); + this.addAbility(ability); // Whenever equipped creature deals combat damage to a player, that player discards a card and you untap all lands you control. this.addAbility(new SwordOfFeastAndFamineAbility()); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); } private SwordOfFeastAndFamine(final SwordOfFeastAndFamine card) { @@ -79,9 +81,7 @@ class SwordOfFeastAndFamineAbility extends TriggeredAbilityImpl { DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; Permanent p = game.getPermanent(event.getSourceId()); if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { - for (Effect effect : this.getEffects()) { - effect.setTargetPointer(new FixedTarget(event.getPlayerId())); - } + this.getEffects().setTargetPointer(new FixedTarget(event.getPlayerId())); return true; } return false; @@ -89,6 +89,7 @@ class SwordOfFeastAndFamineAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever equipped creature deals combat damage to a player, that player discards a card and you untap all lands you control."; + return "Whenever equipped creature deals combat damage to a player, " + + "that player discards a card and you untap all lands you control."; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java b/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java index dce0293fc3..2f169cfbdd 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java @@ -1,8 +1,8 @@ package mage.cards.s; -import java.util.UUID; import mage.ObjectColor; -import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.DamageTargetEffect; @@ -15,16 +15,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Outcome; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.DamagedPlayerEvent; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; -import mage.game.permanent.Permanent; +import mage.constants.SubType; import mage.target.common.TargetAnyTarget; +import java.util.UUID; + /** * @author Loki */ @@ -35,12 +31,21 @@ public final class SwordOfFireAndIce extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +2/+2 and has protection from red and from blue. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect( - ProtectionAbility.from(ObjectColor.RED, ObjectColor.BLUE), AttachmentType.EQUIPMENT))); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.RED, ObjectColor.BLUE), AttachmentType.EQUIPMENT + ).setText("and has protection from red and from blue")); + this.addAbility(ability); + // Whenever equipped creature deals combat damage to a player, Sword of Fire // and Ice deals 2 damage to any target and you draw a card. - this.addAbility(new SwordOfFireAndIceAbility()); + ability = new DealsDamageToAPlayerAttachedTriggeredAbility( + new DamageTargetEffect(2), "equipped", false + ); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and")); + ability.addTarget(new TargetAnyTarget()); + this.addAbility(ability); + // Equip {2} this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); } @@ -55,41 +60,3 @@ public final class SwordOfFireAndIce extends CardImpl { } } - -class SwordOfFireAndIceAbility extends TriggeredAbilityImpl { - - public SwordOfFireAndIceAbility() { - super(Zone.BATTLEFIELD, new DamageTargetEffect(2)); - this.addEffect(new DrawCardSourceControllerEffect(1)); - this.addTarget(new TargetAnyTarget()); - } - - public SwordOfFireAndIceAbility(final SwordOfFireAndIceAbility ability) { - super(ability); - } - - @Override - public SwordOfFireAndIceAbility copy() { - return new SwordOfFireAndIceAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DAMAGED_PLAYER; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; - Permanent p = game.getPermanent(event.getSourceId()); - return damageEvent.isCombatDamage() - && p != null - && p.getAttachments().contains(this.getSourceId()); - } - - @Override - public String getRule() { - return "Whenever equipped creature deals combat damage to a player, " - + "{this} deals 2 damage to any target and you draw a card."; - } -} diff --git a/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java b/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java new file mode 100644 index 0000000000..f43d18eb7d --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java @@ -0,0 +1,109 @@ +package mage.cards.s; + +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.constants.*; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPermanent; +import mage.target.common.TargetCardInLibrary; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SwordOfHearthAndHome extends CardImpl { + + private static final FilterPermanent filter = new FilterCreaturePermanent("creature you own"); + + static { + filter.add(TargetController.YOU.getOwnerPredicate()); + } + + public SwordOfHearthAndHome(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); + + this.subtype.add(SubType.EQUIPMENT); + + // Equipped creature gets +2/+2 and has protection from green and from white. + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.GREEN, ObjectColor.WHITE), AttachmentType.EQUIPMENT + ).setText("and has protection from green and from white")); + this.addAbility(ability); + + // Whenever equipped creature deals combat damage to a player, exile up to one target creature you own, then search your library for a basic land card. Put both cards onto the battlefield under your control, then shuffle. + ability = new DealsDamageToAPlayerAttachedTriggeredAbility( + new SwordOfHearthAndHomeEffect(), "equipped", false + ); + ability.addTarget(new TargetPermanent(0, 1, filter)); + this.addAbility(ability); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); + } + + private SwordOfHearthAndHome(final SwordOfHearthAndHome card) { + super(card); + } + + @Override + public SwordOfHearthAndHome copy() { + return new SwordOfHearthAndHome(this); + } +} + +class SwordOfHearthAndHomeEffect extends OneShotEffect { + + SwordOfHearthAndHomeEffect() { + super(Outcome.Benefit); + staticText = "exile up to one target creature you own, then search your library for a basic land card. " + + "Put both cards onto the battlefield under your control, then shuffle"; + } + + private SwordOfHearthAndHomeEffect(final SwordOfHearthAndHomeEffect effect) { + super(effect); + } + + @Override + public SwordOfHearthAndHomeEffect copy() { + return new SwordOfHearthAndHomeEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player == null) { + return false; + } + Cards cards = new CardsImpl(); + Permanent permanent = game.getPermanent(source.getFirstTarget()); + if (permanent != null) { + player.moveCards(permanent, Zone.EXILED, source, game); + cards.add(permanent); + } + TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND); + player.searchLibrary(target, source, game); + cards.add(player.getLibrary().getCard(target.getFirstTarget(), game)); + player.moveCards(cards, Zone.BATTLEFIELD, source, game); + player.shuffleLibrary(source, game); + return true; + } +} diff --git a/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java b/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java index 61a10a0663..9a27b5cd09 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java @@ -1,10 +1,8 @@ - package mage.cards.s; -import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; @@ -16,20 +14,14 @@ import mage.abilities.keyword.ProtectionAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SubType; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.StaticFilters; import mage.game.Game; -import mage.game.events.DamagedPlayerEvent; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; -import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** * @author Loki */ @@ -40,12 +32,22 @@ public final class SwordOfLightAndShadow extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +2/+2 and has protection from white and from black. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ProtectionAbility.from(ObjectColor.WHITE, ObjectColor.BLACK), AttachmentType.EQUIPMENT))); - // Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand. - Ability ability = new SwordOfLightAndShadowAbility(); - ability.addTarget(new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.WHITE, ObjectColor.BLACK), AttachmentType.EQUIPMENT + ).setText("and has protection from white and from black")); this.addAbility(ability); + + // Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand. + ability = new DealsDamageToAPlayerAttachedTriggeredAbility( + new GainLifeEffect(3), "equipped", false + ); + ability.addEffect(new SwordOfLightAndShadowEffect()); + ability.addTarget(new TargetCardInYourGraveyard( + 0, 1, StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD + )); + this.addAbility(ability); + // Equip {2} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); } @@ -60,81 +62,28 @@ public final class SwordOfLightAndShadow extends CardImpl { } } -class SwordOfLightAndShadowAbility extends TriggeredAbilityImpl { +class SwordOfLightAndShadowEffect extends OneShotEffect { - public SwordOfLightAndShadowAbility() { - super(Zone.BATTLEFIELD, new GainLifeEffect(3), false); - this.addEffect(new SwordOfLightAndShadowReturnToHandTargetEffect()); - - } - - public SwordOfLightAndShadowAbility(final SwordOfLightAndShadowAbility ability) { - super(ability); - } - - @Override - public SwordOfLightAndShadowAbility copy() { - return new SwordOfLightAndShadowAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DAMAGED_PLAYER; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - DamagedPlayerEvent damageEvent = (DamagedPlayerEvent) event; - Permanent p = game.getPermanent(event.getSourceId()); - return damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId()); - } - - @Override - public String getRule() { - return "Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand."; - } -} - -class SwordOfLightAndShadowReturnToHandTargetEffect extends OneShotEffect { - - public SwordOfLightAndShadowReturnToHandTargetEffect() { + public SwordOfLightAndShadowEffect() { super(Outcome.ReturnToHand); staticText = "and you may return up to one target creature card from your graveyard to your hand"; } - public SwordOfLightAndShadowReturnToHandTargetEffect(final SwordOfLightAndShadowReturnToHandTargetEffect effect) { + public SwordOfLightAndShadowEffect(final SwordOfLightAndShadowEffect effect) { super(effect); } @Override - public SwordOfLightAndShadowReturnToHandTargetEffect copy() { - return new SwordOfLightAndShadowReturnToHandTargetEffect(this); + public SwordOfLightAndShadowEffect copy() { + return new SwordOfLightAndShadowEffect(this); } @Override public boolean apply(Game game, Ability source) { - boolean result = true; // in case no target is selected Player controller = game.getPlayer(source.getControllerId()); - if (controller == null) { - return false; - } - if (!source.getTargets().isEmpty() && targetPointer.getFirst(game, source) != null) { - if (controller.chooseUse(outcome, "Return creature card from graveyard to hand?", source, game)) { - for (UUID targetId : targetPointer.getTargets(game, source)) { - switch (game.getState().getZone(targetId)) { - case GRAVEYARD: - Card card = game.getCard(targetId); - if (card != null) { - controller.moveCards(card, Zone.HAND, source, game); - } else { - result = false; - } - break; - } - } - } - } - return result; + Card card = game.getCard(targetPointer.getFirst(game, source)); + return controller != null && card != null && controller.chooseUse( + outcome, "Return " + card.getName() + " from your graveyard to your hand?", source, game + ) && controller.moveCards(card, Zone.HAND, source, game); } - } diff --git a/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java b/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java index 0ca554787d..5fd5c2d1c4 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java @@ -33,9 +33,9 @@ public final class SwordOfSinewAndSteel extends CardImpl { // Equipped creature gets +2/+2 and has protection from black and from red. Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); - ability.addEffect(new GainAbilityAttachedEffect(ProtectionAbility.from( - ObjectColor.BLACK, ObjectColor.RED - ), AttachmentType.EQUIPMENT).setText("and has protection from black and from red")); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.BLACK, ObjectColor.RED), AttachmentType.EQUIPMENT + ).setText("and has protection from black and from red")); this.addAbility(ability); // Whenever equipped creature deals combat damage to a player, destroy up to one target planeswalker and up to one target artifact. diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java b/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java index c8f902ef4c..f4bc9dce2d 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java @@ -38,9 +38,9 @@ public final class SwordOfTruthAndJustice extends CardImpl { // Equipped creature gets +2/+2 and has protection from white and from blue. Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); - ability.addEffect(new GainAbilityAttachedEffect(ProtectionAbility.from( - ObjectColor.WHITE, ObjectColor.BLUE - ), AttachmentType.EQUIPMENT).setText("and has protection from white and from blue")); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.WHITE, ObjectColor.BLUE), AttachmentType.EQUIPMENT + ).setText("and has protection from white and from blue")); this.addAbility(ability); // Whenever equipped creature deals combat damage to a player, put a +1/+1 counter on a creature you control, then proliferate. diff --git a/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java b/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java index fbb56c2eca..4998d59181 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java @@ -6,7 +6,6 @@ import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.common.CardsInControllerHandCount; -import mage.abilities.effects.Effect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -19,7 +18,6 @@ import mage.constants.*; import mage.game.Game; import mage.game.events.DamagedPlayerEvent; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.targetpointer.FixedTarget; @@ -36,10 +34,10 @@ public final class SwordOfWarAndPeace extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +2/+2 and has protection from red and from white. - Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)); - Effect effect = new GainAbilityAttachedEffect(ProtectionAbility.from(ObjectColor.RED, ObjectColor.WHITE), AttachmentType.EQUIPMENT); - effect.setText("and has protection from red and from white"); - ability.addEffect(effect); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + ability.addEffect(new GainAbilityAttachedEffect( + ProtectionAbility.from(ObjectColor.RED, ObjectColor.WHITE), AttachmentType.EQUIPMENT + ).setText("and has protection from red and from white")); this.addAbility(ability); // Whenever equipped creature deals combat damage to a player, Sword of War and Peace deals damage to that player equal to the number of cards in their hand and you gain 1 life for each card in your hand. diff --git a/Mage.Sets/src/mage/sets/ModernHorizons2.java b/Mage.Sets/src/mage/sets/ModernHorizons2.java index 849dde9ef4..20a8ccb530 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons2.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons2.java @@ -261,6 +261,7 @@ public final class ModernHorizons2 extends ExpansionSet { cards.add(new SetCardInfo("Svyelun of Sea and Sky", 69, Rarity.MYTHIC, mage.cards.s.SvyelunOfSeaAndSky.class)); cards.add(new SetCardInfo("Swamp", 485, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Sweep the Skies", 70, Rarity.UNCOMMON, mage.cards.s.SweepTheSkies.class)); + cards.add(new SetCardInfo("Sword of Hearth and Home", 238, Rarity.MYTHIC, mage.cards.s.SwordOfHearthAndHome.class)); cards.add(new SetCardInfo("Sylvan Anthem", 176, Rarity.RARE, mage.cards.s.SylvanAnthem.class)); cards.add(new SetCardInfo("Sythis, Harvest's Hand", 214, Rarity.RARE, mage.cards.s.SythisHarvestsHand.class)); cards.add(new SetCardInfo("Tanglepool Bridge", 257, Rarity.COMMON, mage.cards.t.TanglepoolBridge.class));