From b69093dfddb9334f4b58fc7f91cd35c2cf6e2663 Mon Sep 17 00:00:00 2001 From: Plopman Date: Wed, 18 Apr 2018 23:23:08 +0200 Subject: [PATCH] Fix card text --- Mage.Sets/src/mage/cards/a/ArmyAnts.java | 4 +- Mage.Sets/src/mage/cards/b/BlazingTorch.java | 51 ++++++------------- Mage.Sets/src/mage/cards/c/CruelEdict.java | 4 +- .../src/mage/cards/h/HibernationSliver.java | 2 +- Mage.Sets/src/mage/cards/o/OniPossession.java | 3 +- Mage.Sets/src/mage/cards/s/ShiftingSky.java | 4 +- .../src/mage/cards/s/SoltariChampion.java | 2 +- 7 files changed, 25 insertions(+), 45 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/ArmyAnts.java b/Mage.Sets/src/mage/cards/a/ArmyAnts.java index eb6686b34e5..bc2da6a7830 100644 --- a/Mage.Sets/src/mage/cards/a/ArmyAnts.java +++ b/Mage.Sets/src/mage/cards/a/ArmyAnts.java @@ -39,7 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.StaticFilters; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetLandPermanent; @@ -59,7 +59,7 @@ public class ArmyAnts extends CardImpl { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent()))); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT))); ability.addTarget(new TargetLandPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BlazingTorch.java b/Mage.Sets/src/mage/cards/b/BlazingTorch.java index 5e30d3829fc..623f9ee63b5 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingTorch.java +++ b/Mage.Sets/src/mage/cards/b/BlazingTorch.java @@ -35,7 +35,6 @@ import mage.abilities.costs.CostImpl; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.RestrictionEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; @@ -48,6 +47,10 @@ import mage.target.common.TargetCreatureOrPlayer; import java.util.List; import java.util.UUID; +import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAttachedEffect; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; /** * @@ -55,17 +58,27 @@ import java.util.UUID; */ public class BlazingTorch extends CardImpl { + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Vampires or Zombies"); + static { + filter.add(Predicates.or(new SubtypePredicate(SubType.VAMPIRE), + new SubtypePredicate(SubType.ZOMBIE))); + } + public BlazingTorch(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); this.subtype.add(SubType.EQUIPMENT); // Equipped creature can't be blocked by Vampires or Zombies. (!this is a static ability of the equipment) - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlazingTorchEvasionEffect())); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new CantBeBlockedByCreaturesAttachedEffect(Duration.WhileOnBattlefield, filter, AttachmentType.EQUIPMENT))); + + // Equipped creature has "{tap}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to target creature or player.") Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BlazingTorchDamageEffect(), new TapSourceCost()); ability.addCost(new BlazingTorchCost()); ability.addTarget(new TargetCreatureOrPlayer()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); + // Equip {1} this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); } @@ -80,40 +93,6 @@ public class BlazingTorch extends CardImpl { } } -class BlazingTorchEvasionEffect extends RestrictionEffect { - - public BlazingTorchEvasionEffect() { - super(Duration.WhileOnBattlefield); - staticText = "Equipped creature can't be blocked by Vampires or Zombies"; - } - - public BlazingTorchEvasionEffect(final BlazingTorchEvasionEffect effect) { - super(effect); - } - - @Override - public boolean applies(Permanent permanent, Ability source, Game game) { - Permanent equipment = game.getPermanent(source.getSourceId()); - if (equipment != null && equipment.getAttachedTo() != null) { - Permanent equipped = game.getPermanent(equipment.getAttachedTo()); - if (equipped != null && permanent.getId().equals(equipped.getId())) { - return true; - } - } - return false; - } - - @Override - public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game) { - return !blocker.hasSubtype(SubType.VAMPIRE, game) && !blocker.hasSubtype(SubType.ZOMBIE, game); - } - - @Override - public BlazingTorchEvasionEffect copy() { - return new BlazingTorchEvasionEffect(this); - } -} - class BlazingTorchCost extends CostImpl { public BlazingTorchCost() { diff --git a/Mage.Sets/src/mage/cards/c/CruelEdict.java b/Mage.Sets/src/mage/cards/c/CruelEdict.java index 462d18f355d..3ccd0f683e4 100644 --- a/Mage.Sets/src/mage/cards/c/CruelEdict.java +++ b/Mage.Sets/src/mage/cards/c/CruelEdict.java @@ -44,9 +44,9 @@ public class CruelEdict extends CardImpl { public CruelEdict(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}"); - this.getSpellAbility().addEffect(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "Target opponent sacrifices a creature")); - this.getSpellAbility().addTarget(new TargetOpponent()); // Target opponent sacrifices a creature. + this.getSpellAbility().addEffect(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "Target opponent")); + this.getSpellAbility().addTarget(new TargetOpponent()); } public CruelEdict(final CruelEdict card) { diff --git a/Mage.Sets/src/mage/cards/h/HibernationSliver.java b/Mage.Sets/src/mage/cards/h/HibernationSliver.java index 168760dc7e3..e548fb1734a 100644 --- a/Mage.Sets/src/mage/cards/h/HibernationSliver.java +++ b/Mage.Sets/src/mage/cards/h/HibernationSliver.java @@ -63,7 +63,7 @@ public class HibernationSliver extends CardImpl { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new PayLifeCost(2)); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(ability, Duration.WhileOnBattlefield, - new FilterPermanent(SubType.SLIVER, "All Slivers"), "All Slivers have \"Pay 2 life: Return this permanent to its owner's hand"))); + new FilterPermanent(SubType.SLIVER, "All Slivers"), "All Slivers have \"Pay 2 life: Return this permanent to its owner's hand.\""))); } public HibernationSliver(final HibernationSliver card) { diff --git a/Mage.Sets/src/mage/cards/o/OniPossession.java b/Mage.Sets/src/mage/cards/o/OniPossession.java index 03473e8a04c..1a98371e40f 100644 --- a/Mage.Sets/src/mage/cards/o/OniPossession.java +++ b/Mage.Sets/src/mage/cards/o/OniPossession.java @@ -42,6 +42,7 @@ import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; +import mage.filter.StaticFilters; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -65,7 +66,7 @@ public class OniPossession extends CardImpl { // At the beginning of your upkeep, sacrifice a creature. Ability ability2 = new BeginningOfUpkeepTriggeredAbility( - new SacrificeControllerEffect(new FilterControlledCreaturePermanent(), 1, ""), TargetController.YOU, false); + new SacrificeControllerEffect(new FilterControlledCreaturePermanent(StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT), 1, ""), TargetController.YOU, false); this.addAbility(ability2); // Enchanted creature gets +3/+3 and has trample. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 3, Duration.WhileOnBattlefield))); diff --git a/Mage.Sets/src/mage/cards/s/ShiftingSky.java b/Mage.Sets/src/mage/cards/s/ShiftingSky.java index a14c26d95d4..27aa10a1509 100644 --- a/Mage.Sets/src/mage/cards/s/ShiftingSky.java +++ b/Mage.Sets/src/mage/cards/s/ShiftingSky.java @@ -30,7 +30,7 @@ package mage.cards.s; import java.util.UUID; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.common.ChooseColorEffect; @@ -59,7 +59,7 @@ public class ShiftingSky extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}"); // As Shifting Sky enters the battlefield, choose a color. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ChooseColorEffect(Outcome.Detriment))); + this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Detriment))); // All nonland permanents are the chosen color. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ShiftingSkyEffect())); diff --git a/Mage.Sets/src/mage/cards/s/SoltariChampion.java b/Mage.Sets/src/mage/cards/s/SoltariChampion.java index 4eac77cbbd8..81765fc2296 100644 --- a/Mage.Sets/src/mage/cards/s/SoltariChampion.java +++ b/Mage.Sets/src/mage/cards/s/SoltariChampion.java @@ -56,7 +56,7 @@ public class SoltariChampion extends CardImpl { // Shadow this.addAbility(ShadowAbility.getInstance()); // Whenever Soltari Champion attacks, other creatures you control get +1/+1 until end of turn. - this.addAbility(new AttacksTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true), false)); + this.addAbility(new AttacksTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, true), false)); } public SoltariChampion(final SoltariChampion card) {