From 2996b0f76f7d4b65a1fe9aeb6935cfdcd2977209 Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Sun, 6 Feb 2022 10:08:17 -0500 Subject: [PATCH 1/6] Changed getTopCards to use LinkedHashSet to always return cards in the same order that they are in the library. --- Mage/src/main/java/mage/players/Library.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage/src/main/java/mage/players/Library.java b/Mage/src/main/java/mage/players/Library.java index e08aab6741..01c6e90f06 100644 --- a/Mage/src/main/java/mage/players/Library.java +++ b/Mage/src/main/java/mage/players/Library.java @@ -168,7 +168,7 @@ public class Library implements Serializable { } public Set getTopCards(Game game, int amount) { - Set cards = new HashSet<>(); + Set cards = new LinkedHashSet<>(); Iterator it = library.iterator(); int count = 0; while (it.hasNext() && count < amount) { From 919f320086e8ba0c01785d956b9c65ee1006fc16 Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Sun, 6 Feb 2022 17:56:13 -0500 Subject: [PATCH 2/6] Made hint optional for Equip --- Mage.Sets/src/mage/cards/a/ArgentumArmor.java | 2 +- Mage.Sets/src/mage/cards/a/AshmouthBlade.java | 2 +- Mage.Sets/src/mage/cards/a/AssaultSuit.java | 2 +- Mage.Sets/src/mage/cards/a/AvacynsCollar.java | 2 +- .../src/mage/cards/b/BarbedBattlegear.java | 6 ++++- Mage.Sets/src/mage/cards/b/BarbedSpike.java | 2 +- .../src/mage/cards/b/BasiliskCollar.java | 2 +- Mage.Sets/src/mage/cards/b/Batterbone.java | 2 +- Mage.Sets/src/mage/cards/b/Batterskull.java | 2 +- .../src/mage/cards/b/BattlemagesBracers.java | 2 +- Mage.Sets/src/mage/cards/b/BeardedAxe.java | 2 +- .../src/mage/cards/b/BehemothSledge.java | 7 +++--- .../src/mage/cards/b/BeltOfGiantStrength.java | 2 +- .../src/mage/cards/b/BlackbladeReforged.java | 4 ++-- Mage.Sets/src/mage/cards/b/BladeOfSelves.java | 2 +- .../mage/cards/b/BladeOfTheBloodchief.java | 2 +- Mage.Sets/src/mage/cards/b/BladedPinions.java | 6 ++++- .../src/mage/cards/b/BlazingSunsteel.java | 2 +- Mage.Sets/src/mage/cards/b/BlightSickle.java | 2 +- .../mage/cards/b/BloodforgedBattleAxe.java | 2 +- Mage.Sets/src/mage/cards/b/Bonehoard.java | 2 +- Mage.Sets/src/mage/cards/b/Bonesplitter.java | 6 +++-- .../src/mage/cards/b/ButchersCleaver.java | 2 +- Mage.Sets/src/mage/cards/c/CaptainsClaws.java | 2 +- Mage.Sets/src/mage/cards/c/CaptainsHook.java | 2 +- Mage.Sets/src/mage/cards/c/ChampionsHelm.java | 2 +- .../src/mage/cards/c/ChariotOfVictory.java | 2 +- .../src/mage/cards/c/ChitinousCloak.java | 2 +- Mage.Sets/src/mage/cards/c/CivicSaber.java | 3 ++- .../src/mage/cards/c/CloakAndDagger.java | 2 +- .../src/mage/cards/c/CommandersPlate.java | 4 ++-- .../src/mage/cards/c/ConquerorsFlail.java | 2 +- .../src/mage/cards/c/CranialPlating.java | 2 +- Mage.Sets/src/mage/cards/d/DancingSword.java | 2 +- Mage.Sets/src/mage/cards/d/DarksteelAxe.java | 8 ++++++- .../src/mage/cards/d/DarksteelPlate.java | 2 +- Mage.Sets/src/mage/cards/d/Deathrender.java | 2 +- .../src/mage/cards/d/DemonmailHauberk.java | 9 +++++--- .../src/mage/cards/d/DemonspineWhip.java | 2 +- Mage.Sets/src/mage/cards/d/DivinersWand.java | 2 +- Mage.Sets/src/mage/cards/d/DowsingDagger.java | 2 +- .../mage/cards/d/DragonThroneOfTarkir.java | 2 +- Mage.Sets/src/mage/cards/d/DraugrsHelm.java | 2 +- Mage.Sets/src/mage/cards/d/DwarvenHammer.java | 2 +- Mage.Sets/src/mage/cards/e/EchoCirclet.java | 2 +- .../mage/cards/e/ElbrusTheBindingBlade.java | 2 +- Mage.Sets/src/mage/cards/e/ElvenBow.java | 2 +- Mage.Sets/src/mage/cards/e/Embercleave.java | 2 +- Mage.Sets/src/mage/cards/e/EmpyrialPlate.java | 2 +- Mage.Sets/src/mage/cards/f/Fiendlash.java | 2 +- Mage.Sets/src/mage/cards/f/FlayerHusk.java | 7 +++++- .../src/mage/cards/f/ForebearsBlade.java | 2 +- .../src/mage/cards/f/FractalHarness.java | 2 +- Mage.Sets/src/mage/cards/g/GateSmasher.java | 2 +- .../src/mage/cards/g/GhostfireBlade.java | 2 +- Mage.Sets/src/mage/cards/g/GiantsAmulet.java | 2 +- .../src/mage/cards/g/GoblinMorningstar.java | 2 +- Mage.Sets/src/mage/cards/g/Godsend.java | 2 +- Mage.Sets/src/mage/cards/g/GorgonsHead.java | 2 +- .../src/mage/cards/g/GraftedExoskeleton.java | 2 +- Mage.Sets/src/mage/cards/g/GrapplingHook.java | 2 +- Mage.Sets/src/mage/cards/g/GriftersBlade.java | 2 +- .../src/mage/cards/h/HalvarGodOfBattle.java | 2 +- .../src/mage/cards/h/HammerOfNazahn.java | 2 +- Mage.Sets/src/mage/cards/h/HammerOfRuin.java | 2 +- Mage.Sets/src/mage/cards/h/HandOfVecna.java | 11 +++++---- Mage.Sets/src/mage/cards/h/HeavyArbalest.java | 2 +- Mage.Sets/src/mage/cards/h/HedronMatrix.java | 6 ++++- Mage.Sets/src/mage/cards/h/HeirloomBlade.java | 2 +- Mage.Sets/src/mage/cards/h/HelmOfKaldra.java | 2 +- Mage.Sets/src/mage/cards/h/HelmOfTheHost.java | 2 +- Mage.Sets/src/mage/cards/h/HolyAvenger.java | 2 +- .../src/mage/cards/i/IllusionistsBracers.java | 2 +- .../src/mage/cards/i/InfiltrationLens.java | 2 +- .../src/mage/cards/i/InquisitorsFlail.java | 2 +- .../src/mage/cards/k/KaldraCompleat.java | 2 +- Mage.Sets/src/mage/cards/k/KondasBanner.java | 2 +- Mage.Sets/src/mage/cards/l/Lashwrithe.java | 7 +++++- Mage.Sets/src/mage/cards/l/LeatherArmor.java | 2 +- Mage.Sets/src/mage/cards/l/LeeringEmblem.java | 6 ++++- .../src/mage/cards/l/LightningGreaves.java | 2 +- .../src/mage/cards/l/LightningSpear.java | 2 +- Mage.Sets/src/mage/cards/l/LivewireLash.java | 6 ++++- Mage.Sets/src/mage/cards/l/LobeLobber.java | 2 +- .../src/mage/cards/l/LoxodonWarhammer.java | 2 +- Mage.Sets/src/mage/cards/l/Lucille.java | 2 +- .../src/mage/cards/m/MaceOfTheValiant.java | 2 +- Mage.Sets/src/mage/cards/m/MageSlayer.java | 2 +- Mage.Sets/src/mage/cards/m/ManaforceMace.java | 2 +- Mage.Sets/src/mage/cards/m/MaskOfAvacyn.java | 6 ++--- .../src/mage/cards/m/MaskOfGriselbrand.java | 2 +- Mage.Sets/src/mage/cards/m/MaskOfRiddles.java | 2 +- .../src/mage/cards/m/MaulOfTheSkyclaves.java | 2 +- Mage.Sets/src/mage/cards/m/MeteoricMace.java | 2 +- Mage.Sets/src/mage/cards/m/MindCarver.java | 2 +- .../src/mage/cards/m/MoonsilverSpear.java | 2 +- Mage.Sets/src/mage/cards/m/Mortarpod.java | 2 +- Mage.Sets/src/mage/cards/m/MurderersAxe.java | 2 +- Mage.Sets/src/mage/cards/n/Necropouncer.java | 2 +- .../src/mage/cards/n/NeglectedHeirloom.java | 4 ++-- Mage.Sets/src/mage/cards/n/NekoTe.java | 2 +- Mage.Sets/src/mage/cards/n/Nettlecyst.java | 2 +- .../src/mage/cards/n/NimDeathmantle.java | 2 +- Mage.Sets/src/mage/cards/o/ONaginata.java | 2 +- .../mage/cards/o/OathkeeperTakenosDaisho.java | 2 +- .../src/mage/cards/o/ObsidianBattleAxe.java | 2 +- Mage.Sets/src/mage/cards/o/OgresCleaver.java | 5 +++- .../src/mage/cards/p/ParadiseMantle.java | 2 +- Mage.Sets/src/mage/cards/p/PariahsShield.java | 2 +- Mage.Sets/src/mage/cards/p/PathwayArrows.java | 2 +- Mage.Sets/src/mage/cards/p/PeregrineMask.java | 2 +- Mage.Sets/src/mage/cards/p/PistonSledge.java | 7 +++++- Mage.Sets/src/mage/cards/p/PlateArmor.java | 2 +- Mage.Sets/src/mage/cards/p/PoetsQuill.java | 2 +- Mage.Sets/src/mage/cards/p/ProwlersHelm.java | 2 +- Mage.Sets/src/mage/cards/q/QuietusSpike.java | 2 +- .../src/mage/cards/r/RakdosRiteknife.java | 2 +- Mage.Sets/src/mage/cards/r/RavagersMace.java | 2 +- .../src/mage/cards/r/RazorBoomerang.java | 2 +- Mage.Sets/src/mage/cards/r/RelicAxe.java | 2 +- Mage.Sets/src/mage/cards/r/RobeOfStars.java | 2 +- .../src/mage/cards/r/RunechantersPike.java | 5 ++-- Mage.Sets/src/mage/cards/r/RunedCrown.java | 2 +- .../src/mage/cards/r/RunedStalactite.java | 2 +- .../src/mage/cards/s/SaiOfTheShinobi.java | 2 +- .../src/mage/cards/s/SanctuaryBlade.java | 2 +- .../src/mage/cards/s/ScroungedScythe.java | 2 +- .../src/mage/cards/s/ScytheOfTheWretched.java | 2 +- Mage.Sets/src/mage/cards/s/Scytheclaw.java | 2 +- .../src/mage/cards/s/SeraphicGreatsword.java | 2 +- Mage.Sets/src/mage/cards/s/Shadowspear.java | 2 +- .../src/mage/cards/s/SharpenedPitchfork.java | 6 ++--- .../src/mage/cards/s/ShieldOfKaldra.java | 2 +- .../src/mage/cards/s/ShieldOfTheRealm.java | 2 +- .../mage/cards/s/ShieldOfTheRighteous.java | 2 +- Mage.Sets/src/mage/cards/s/Sickleslicer.java | 10 ++++++-- .../src/mage/cards/s/SigilOfDistinction.java | 2 +- .../mage/cards/s/SigiledSwordOfValeron.java | 2 +- .../src/mage/cards/s/SilverInlaidDagger.java | 6 ++--- .../src/mage/cards/s/SilverskinArmor.java | 2 +- Mage.Sets/src/mage/cards/s/SirenSongLyre.java | 2 +- Mage.Sets/src/mage/cards/s/SkeletonKey.java | 2 +- Mage.Sets/src/mage/cards/s/Skinwing.java | 7 +++++- Mage.Sets/src/mage/cards/s/Skullclamp.java | 2 +- .../src/mage/cards/s/SkyclavePickAxe.java | 2 +- Mage.Sets/src/mage/cards/s/SlabHammer.java | 2 +- .../src/mage/cards/s/SlayersCleaver.java | 3 ++- Mage.Sets/src/mage/cards/s/SlayersPlate.java | 2 +- Mage.Sets/src/mage/cards/s/SorcerersWand.java | 2 +- Mage.Sets/src/mage/cards/s/Spellbinder.java | 2 +- .../src/mage/cards/s/SteelclawLance.java | 4 ++-- .../src/mage/cards/s/StitchersGraft.java | 2 +- .../mage/cards/s/StoneforgeMasterwork.java | 3 ++- Mage.Sets/src/mage/cards/s/StormriderRig.java | 2 +- Mage.Sets/src/mage/cards/s/Strandwalker.java | 7 +++++- Mage.Sets/src/mage/cards/s/StrataScythe.java | 8 ++++++- Mage.Sets/src/mage/cards/s/Sunforger.java | 2 +- .../src/mage/cards/s/SwiftfootBoots.java | 2 +- .../src/mage/cards/s/SwordOfBodyAndMind.java | 2 +- .../cards/s/SwordOfDungeonsAndDragons.java | 2 +- .../mage/cards/s/SwordOfFeastAndFamine.java | 2 +- .../src/mage/cards/s/SwordOfFireAndIce.java | 2 +- .../mage/cards/s/SwordOfHearthAndHome.java | 2 +- .../mage/cards/s/SwordOfLightAndShadow.java | 2 +- .../mage/cards/s/SwordOfSinewAndSteel.java | 2 +- .../src/mage/cards/s/SwordOfTheAnimist.java | 2 +- .../src/mage/cards/s/SwordOfTheMeek.java | 2 +- .../src/mage/cards/s/SwordOfTheParuns.java | 2 +- .../mage/cards/s/SwordOfTruthAndJustice.java | 2 +- .../src/mage/cards/s/SwordOfVengeance.java | 2 +- .../src/mage/cards/s/SwordOfWarAndPeace.java | 2 +- .../src/mage/cards/s/SylvokLifestaff.java | 4 ++-- .../mage/cards/t/TatsumasaTheDragonsFang.java | 2 +- Mage.Sets/src/mage/cards/t/TeamPennant.java | 4 ++-- Mage.Sets/src/mage/cards/t/ThirstingAxe.java | 2 +- .../src/mage/cards/t/ThornbiteStaff.java | 2 +- .../src/mage/cards/t/ToralfGodOfFury.java | 2 +- .../src/mage/cards/t/TormentorsTrident.java | 2 +- .../src/mage/cards/t/TrailblazersBoots.java | 2 +- .../src/mage/cards/t/TrepanationBlade.java | 2 +- .../src/mage/cards/t/TrickstersTalisman.java | 2 +- Mage.Sets/src/mage/cards/t/TrustyMachete.java | 2 +- Mage.Sets/src/mage/cards/u/UmbralMantle.java | 2 +- Mage.Sets/src/mage/cards/u/UmezawasJitte.java | 2 +- .../mage/cards/u/UnscytheKillerOfKings.java | 2 +- .../src/mage/cards/v/ValkyriesSword.java | 2 +- Mage.Sets/src/mage/cards/v/VectisGloves.java | 2 +- .../src/mage/cards/v/VeteransArmaments.java | 2 +- Mage.Sets/src/mage/cards/v/ViridianClaw.java | 2 +- Mage.Sets/src/mage/cards/v/VorpalSword.java | 2 +- Mage.Sets/src/mage/cards/w/WandOfOrcus.java | 2 +- .../src/mage/cards/w/WhispersilkCloak.java | 2 +- .../src/mage/cards/w/WhispersteelDagger.java | 2 +- Mage.Sets/src/mage/cards/w/WingedBoots.java | 2 +- Mage.Sets/src/mage/cards/w/WitchesEye.java | 2 +- .../src/mage/cards/w/WolfhuntersQuiver.java | 2 +- .../java/mage/verify/VerifyCardDataTest.java | 6 ++--- .../mage/abilities/keyword/EquipAbility.java | 23 ++++++++++++++++--- 198 files changed, 318 insertions(+), 226 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/ArgentumArmor.java b/Mage.Sets/src/mage/cards/a/ArgentumArmor.java index 23d9bbe685..c4e8cab728 100644 --- a/Mage.Sets/src/mage/cards/a/ArgentumArmor.java +++ b/Mage.Sets/src/mage/cards/a/ArgentumArmor.java @@ -36,7 +36,7 @@ public final class ArgentumArmor extends CardImpl { this.addAbility(ability); // Equip {6} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(6))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(6), false)); } private ArgentumArmor(final ArgentumArmor card) { diff --git a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java b/Mage.Sets/src/mage/cards/a/AshmouthBlade.java index 332af8da2e..09d71e4a31 100644 --- a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java +++ b/Mage.Sets/src/mage/cards/a/AshmouthBlade.java @@ -37,7 +37,7 @@ public final class AshmouthBlade extends CardImpl { ability.addEffect(effect); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private AshmouthBlade(final AshmouthBlade card) { diff --git a/Mage.Sets/src/mage/cards/a/AssaultSuit.java b/Mage.Sets/src/mage/cards/a/AssaultSuit.java index ccacf12f50..39ebc4da05 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultSuit.java +++ b/Mage.Sets/src/mage/cards/a/AssaultSuit.java @@ -52,7 +52,7 @@ public final class AssaultSuit extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AssaultSuitGainControlEffect(), TargetController.OPPONENT, false)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.Detriment, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.Detriment, new GenericManaCost(3), false)); } private AssaultSuit(final AssaultSuit card) { diff --git a/Mage.Sets/src/mage/cards/a/AvacynsCollar.java b/Mage.Sets/src/mage/cards/a/AvacynsCollar.java index 4406422185..b196625eef 100644 --- a/Mage.Sets/src/mage/cards/a/AvacynsCollar.java +++ b/Mage.Sets/src/mage/cards/a/AvacynsCollar.java @@ -43,7 +43,7 @@ public final class AvacynsCollar extends CardImpl { this.addAbility(new AvacynsCollarTriggeredAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private AvacynsCollar(final AvacynsCollar card) { diff --git a/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java b/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java index 0e3642ad7f..667e6aa627 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java +++ b/Mage.Sets/src/mage/cards/b/BarbedBattlegear.java @@ -23,8 +23,12 @@ public final class BarbedBattlegear extends CardImpl { public BarbedBattlegear (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); this.subtype.add(SubType.EQUIPMENT); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + + // Equipped creature gets +4/-1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(4, -1))); + + // Equip {2} + this.addAbility(new EquipAbility(2, false)); } public BarbedBattlegear (final BarbedBattlegear card) { diff --git a/Mage.Sets/src/mage/cards/b/BarbedSpike.java b/Mage.Sets/src/mage/cards/b/BarbedSpike.java index a6e73afedc..506255e791 100644 --- a/Mage.Sets/src/mage/cards/b/BarbedSpike.java +++ b/Mage.Sets/src/mage/cards/b/BarbedSpike.java @@ -32,7 +32,7 @@ public final class BarbedSpike extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 0))); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private BarbedSpike(final BarbedSpike card) { diff --git a/Mage.Sets/src/mage/cards/b/BasiliskCollar.java b/Mage.Sets/src/mage/cards/b/BasiliskCollar.java index 85cc83531b..f192ca9aaf 100644 --- a/Mage.Sets/src/mage/cards/b/BasiliskCollar.java +++ b/Mage.Sets/src/mage/cards/b/BasiliskCollar.java @@ -33,7 +33,7 @@ public final class BasiliskCollar extends CardImpl { ).setText("and lifelink")); this.addAbility(ability); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private BasiliskCollar(final BasiliskCollar card) { diff --git a/Mage.Sets/src/mage/cards/b/Batterbone.java b/Mage.Sets/src/mage/cards/b/Batterbone.java index a0c982d36a..47c4d133c5 100644 --- a/Mage.Sets/src/mage/cards/b/Batterbone.java +++ b/Mage.Sets/src/mage/cards/b/Batterbone.java @@ -40,7 +40,7 @@ public final class Batterbone extends CardImpl { this.addAbility(ability); // Equip {5} - this.addAbility(new EquipAbility(5)); + this.addAbility(new EquipAbility(5, false)); } private Batterbone(final Batterbone card) { diff --git a/Mage.Sets/src/mage/cards/b/Batterskull.java b/Mage.Sets/src/mage/cards/b/Batterskull.java index b7ec75ecb5..707743af46 100644 --- a/Mage.Sets/src/mage/cards/b/Batterskull.java +++ b/Mage.Sets/src/mage/cards/b/Batterskull.java @@ -39,7 +39,7 @@ public final class Batterskull extends CardImpl { this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new GenericManaCost(3))); // Equip {5} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(5))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(5), false)); } private Batterskull(final Batterskull card) { diff --git a/Mage.Sets/src/mage/cards/b/BattlemagesBracers.java b/Mage.Sets/src/mage/cards/b/BattlemagesBracers.java index d37578da8a..15aebd5bac 100644 --- a/Mage.Sets/src/mage/cards/b/BattlemagesBracers.java +++ b/Mage.Sets/src/mage/cards/b/BattlemagesBracers.java @@ -38,7 +38,7 @@ public final class BattlemagesBracers extends CardImpl { this.addAbility(new BattlemagesBracersTriggeredAbility()); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private BattlemagesBracers(final BattlemagesBracers card) { diff --git a/Mage.Sets/src/mage/cards/b/BeardedAxe.java b/Mage.Sets/src/mage/cards/b/BeardedAxe.java index de5ae961f5..ddc9d15ee3 100644 --- a/Mage.Sets/src/mage/cards/b/BeardedAxe.java +++ b/Mage.Sets/src/mage/cards/b/BeardedAxe.java @@ -46,7 +46,7 @@ public final class BeardedAxe extends CardImpl { ).addHint(hint)); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private BeardedAxe(final BeardedAxe card) { diff --git a/Mage.Sets/src/mage/cards/b/BehemothSledge.java b/Mage.Sets/src/mage/cards/b/BehemothSledge.java index f92bc30bad..37dcd4c939 100644 --- a/Mage.Sets/src/mage/cards/b/BehemothSledge.java +++ b/Mage.Sets/src/mage/cards/b/BehemothSledge.java @@ -24,15 +24,17 @@ public final class BehemothSledge extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{G}{W}"); this.subtype.add(SubType.EQUIPMENT); + // Equipped creature gets +2/+2 and has trample and lifelink. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)); ability.addEffect(new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT).setText("and has trample")); ability.addEffect(new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.EQUIPMENT).setText("and lifelink")); this.addAbility(ability); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + // Equip {3} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } - protected BehemothSledge(BehemothSledge me) { + private BehemothSledge(BehemothSledge me) { super(me); } @@ -40,5 +42,4 @@ public final class BehemothSledge extends CardImpl { public BehemothSledge copy() { return new BehemothSledge(this); } - } diff --git a/Mage.Sets/src/mage/cards/b/BeltOfGiantStrength.java b/Mage.Sets/src/mage/cards/b/BeltOfGiantStrength.java index b16c69d1ff..5735c074c4 100644 --- a/Mage.Sets/src/mage/cards/b/BeltOfGiantStrength.java +++ b/Mage.Sets/src/mage/cards/b/BeltOfGiantStrength.java @@ -30,7 +30,7 @@ public final class BeltOfGiantStrength extends CardImpl { .setText("equipped creature has base power and toughness 10/10"))); // Equip {10}. This ability costs {X} less to activate where X is the power of the creature it targets. - EquipAbility ability = new EquipAbility(10); + EquipAbility ability = new EquipAbility(10, false); ability.setCostReduceText("This ability costs {X} less to activate, where X is the power of the creature it targets."); ability.setCostAdjuster(BeltOfGiantStrengthAdjuster.instance); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BlackbladeReforged.java b/Mage.Sets/src/mage/cards/b/BlackbladeReforged.java index 87425e23a0..a9833beb2b 100644 --- a/Mage.Sets/src/mage/cards/b/BlackbladeReforged.java +++ b/Mage.Sets/src/mage/cards/b/BlackbladeReforged.java @@ -38,10 +38,10 @@ public final class BlackbladeReforged extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(count, count))); // Equip legendary creature (3) - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), new TargetControlledCreaturePermanent(filter))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), new TargetControlledCreaturePermanent(filter), false)); // Equip {7} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(7))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(7), false)); } private BlackbladeReforged(final BlackbladeReforged card) { diff --git a/Mage.Sets/src/mage/cards/b/BladeOfSelves.java b/Mage.Sets/src/mage/cards/b/BladeOfSelves.java index ee168530d3..8790dec15e 100644 --- a/Mage.Sets/src/mage/cards/b/BladeOfSelves.java +++ b/Mage.Sets/src/mage/cards/b/BladeOfSelves.java @@ -25,7 +25,7 @@ public final class BladeOfSelves extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new MyriadAbility(), AttachmentType.EQUIPMENT))); // Equip {4} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4), false)); } private BladeOfSelves(final BladeOfSelves card) { diff --git a/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java b/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java index 11461b9bcb..1d89fa15e6 100644 --- a/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java +++ b/Mage.Sets/src/mage/cards/b/BladeOfTheBloodchief.java @@ -29,7 +29,7 @@ public final class BladeOfTheBloodchief extends CardImpl { this.addAbility(new DiesCreatureTriggeredAbility(new BladeOfTheBloodchiefEffect(), false)); //Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private BladeOfTheBloodchief(final BladeOfTheBloodchief card) { diff --git a/Mage.Sets/src/mage/cards/b/BladedPinions.java b/Mage.Sets/src/mage/cards/b/BladedPinions.java index d9a924adfe..f809578a95 100644 --- a/Mage.Sets/src/mage/cards/b/BladedPinions.java +++ b/Mage.Sets/src/mage/cards/b/BladedPinions.java @@ -22,9 +22,13 @@ public final class BladedPinions extends CardImpl { public BladedPinions (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + + // Equipped creature has flying and first strike. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.EQUIPMENT))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT))); + + // Equip {2} + this.addAbility(new EquipAbility(2, false)); } public BladedPinions (final BladedPinions card) { diff --git a/Mage.Sets/src/mage/cards/b/BlazingSunsteel.java b/Mage.Sets/src/mage/cards/b/BlazingSunsteel.java index 36990b5141..0b26bbe9c5 100644 --- a/Mage.Sets/src/mage/cards/b/BlazingSunsteel.java +++ b/Mage.Sets/src/mage/cards/b/BlazingSunsteel.java @@ -43,7 +43,7 @@ public final class BlazingSunsteel extends CardImpl { this.addAbility(new BlazingSunsteelTriggeredAbility()); // Equip {4} - this.addAbility(new EquipAbility(4)); + this.addAbility(new EquipAbility(4, false)); } private BlazingSunsteel(final BlazingSunsteel card) { diff --git a/Mage.Sets/src/mage/cards/b/BlightSickle.java b/Mage.Sets/src/mage/cards/b/BlightSickle.java index b2e30e4104..94b59432fc 100644 --- a/Mage.Sets/src/mage/cards/b/BlightSickle.java +++ b/Mage.Sets/src/mage/cards/b/BlightSickle.java @@ -32,7 +32,7 @@ public final class BlightSickle extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private BlightSickle(final BlightSickle card) { diff --git a/Mage.Sets/src/mage/cards/b/BloodforgedBattleAxe.java b/Mage.Sets/src/mage/cards/b/BloodforgedBattleAxe.java index 2da6aac97e..25787b260a 100644 --- a/Mage.Sets/src/mage/cards/b/BloodforgedBattleAxe.java +++ b/Mage.Sets/src/mage/cards/b/BloodforgedBattleAxe.java @@ -38,7 +38,7 @@ public final class BloodforgedBattleAxe extends CardImpl { this.addAbility(new BloodforgedBattleAxeAbility()); // Equip 2 - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } diff --git a/Mage.Sets/src/mage/cards/b/Bonehoard.java b/Mage.Sets/src/mage/cards/b/Bonehoard.java index 04e6de5649..db88b646a3 100644 --- a/Mage.Sets/src/mage/cards/b/Bonehoard.java +++ b/Mage.Sets/src/mage/cards/b/Bonehoard.java @@ -34,7 +34,7 @@ public final class Bonehoard extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(value, value).setText("equipped creature gets +X/+X, where X is the number of creature cards in all graveyards"))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private Bonehoard(final Bonehoard card) { diff --git a/Mage.Sets/src/mage/cards/b/Bonesplitter.java b/Mage.Sets/src/mage/cards/b/Bonesplitter.java index f8ec8a4bf6..6069f3f37f 100644 --- a/Mage.Sets/src/mage/cards/b/Bonesplitter.java +++ b/Mage.Sets/src/mage/cards/b/Bonesplitter.java @@ -22,9 +22,11 @@ public final class Bonesplitter extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); this.subtype.add(SubType.EQUIPMENT); - + // Equipped creature gets +2/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0))); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + + // Equip {1} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } private Bonesplitter(final Bonesplitter card) { diff --git a/Mage.Sets/src/mage/cards/b/ButchersCleaver.java b/Mage.Sets/src/mage/cards/b/ButchersCleaver.java index 4f6330edd0..4a04642d72 100644 --- a/Mage.Sets/src/mage/cards/b/ButchersCleaver.java +++ b/Mage.Sets/src/mage/cards/b/ButchersCleaver.java @@ -35,7 +35,7 @@ public final class ButchersCleaver extends CardImpl { new EquippedHasSubtypeCondition(SubType.HUMAN), staticText))); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } diff --git a/Mage.Sets/src/mage/cards/c/CaptainsClaws.java b/Mage.Sets/src/mage/cards/c/CaptainsClaws.java index efd06643c9..b8df40e9f7 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainsClaws.java +++ b/Mage.Sets/src/mage/cards/c/CaptainsClaws.java @@ -31,7 +31,7 @@ public final class CaptainsClaws extends CardImpl { // Whenever equipped creature attacks, create a 1/1 white Kor Ally creature token tapped and attacking. this.addAbility(new AttacksAttachedTriggeredAbility(new CreateTokenEffect(new KorAllyToken(), 1, true, true))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), false)); } private CaptainsClaws(final CaptainsClaws card) { diff --git a/Mage.Sets/src/mage/cards/c/CaptainsHook.java b/Mage.Sets/src/mage/cards/c/CaptainsHook.java index 1033c3bb05..8dc404679e 100644 --- a/Mage.Sets/src/mage/cards/c/CaptainsHook.java +++ b/Mage.Sets/src/mage/cards/c/CaptainsHook.java @@ -50,7 +50,7 @@ public final class CaptainsHook extends CardImpl { this.addAbility(new UnattachedTriggeredAbility(new DestroyEquippedEffect(), false)); // Equip {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), false)); } private CaptainsHook(final CaptainsHook card) { diff --git a/Mage.Sets/src/mage/cards/c/ChampionsHelm.java b/Mage.Sets/src/mage/cards/c/ChampionsHelm.java index b1afe90c7d..04e71c9928 100644 --- a/Mage.Sets/src/mage/cards/c/ChampionsHelm.java +++ b/Mage.Sets/src/mage/cards/c/ChampionsHelm.java @@ -35,7 +35,7 @@ public final class ChampionsHelm extends CardImpl { new EquippedHasSupertypeCondition(SuperType.LEGENDARY), staticText))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private ChampionsHelm(final ChampionsHelm card) { diff --git a/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java b/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java index 19c39caae2..441d278f56 100644 --- a/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java +++ b/Mage.Sets/src/mage/cards/c/ChariotOfVictory.java @@ -40,7 +40,7 @@ public final class ChariotOfVictory extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } private ChariotOfVictory(final ChariotOfVictory card) { diff --git a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java index 05a1ceceb2..f4bbbaa1b8 100644 --- a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java +++ b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java @@ -35,7 +35,7 @@ public final class ChitinousCloak extends CardImpl { ability.addEffect(effect); this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private ChitinousCloak(final ChitinousCloak card) { diff --git a/Mage.Sets/src/mage/cards/c/CivicSaber.java b/Mage.Sets/src/mage/cards/c/CivicSaber.java index 7510fa5109..836e691ec0 100644 --- a/Mage.Sets/src/mage/cards/c/CivicSaber.java +++ b/Mage.Sets/src/mage/cards/c/CivicSaber.java @@ -32,8 +32,9 @@ public final class CivicSaber extends CardImpl { // Equipped creature gets +1/+0 for each of its colors. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(new CivicSaberColorCount(), StaticValue.get(0), Duration.WhileOnBattlefield))); + // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private CivicSaber(final CivicSaber card) { diff --git a/Mage.Sets/src/mage/cards/c/CloakAndDagger.java b/Mage.Sets/src/mage/cards/c/CloakAndDagger.java index 738beb52aa..914d65b224 100644 --- a/Mage.Sets/src/mage/cards/c/CloakAndDagger.java +++ b/Mage.Sets/src/mage/cards/c/CloakAndDagger.java @@ -43,7 +43,7 @@ public final class CloakAndDagger extends CardImpl { Zone.BATTLEFIELD, new AttachEffect(Outcome.Detriment, "attach {this} to it"), filter, true, SetTargetPointer.PERMANENT, null)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private CloakAndDagger(final CloakAndDagger card) { diff --git a/Mage.Sets/src/mage/cards/c/CommandersPlate.java b/Mage.Sets/src/mage/cards/c/CommandersPlate.java index 9655e8bfdb..31640429be 100644 --- a/Mage.Sets/src/mage/cards/c/CommandersPlate.java +++ b/Mage.Sets/src/mage/cards/c/CommandersPlate.java @@ -48,11 +48,11 @@ public final class CommandersPlate extends CardImpl { // Equip commander {3} this.addAbility(new EquipAbility( - Outcome.AddAbility, new GenericManaCost(3), new TargetPermanent(filter) + Outcome.AddAbility, new GenericManaCost(3), new TargetPermanent(filter), false )); // Equip {5} - this.addAbility(new EquipAbility(5)); + this.addAbility(new EquipAbility(5, false)); } private CommandersPlate(final CommandersPlate card) { diff --git a/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java b/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java index 1fde37fc73..4194c66736 100644 --- a/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java +++ b/Mage.Sets/src/mage/cards/c/ConquerorsFlail.java @@ -41,7 +41,7 @@ public final class ConquerorsFlail extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConquerorsFlailEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private ConquerorsFlail(final ConquerorsFlail card) { diff --git a/Mage.Sets/src/mage/cards/c/CranialPlating.java b/Mage.Sets/src/mage/cards/c/CranialPlating.java index f0002fe77b..9d09150f56 100644 --- a/Mage.Sets/src/mage/cards/c/CranialPlating.java +++ b/Mage.Sets/src/mage/cards/c/CranialPlating.java @@ -40,7 +40,7 @@ public final class CranialPlating extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), false)); } private CranialPlating(final CranialPlating card) { diff --git a/Mage.Sets/src/mage/cards/d/DancingSword.java b/Mage.Sets/src/mage/cards/d/DancingSword.java index ba1e65a2f3..afd471013d 100644 --- a/Mage.Sets/src/mage/cards/d/DancingSword.java +++ b/Mage.Sets/src/mage/cards/d/DancingSword.java @@ -36,7 +36,7 @@ public final class DancingSword extends CardImpl { ).setTriggerPhrase("When equipped creature dies, ")); // Equip {1} - this.addAbility(new EquipAbility(1)); + this.addAbility(new EquipAbility(1, false)); } private DancingSword(final DancingSword card) { diff --git a/Mage.Sets/src/mage/cards/d/DarksteelAxe.java b/Mage.Sets/src/mage/cards/d/DarksteelAxe.java index 2e4c383bb2..93e89978e5 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelAxe.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelAxe.java @@ -24,9 +24,15 @@ public final class DarksteelAxe extends CardImpl { public DarksteelAxe (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); this.subtype.add(SubType.EQUIPMENT); + + // Indestructible (Effects that say "destroy" don't destroy this artifact.) this.addAbility(IndestructibleAbility.getInstance()); + + // Equipped creature gets +2/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0))); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } public DarksteelAxe (final DarksteelAxe card) { diff --git a/Mage.Sets/src/mage/cards/d/DarksteelPlate.java b/Mage.Sets/src/mage/cards/d/DarksteelPlate.java index ff2f28b197..ca3c636779 100644 --- a/Mage.Sets/src/mage/cards/d/DarksteelPlate.java +++ b/Mage.Sets/src/mage/cards/d/DarksteelPlate.java @@ -28,7 +28,7 @@ public final class DarksteelPlate extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(IndestructibleAbility.getInstance(), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } public DarksteelPlate (final DarksteelPlate card) { diff --git a/Mage.Sets/src/mage/cards/d/Deathrender.java b/Mage.Sets/src/mage/cards/d/Deathrender.java index 51cc482bfc..83ad67b46a 100644 --- a/Mage.Sets/src/mage/cards/d/Deathrender.java +++ b/Mage.Sets/src/mage/cards/d/Deathrender.java @@ -36,7 +36,7 @@ public final class Deathrender extends CardImpl { // Whenever equipped creature dies, you may put a creature card from your hand onto the battlefield and attach Deathrender to it. this.addAbility(new DiesAttachedTriggeredAbility(new DeathrenderEffect(), "equipped creature")); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private Deathrender(final Deathrender card) { diff --git a/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java b/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java index f6065569d4..4bc19d2f04 100644 --- a/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java +++ b/Mage.Sets/src/mage/cards/d/DemonmailHauberk.java @@ -25,11 +25,14 @@ public final class DemonmailHauberk extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); this.subtype.add(SubType.EQUIPMENT); - // Equip - Sacrifice a creature. - this.addAbility(new EquipAbility(Outcome.AddAbility, new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)))); - // Equipped creature gets +4/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(4, 2))); + + // Equip - Sacrifice a creature. + this.addAbility(new EquipAbility( + Outcome.AddAbility, + new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)), + false)); } private DemonmailHauberk(final DemonmailHauberk card) { diff --git a/Mage.Sets/src/mage/cards/d/DemonspineWhip.java b/Mage.Sets/src/mage/cards/d/DemonspineWhip.java index aae5fc1d4c..ab9d739b9c 100644 --- a/Mage.Sets/src/mage/cards/d/DemonspineWhip.java +++ b/Mage.Sets/src/mage/cards/d/DemonspineWhip.java @@ -34,7 +34,7 @@ public final class DemonspineWhip extends CardImpl { this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(new XPaid(), StaticValue.get(0), Duration.EndOfTurn), new ManaCostsImpl("{X}"))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } private DemonspineWhip(final DemonspineWhip card) { diff --git a/Mage.Sets/src/mage/cards/d/DivinersWand.java b/Mage.Sets/src/mage/cards/d/DivinersWand.java index 4313ca2671..a72f5ea6fd 100644 --- a/Mage.Sets/src/mage/cards/d/DivinersWand.java +++ b/Mage.Sets/src/mage/cards/d/DivinersWand.java @@ -44,7 +44,7 @@ public final class DivinersWand extends CardImpl { filter, true, SetTargetPointer.PERMANENT, null)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); // Equipped creature has "Whenever you draw a card, this creature gets +1/+1 and gains flying until end of turn" and "{4}: Draw a card." // new abilities diff --git a/Mage.Sets/src/mage/cards/d/DowsingDagger.java b/Mage.Sets/src/mage/cards/d/DowsingDagger.java index eb4887c349..7c1dcf9256 100644 --- a/Mage.Sets/src/mage/cards/d/DowsingDagger.java +++ b/Mage.Sets/src/mage/cards/d/DowsingDagger.java @@ -49,7 +49,7 @@ public final class DowsingDagger extends CardImpl { this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new TransformSourceEffect(), "equipped", true)); // Equip 2 - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private DowsingDagger(final DowsingDagger card) { diff --git a/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java b/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java index 36176e1304..577d1684dc 100644 --- a/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java +++ b/Mage.Sets/src/mage/cards/d/DragonThroneOfTarkir.java @@ -48,7 +48,7 @@ public final class DragonThroneOfTarkir extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private DragonThroneOfTarkir(final DragonThroneOfTarkir card) { diff --git a/Mage.Sets/src/mage/cards/d/DraugrsHelm.java b/Mage.Sets/src/mage/cards/d/DraugrsHelm.java index bb4bf54758..4f13108929 100644 --- a/Mage.Sets/src/mage/cards/d/DraugrsHelm.java +++ b/Mage.Sets/src/mage/cards/d/DraugrsHelm.java @@ -45,7 +45,7 @@ public final class DraugrsHelm extends CardImpl { this.addAbility(ability); // Equip {4} - this.addAbility(new EquipAbility(4)); + this.addAbility(new EquipAbility(4, false)); } private DraugrsHelm(final DraugrsHelm card) { diff --git a/Mage.Sets/src/mage/cards/d/DwarvenHammer.java b/Mage.Sets/src/mage/cards/d/DwarvenHammer.java index 845488d422..1b1439145f 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenHammer.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenHammer.java @@ -42,7 +42,7 @@ public final class DwarvenHammer extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private DwarvenHammer(final DwarvenHammer card) { diff --git a/Mage.Sets/src/mage/cards/e/EchoCirclet.java b/Mage.Sets/src/mage/cards/e/EchoCirclet.java index eb0bf79a82..0e4611d6e2 100644 --- a/Mage.Sets/src/mage/cards/e/EchoCirclet.java +++ b/Mage.Sets/src/mage/cards/e/EchoCirclet.java @@ -27,7 +27,7 @@ public final class EchoCirclet extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new EchoCircletEffect())); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private EchoCirclet(final EchoCirclet card) { diff --git a/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java b/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java index ee01415f79..5e8707f335 100644 --- a/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java +++ b/Mage.Sets/src/mage/cards/e/ElbrusTheBindingBlade.java @@ -38,7 +38,7 @@ public final class ElbrusTheBindingBlade extends CardImpl { // When equipped creature deals combat damage to a player, unattach Elbrus, the Binding Blade, then transform it. this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new ElbrusTheBindingBladeEffect(), "equipped", true)); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private ElbrusTheBindingBlade(final ElbrusTheBindingBlade card) { diff --git a/Mage.Sets/src/mage/cards/e/ElvenBow.java b/Mage.Sets/src/mage/cards/e/ElvenBow.java index b57c566529..4bb29da8bc 100644 --- a/Mage.Sets/src/mage/cards/e/ElvenBow.java +++ b/Mage.Sets/src/mage/cards/e/ElvenBow.java @@ -42,7 +42,7 @@ public final class ElvenBow extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private ElvenBow(final ElvenBow card) { diff --git a/Mage.Sets/src/mage/cards/e/Embercleave.java b/Mage.Sets/src/mage/cards/e/Embercleave.java index 35851640f0..455cda7b91 100644 --- a/Mage.Sets/src/mage/cards/e/Embercleave.java +++ b/Mage.Sets/src/mage/cards/e/Embercleave.java @@ -60,7 +60,7 @@ public final class Embercleave extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private Embercleave(final Embercleave card) { diff --git a/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java b/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java index ec6a7377e7..f4e231058f 100644 --- a/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java +++ b/Mage.Sets/src/mage/cards/e/EmpyrialPlate.java @@ -28,7 +28,7 @@ public final class EmpyrialPlate extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(CardsInControllerHandCount.instance, CardsInControllerHandCount.instance))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private EmpyrialPlate(final EmpyrialPlate card) { diff --git a/Mage.Sets/src/mage/cards/f/Fiendlash.java b/Mage.Sets/src/mage/cards/f/Fiendlash.java index 11ab580dcb..7029a86f0b 100644 --- a/Mage.Sets/src/mage/cards/f/Fiendlash.java +++ b/Mage.Sets/src/mage/cards/f/Fiendlash.java @@ -48,7 +48,7 @@ public final class Fiendlash extends CardImpl { this.addAbility(new FiendlashTriggeredAbility()); // Equip {2}{R} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}{R}"))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}{R}"), false)); } private Fiendlash(final Fiendlash card) { diff --git a/Mage.Sets/src/mage/cards/f/FlayerHusk.java b/Mage.Sets/src/mage/cards/f/FlayerHusk.java index 8ebeb6d1c9..25243c68fa 100644 --- a/Mage.Sets/src/mage/cards/f/FlayerHusk.java +++ b/Mage.Sets/src/mage/cards/f/FlayerHusk.java @@ -24,9 +24,14 @@ public final class FlayerHusk extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); this.subtype.add(SubType.EQUIPMENT); + // Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +1/+1 this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private FlayerHusk(final FlayerHusk card) { diff --git a/Mage.Sets/src/mage/cards/f/ForebearsBlade.java b/Mage.Sets/src/mage/cards/f/ForebearsBlade.java index 40be33397c..23d9ef04a4 100644 --- a/Mage.Sets/src/mage/cards/f/ForebearsBlade.java +++ b/Mage.Sets/src/mage/cards/f/ForebearsBlade.java @@ -52,7 +52,7 @@ public final class ForebearsBlade extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private ForebearsBlade(final ForebearsBlade card) { diff --git a/Mage.Sets/src/mage/cards/f/FractalHarness.java b/Mage.Sets/src/mage/cards/f/FractalHarness.java index 5d409f3479..5d78ede03a 100644 --- a/Mage.Sets/src/mage/cards/f/FractalHarness.java +++ b/Mage.Sets/src/mage/cards/f/FractalHarness.java @@ -39,7 +39,7 @@ public final class FractalHarness extends CardImpl { )); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private FractalHarness(final FractalHarness card) { diff --git a/Mage.Sets/src/mage/cards/g/GateSmasher.java b/Mage.Sets/src/mage/cards/g/GateSmasher.java index 4b9519da5b..c644bf05a6 100644 --- a/Mage.Sets/src/mage/cards/g/GateSmasher.java +++ b/Mage.Sets/src/mage/cards/g/GateSmasher.java @@ -54,7 +54,7 @@ public final class GateSmasher extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), target)); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), target, false)); } diff --git a/Mage.Sets/src/mage/cards/g/GhostfireBlade.java b/Mage.Sets/src/mage/cards/g/GhostfireBlade.java index b11633fd27..903e25a4a3 100644 --- a/Mage.Sets/src/mage/cards/g/GhostfireBlade.java +++ b/Mage.Sets/src/mage/cards/g/GhostfireBlade.java @@ -30,7 +30,7 @@ public final class GhostfireBlade extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 2))); // Equip {3} - Ability ability = new EquipAbility(3); + Ability ability = new EquipAbility(3, false); ability.setCostAdjuster(GhostfireBladeAdjuster.instance); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java index a8d37a61b5..9641734c81 100644 --- a/Mage.Sets/src/mage/cards/g/GiantsAmulet.java +++ b/Mage.Sets/src/mage/cards/g/GiantsAmulet.java @@ -51,7 +51,7 @@ public final class GiantsAmulet extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private GiantsAmulet(final GiantsAmulet card) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinMorningstar.java b/Mage.Sets/src/mage/cards/g/GoblinMorningstar.java index fd14b0a394..63555a8e6e 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinMorningstar.java +++ b/Mage.Sets/src/mage/cards/g/GoblinMorningstar.java @@ -39,7 +39,7 @@ public final class GoblinMorningstar extends CardImpl { this.addAbility(ability); // Equip {1}{R} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{1}{R}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{1}{R}"), false)); // When Goblin Morningstar enters the battlefield, roll a d20. RollDieWithResultTableEffect effect = new RollDieWithResultTableEffect(); diff --git a/Mage.Sets/src/mage/cards/g/Godsend.java b/Mage.Sets/src/mage/cards/g/Godsend.java index 46ea22c803..082174f997 100644 --- a/Mage.Sets/src/mage/cards/g/Godsend.java +++ b/Mage.Sets/src/mage/cards/g/Godsend.java @@ -46,7 +46,7 @@ public final class Godsend extends CardImpl { // Opponents can't cast cards with the same name as cards exiled with Godsend. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GodsendRuleModifyingEffect())); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private Godsend(final Godsend card) { diff --git a/Mage.Sets/src/mage/cards/g/GorgonsHead.java b/Mage.Sets/src/mage/cards/g/GorgonsHead.java index 1a2d18e6e4..590894268e 100644 --- a/Mage.Sets/src/mage/cards/g/GorgonsHead.java +++ b/Mage.Sets/src/mage/cards/g/GorgonsHead.java @@ -28,7 +28,7 @@ public final class GorgonsHead extends CardImpl { // Equipped creature has deathtouch. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(DeathtouchAbility.getInstance(), AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(2, false)); } private GorgonsHead(final GorgonsHead card) { diff --git a/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java b/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java index a23954723b..f9c011909a 100644 --- a/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java +++ b/Mage.Sets/src/mage/cards/g/GraftedExoskeleton.java @@ -36,7 +36,7 @@ public final class GraftedExoskeleton extends CardImpl { this.addAbility(new UnattachedTriggeredAbility(new SacrificeEquippedEffect(), false)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private GraftedExoskeleton(final GraftedExoskeleton card) { diff --git a/Mage.Sets/src/mage/cards/g/GrapplingHook.java b/Mage.Sets/src/mage/cards/g/GrapplingHook.java index 724cb55fd0..3d784b759f 100644 --- a/Mage.Sets/src/mage/cards/g/GrapplingHook.java +++ b/Mage.Sets/src/mage/cards/g/GrapplingHook.java @@ -34,7 +34,7 @@ public final class GrapplingHook extends CardImpl { ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4), false)); } private GrapplingHook(final GrapplingHook card) { diff --git a/Mage.Sets/src/mage/cards/g/GriftersBlade.java b/Mage.Sets/src/mage/cards/g/GriftersBlade.java index 75f145a215..71f1249d8f 100644 --- a/Mage.Sets/src/mage/cards/g/GriftersBlade.java +++ b/Mage.Sets/src/mage/cards/g/GriftersBlade.java @@ -43,7 +43,7 @@ public final class GriftersBlade extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } diff --git a/Mage.Sets/src/mage/cards/h/HalvarGodOfBattle.java b/Mage.Sets/src/mage/cards/h/HalvarGodOfBattle.java index d2e1568137..243f813dd5 100644 --- a/Mage.Sets/src/mage/cards/h/HalvarGodOfBattle.java +++ b/Mage.Sets/src/mage/cards/h/HalvarGodOfBattle.java @@ -90,7 +90,7 @@ public final class HalvarGodOfBattle extends ModalDoubleFacesCard { )); // Equip {1}{W} - this.getRightHalfCard().addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{1}{W}"))); + this.getRightHalfCard().addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{1}{W}"), false)); } private HalvarGodOfBattle(final HalvarGodOfBattle card) { diff --git a/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java b/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java index 299e1689fb..29b87b4c36 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfNazahn.java @@ -47,7 +47,7 @@ public final class HammerOfNazahn extends CardImpl { this.addAbility(abilityEquipped); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4), false)); } diff --git a/Mage.Sets/src/mage/cards/h/HammerOfRuin.java b/Mage.Sets/src/mage/cards/h/HammerOfRuin.java index 2a47a8e0a2..91cc14784f 100644 --- a/Mage.Sets/src/mage/cards/h/HammerOfRuin.java +++ b/Mage.Sets/src/mage/cards/h/HammerOfRuin.java @@ -39,7 +39,7 @@ public final class HammerOfRuin extends CardImpl { // Whenever equipped creature deals combat damage to a player, you may destroy target Equipment that player controls. this.addAbility(new HammerOfRuinTriggeredAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } public HammerOfRuin (final HammerOfRuin card) { diff --git a/Mage.Sets/src/mage/cards/h/HandOfVecna.java b/Mage.Sets/src/mage/cards/h/HandOfVecna.java index cc4dcb9d48..75afa61845 100644 --- a/Mage.Sets/src/mage/cards/h/HandOfVecna.java +++ b/Mage.Sets/src/mage/cards/h/HandOfVecna.java @@ -42,12 +42,15 @@ public final class HandOfVecna extends CardImpl { )); // Equip—Pay 1 life for each card in your hand. - this.addAbility(new EquipAbility(Outcome.Benefit, new PayLifeCost( - CardsInControllerHandCount.instance, "1 life for each card in your hand" - ))); + this.addAbility(new EquipAbility( + Outcome.Benefit, + new PayLifeCost( + CardsInControllerHandCount.instance, "1 life for each card in your hand"), + false + )); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private HandOfVecna(final HandOfVecna card) { diff --git a/Mage.Sets/src/mage/cards/h/HeavyArbalest.java b/Mage.Sets/src/mage/cards/h/HeavyArbalest.java index 43969c5b3d..4bc88c9a74 100644 --- a/Mage.Sets/src/mage/cards/h/HeavyArbalest.java +++ b/Mage.Sets/src/mage/cards/h/HeavyArbalest.java @@ -45,7 +45,7 @@ public final class HeavyArbalest extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability2, AttachmentType.EQUIPMENT))); // Equip {4) - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4), false)); } private HeavyArbalest(final HeavyArbalest card) { diff --git a/Mage.Sets/src/mage/cards/h/HedronMatrix.java b/Mage.Sets/src/mage/cards/h/HedronMatrix.java index 9ddf648521..195d231833 100644 --- a/Mage.Sets/src/mage/cards/h/HedronMatrix.java +++ b/Mage.Sets/src/mage/cards/h/HedronMatrix.java @@ -29,8 +29,12 @@ public final class HedronMatrix extends CardImpl { public HedronMatrix (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); this.subtype.add(SubType.EQUIPMENT); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + + // Equipped creature gets +X/+X, where X is its mana value. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new HedronMatrixEffect())); + + // Equip {4} + this.addAbility(new EquipAbility(4, false)); } public HedronMatrix (final HedronMatrix card) { diff --git a/Mage.Sets/src/mage/cards/h/HeirloomBlade.java b/Mage.Sets/src/mage/cards/h/HeirloomBlade.java index 1bf90d759d..b4301fe09f 100644 --- a/Mage.Sets/src/mage/cards/h/HeirloomBlade.java +++ b/Mage.Sets/src/mage/cards/h/HeirloomBlade.java @@ -40,7 +40,7 @@ public final class HeirloomBlade extends CardImpl { this.addAbility(new DiesAttachedTriggeredAbility(new HeirloomBladeEffect(), "equipped creature", true)); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } diff --git a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java index f48b62c8c0..9c4cdde8ab 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfKaldra.java @@ -63,7 +63,7 @@ public final class HelmOfKaldra extends CardImpl { new HelmOfKaldraCondition(), "{1}: If you control Equipment named Helm of Kaldra, Sword of Kaldra, and Shield of Kaldra, create a legendary 4/4 colorless Avatar creature token named Kaldra and attach those Equipment to it")); // Equip {2} - this.addAbility(new EquipAbility(Outcome.Benefit, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(Outcome.Benefit, new ManaCostsImpl<>("{2}"), false)); } private HelmOfKaldra(final HelmOfKaldra card) { diff --git a/Mage.Sets/src/mage/cards/h/HelmOfTheHost.java b/Mage.Sets/src/mage/cards/h/HelmOfTheHost.java index 87c6287501..883124bbb0 100644 --- a/Mage.Sets/src/mage/cards/h/HelmOfTheHost.java +++ b/Mage.Sets/src/mage/cards/h/HelmOfTheHost.java @@ -40,7 +40,7 @@ public final class HelmOfTheHost extends CardImpl { this.addAbility(ability); // Equip {5} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(5))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(5), false)); } private HelmOfTheHost(final HelmOfTheHost card) { diff --git a/Mage.Sets/src/mage/cards/h/HolyAvenger.java b/Mage.Sets/src/mage/cards/h/HolyAvenger.java index effb27b2b2..16de1b3780 100644 --- a/Mage.Sets/src/mage/cards/h/HolyAvenger.java +++ b/Mage.Sets/src/mage/cards/h/HolyAvenger.java @@ -40,7 +40,7 @@ public final class HolyAvenger extends CardImpl { this.addAbility(new DealsCombatDamageEquippedTriggeredAbility(new HolyAvengerEffect())); // Equip {2}{W} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}{W}"))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}{W}"), false)); } private HolyAvenger(final HolyAvenger card) { diff --git a/Mage.Sets/src/mage/cards/i/IllusionistsBracers.java b/Mage.Sets/src/mage/cards/i/IllusionistsBracers.java index 9f4d9f1cc0..592bd86cc3 100644 --- a/Mage.Sets/src/mage/cards/i/IllusionistsBracers.java +++ b/Mage.Sets/src/mage/cards/i/IllusionistsBracers.java @@ -31,7 +31,7 @@ public final class IllusionistsBracers extends CardImpl { this.addAbility(new IllusionistsBracersTriggeredAbility()); // Equip 3 - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private IllusionistsBracers(final IllusionistsBracers card) { diff --git a/Mage.Sets/src/mage/cards/i/InfiltrationLens.java b/Mage.Sets/src/mage/cards/i/InfiltrationLens.java index e0f9aa088e..107d18b3b8 100644 --- a/Mage.Sets/src/mage/cards/i/InfiltrationLens.java +++ b/Mage.Sets/src/mage/cards/i/InfiltrationLens.java @@ -32,7 +32,7 @@ public final class InfiltrationLens extends CardImpl { this.addAbility(new EquippedBecomesBlockedTriggeredAbility(new DrawCardSourceControllerEffect(2), true)); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(1, false)); } private InfiltrationLens(final InfiltrationLens card) { diff --git a/Mage.Sets/src/mage/cards/i/InquisitorsFlail.java b/Mage.Sets/src/mage/cards/i/InquisitorsFlail.java index 3bc2200e3e..c233037e79 100644 --- a/Mage.Sets/src/mage/cards/i/InquisitorsFlail.java +++ b/Mage.Sets/src/mage/cards/i/InquisitorsFlail.java @@ -31,7 +31,7 @@ public final class InquisitorsFlail extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new InquisitorsFlailEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private InquisitorsFlail(final InquisitorsFlail card) { diff --git a/Mage.Sets/src/mage/cards/k/KaldraCompleat.java b/Mage.Sets/src/mage/cards/k/KaldraCompleat.java index 5316b4c0ae..3c46552eff 100644 --- a/Mage.Sets/src/mage/cards/k/KaldraCompleat.java +++ b/Mage.Sets/src/mage/cards/k/KaldraCompleat.java @@ -74,7 +74,7 @@ public final class KaldraCompleat extends CardImpl { this.addAbility(ability); // Equip {7} - this.addAbility(new EquipAbility(7)); + this.addAbility(new EquipAbility(7, false)); } private KaldraCompleat(final KaldraCompleat card) { diff --git a/Mage.Sets/src/mage/cards/k/KondasBanner.java b/Mage.Sets/src/mage/cards/k/KondasBanner.java index 9ded58a3ff..7d9cfcad47 100644 --- a/Mage.Sets/src/mage/cards/k/KondasBanner.java +++ b/Mage.Sets/src/mage/cards/k/KondasBanner.java @@ -74,7 +74,7 @@ public final class KondasBanner extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new KondasBannerTypeBoostEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), target)); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), target, false)); } diff --git a/Mage.Sets/src/mage/cards/l/Lashwrithe.java b/Mage.Sets/src/mage/cards/l/Lashwrithe.java index 496a909412..6d3546936a 100644 --- a/Mage.Sets/src/mage/cards/l/Lashwrithe.java +++ b/Mage.Sets/src/mage/cards/l/Lashwrithe.java @@ -30,10 +30,15 @@ public final class Lashwrithe extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); this.subtype.add(SubType.EQUIPMENT); + // Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +1/+1 for each Swamp you control. PermanentsOnBattlefieldCount value = new PermanentsOnBattlefieldCount(filter); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{B/P}{B/P}"))); + + // Equip {B/P}{B/P} (Phyrexian Black can be paid with either Black or 2 life.) + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{B/P}{B/P}"), false)); } private Lashwrithe(final Lashwrithe card) { diff --git a/Mage.Sets/src/mage/cards/l/LeatherArmor.java b/Mage.Sets/src/mage/cards/l/LeatherArmor.java index 63c83f260a..762c1fe6a2 100644 --- a/Mage.Sets/src/mage/cards/l/LeatherArmor.java +++ b/Mage.Sets/src/mage/cards/l/LeatherArmor.java @@ -38,7 +38,7 @@ public final class LeatherArmor extends CardImpl { this.addAbility(ability); // Equip {0}. Activate only once each turn. - EquipAbility equipAbility = new EquipAbility(0); + EquipAbility equipAbility = new EquipAbility(0, false); equipAbility.setMaxActivationsPerTurn(1); this.addAbility(equipAbility); } diff --git a/Mage.Sets/src/mage/cards/l/LeeringEmblem.java b/Mage.Sets/src/mage/cards/l/LeeringEmblem.java index e33396085a..b9ba228c9a 100644 --- a/Mage.Sets/src/mage/cards/l/LeeringEmblem.java +++ b/Mage.Sets/src/mage/cards/l/LeeringEmblem.java @@ -22,8 +22,12 @@ public final class LeeringEmblem extends CardImpl { public LeeringEmblem(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); + + // Whenever you cast a spell, equipped creature gets +2/+2 until end of turn. this.addAbility(new SpellCastControllerTriggeredAbility(new BoostEquippedEffect(2, 2, Duration.EndOfTurn), false)); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + + // Equip {2} + this.addAbility(new EquipAbility(2, false)); } private LeeringEmblem(final LeeringEmblem card) { diff --git a/Mage.Sets/src/mage/cards/l/LightningGreaves.java b/Mage.Sets/src/mage/cards/l/LightningGreaves.java index 4f415a4246..8f26b95960 100644 --- a/Mage.Sets/src/mage/cards/l/LightningGreaves.java +++ b/Mage.Sets/src/mage/cards/l/LightningGreaves.java @@ -35,7 +35,7 @@ public final class LightningGreaves extends CardImpl { ability.addEffect(effect); this.addAbility(ability); // Equip {0} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(0))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(0), false)); } private LightningGreaves(final LightningGreaves card) { diff --git a/Mage.Sets/src/mage/cards/l/LightningSpear.java b/Mage.Sets/src/mage/cards/l/LightningSpear.java index a9523063d6..b72e1980ac 100644 --- a/Mage.Sets/src/mage/cards/l/LightningSpear.java +++ b/Mage.Sets/src/mage/cards/l/LightningSpear.java @@ -45,7 +45,7 @@ public final class LightningSpear extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(1)); + this.addAbility(new EquipAbility(1, false)); } private LightningSpear(final LightningSpear card) { diff --git a/Mage.Sets/src/mage/cards/l/LivewireLash.java b/Mage.Sets/src/mage/cards/l/LivewireLash.java index 576dde0bb2..f0632eedce 100644 --- a/Mage.Sets/src/mage/cards/l/LivewireLash.java +++ b/Mage.Sets/src/mage/cards/l/LivewireLash.java @@ -32,11 +32,15 @@ public final class LivewireLash extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); + // Equipped creature gets +2/+0 this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0))); + // and has "Whenever this creature becomes the target of a spell, this creature deals 2 damage to any target." LivewireLashAbility ability = new LivewireLashAbility(); ability.addTarget(new TargetAnyTarget()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private LivewireLash(final LivewireLash card) { diff --git a/Mage.Sets/src/mage/cards/l/LobeLobber.java b/Mage.Sets/src/mage/cards/l/LobeLobber.java index 2812b6dfed..03e879cce6 100644 --- a/Mage.Sets/src/mage/cards/l/LobeLobber.java +++ b/Mage.Sets/src/mage/cards/l/LobeLobber.java @@ -36,7 +36,7 @@ public final class LobeLobber extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); // Equip 2 - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private LobeLobber(final LobeLobber card) { diff --git a/Mage.Sets/src/mage/cards/l/LoxodonWarhammer.java b/Mage.Sets/src/mage/cards/l/LoxodonWarhammer.java index 7c8bec8591..0e54713ba9 100644 --- a/Mage.Sets/src/mage/cards/l/LoxodonWarhammer.java +++ b/Mage.Sets/src/mage/cards/l/LoxodonWarhammer.java @@ -38,7 +38,7 @@ public final class LoxodonWarhammer extends CardImpl { this.addAbility(ability); // Equip (: Attach to target creature you control. Equip only as a sorcery.) - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private LoxodonWarhammer(final LoxodonWarhammer card) { diff --git a/Mage.Sets/src/mage/cards/l/Lucille.java b/Mage.Sets/src/mage/cards/l/Lucille.java index f13b8637d6..2a8babc4bd 100644 --- a/Mage.Sets/src/mage/cards/l/Lucille.java +++ b/Mage.Sets/src/mage/cards/l/Lucille.java @@ -42,7 +42,7 @@ public final class Lucille extends CardImpl { this.addAbility(new AttacksAttachedTriggeredAbility(new LucilleEffect())); // Equip {4} - this.addAbility(new EquipAbility(4)); + this.addAbility(new EquipAbility(4, false)); } private Lucille(final Lucille card) { diff --git a/Mage.Sets/src/mage/cards/m/MaceOfTheValiant.java b/Mage.Sets/src/mage/cards/m/MaceOfTheValiant.java index 9755eccfd1..223c2bf0b3 100644 --- a/Mage.Sets/src/mage/cards/m/MaceOfTheValiant.java +++ b/Mage.Sets/src/mage/cards/m/MaceOfTheValiant.java @@ -46,7 +46,7 @@ public final class MaceOfTheValiant extends CardImpl { )); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private MaceOfTheValiant(final MaceOfTheValiant card) { diff --git a/Mage.Sets/src/mage/cards/m/MageSlayer.java b/Mage.Sets/src/mage/cards/m/MageSlayer.java index 61b083e159..7aad17b500 100644 --- a/Mage.Sets/src/mage/cards/m/MageSlayer.java +++ b/Mage.Sets/src/mage/cards/m/MageSlayer.java @@ -30,7 +30,7 @@ public final class MageSlayer extends CardImpl { this.addAbility(new AttacksAttachedTriggeredAbility(new MageSlayerEffect(), false)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(3), new TargetControlledCreaturePermanent())); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(3), new TargetControlledCreaturePermanent(), false)); } private MageSlayer(final MageSlayer card) { diff --git a/Mage.Sets/src/mage/cards/m/ManaforceMace.java b/Mage.Sets/src/mage/cards/m/ManaforceMace.java index c85889259a..a1583955e9 100644 --- a/Mage.Sets/src/mage/cards/m/ManaforceMace.java +++ b/Mage.Sets/src/mage/cards/m/ManaforceMace.java @@ -29,7 +29,7 @@ public final class ManaforceMace extends CardImpl { DomainValue value = new DomainValue(); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value)).addHint(DomainHint.instance)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private ManaforceMace(final ManaforceMace card) { diff --git a/Mage.Sets/src/mage/cards/m/MaskOfAvacyn.java b/Mage.Sets/src/mage/cards/m/MaskOfAvacyn.java index fba7230b04..1b30324fae 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfAvacyn.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfAvacyn.java @@ -23,15 +23,15 @@ public final class MaskOfAvacyn extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); - // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); - // Equipped creature gets +1/+2 and has hexproof. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 2)); Effect effect = new GainAbilityAttachedEffect(HexproofAbility.getInstance(), AttachmentType.EQUIPMENT); effect.setText("and has hexproof"); ability.addEffect(effect); this.addAbility(ability); + + // Equip {3} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private MaskOfAvacyn(final MaskOfAvacyn card) { diff --git a/Mage.Sets/src/mage/cards/m/MaskOfGriselbrand.java b/Mage.Sets/src/mage/cards/m/MaskOfGriselbrand.java index 94c5aad730..800895d430 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfGriselbrand.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfGriselbrand.java @@ -40,7 +40,7 @@ public final class MaskOfGriselbrand extends CardImpl { this.addAbility(new DiesAttachedTriggeredAbility(new MaskOfGriselbrandEffect(), "equipped creature")); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private MaskOfGriselbrand(final MaskOfGriselbrand card) { diff --git a/Mage.Sets/src/mage/cards/m/MaskOfRiddles.java b/Mage.Sets/src/mage/cards/m/MaskOfRiddles.java index c672017e9f..61d5b75130 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfRiddles.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfRiddles.java @@ -28,7 +28,7 @@ public final class MaskOfRiddles extends CardImpl { // Whenever equipped creature deals combat damage to a player, you may draw a card. this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new DrawCardSourceControllerEffect(1), "equipped", true)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private MaskOfRiddles(final MaskOfRiddles card) { diff --git a/Mage.Sets/src/mage/cards/m/MaulOfTheSkyclaves.java b/Mage.Sets/src/mage/cards/m/MaulOfTheSkyclaves.java index 0ff642d4ce..8819a17d5d 100644 --- a/Mage.Sets/src/mage/cards/m/MaulOfTheSkyclaves.java +++ b/Mage.Sets/src/mage/cards/m/MaulOfTheSkyclaves.java @@ -48,7 +48,7 @@ public final class MaulOfTheSkyclaves extends CardImpl { this.addAbility(ability); // Equip {2}{W}{W} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{W}{W}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{W}{W}"), false)); } private MaulOfTheSkyclaves(final MaulOfTheSkyclaves card) { diff --git a/Mage.Sets/src/mage/cards/m/MeteoricMace.java b/Mage.Sets/src/mage/cards/m/MeteoricMace.java index 4ec48967f2..f55f8ccd78 100644 --- a/Mage.Sets/src/mage/cards/m/MeteoricMace.java +++ b/Mage.Sets/src/mage/cards/m/MeteoricMace.java @@ -33,7 +33,7 @@ public final class MeteoricMace extends CardImpl { this.addAbility(ability); // Equip {4} - this.addAbility(new EquipAbility(4)); + this.addAbility(new EquipAbility(4, false)); // Cascade this.addAbility(new CascadeAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MindCarver.java b/Mage.Sets/src/mage/cards/m/MindCarver.java index 3ade92b93e..cbde447aa9 100644 --- a/Mage.Sets/src/mage/cards/m/MindCarver.java +++ b/Mage.Sets/src/mage/cards/m/MindCarver.java @@ -44,7 +44,7 @@ public final class MindCarver extends CardImpl { )).addHint(CardsInOpponentGraveyardCondition.EIGHT.getHint())); // Equip {2}{B} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{B}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{B}"), false)); } private MindCarver(final MindCarver card) { diff --git a/Mage.Sets/src/mage/cards/m/MoonsilverSpear.java b/Mage.Sets/src/mage/cards/m/MoonsilverSpear.java index c32773fc6a..35f4424cd8 100644 --- a/Mage.Sets/src/mage/cards/m/MoonsilverSpear.java +++ b/Mage.Sets/src/mage/cards/m/MoonsilverSpear.java @@ -30,7 +30,7 @@ public final class MoonsilverSpear extends CardImpl { this.addAbility(new AttacksAttachedTriggeredAbility(new CreateTokenEffect(new AngelToken()))); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4), false)); } private MoonsilverSpear(final MoonsilverSpear card) { diff --git a/Mage.Sets/src/mage/cards/m/Mortarpod.java b/Mage.Sets/src/mage/cards/m/Mortarpod.java index 9d84a7a1ed..886cff471e 100644 --- a/Mage.Sets/src/mage/cards/m/Mortarpod.java +++ b/Mage.Sets/src/mage/cards/m/Mortarpod.java @@ -47,7 +47,7 @@ public final class Mortarpod extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private Mortarpod(final Mortarpod card) { diff --git a/Mage.Sets/src/mage/cards/m/MurderersAxe.java b/Mage.Sets/src/mage/cards/m/MurderersAxe.java index 0785c7de7e..8f38fd9370 100644 --- a/Mage.Sets/src/mage/cards/m/MurderersAxe.java +++ b/Mage.Sets/src/mage/cards/m/MurderersAxe.java @@ -27,7 +27,7 @@ public final class MurderersAxe extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); // Equip — Discard a card. - this.addAbility(new EquipAbility(Outcome.AddAbility, new DiscardCardCost())); + this.addAbility(new EquipAbility(Outcome.AddAbility, new DiscardCardCost(), false)); } private MurderersAxe(final MurderersAxe card) { diff --git a/Mage.Sets/src/mage/cards/n/Necropouncer.java b/Mage.Sets/src/mage/cards/n/Necropouncer.java index e44d706af2..e603957192 100644 --- a/Mage.Sets/src/mage/cards/n/Necropouncer.java +++ b/Mage.Sets/src/mage/cards/n/Necropouncer.java @@ -30,7 +30,7 @@ public final class Necropouncer extends CardImpl { this.addAbility(new LivingWeaponAbility()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private Necropouncer(final Necropouncer card) { diff --git a/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java b/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java index 810e1cb6d3..ca77b01b7f 100644 --- a/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java +++ b/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java @@ -32,13 +32,13 @@ public final class NeglectedHeirloom extends CardImpl { // Equipped creature gets +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); - // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); // When equipped creature transforms, transform Neglected Heirloom. this.addAbility(new TransformAbility()); this.addAbility(new NeglectedHeirloomTriggeredAbility()); + // Equip {1} + this.addAbility(new EquipAbility(1, false)); } private NeglectedHeirloom(final NeglectedHeirloom card) { diff --git a/Mage.Sets/src/mage/cards/n/NekoTe.java b/Mage.Sets/src/mage/cards/n/NekoTe.java index f9b2160697..4fd12167ba 100644 --- a/Mage.Sets/src/mage/cards/n/NekoTe.java +++ b/Mage.Sets/src/mage/cards/n/NekoTe.java @@ -44,7 +44,7 @@ public final class NekoTe extends CardImpl { this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseLifeTargetEffect(1), "equipped creature", false, true, false)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2), false)); } private NekoTe(final NekoTe card) { diff --git a/Mage.Sets/src/mage/cards/n/Nettlecyst.java b/Mage.Sets/src/mage/cards/n/Nettlecyst.java index ea283a0a5f..667dbf3118 100644 --- a/Mage.Sets/src/mage/cards/n/Nettlecyst.java +++ b/Mage.Sets/src/mage/cards/n/Nettlecyst.java @@ -47,7 +47,7 @@ public final class Nettlecyst extends CardImpl { ).addHint(hint)); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private Nettlecyst(final Nettlecyst card) { diff --git a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java index 15ff6988cf..b6da9d2b5a 100644 --- a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java +++ b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java @@ -54,7 +54,7 @@ public final class NimDeathmantle extends CardImpl { this.addAbility(new NimDeathmantleTriggeredAbility()); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(4, false)); } private NimDeathmantle(final NimDeathmantle card) { diff --git a/Mage.Sets/src/mage/cards/o/ONaginata.java b/Mage.Sets/src/mage/cards/o/ONaginata.java index 9ae3d120c7..6de31ebdb6 100644 --- a/Mage.Sets/src/mage/cards/o/ONaginata.java +++ b/Mage.Sets/src/mage/cards/o/ONaginata.java @@ -30,7 +30,7 @@ import mage.target.common.TargetControlledCreaturePermanent; */ public final class ONaginata extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature with 3 or more power"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creature you control with 3 or more power "); static { filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 2)); diff --git a/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java b/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java index 09bfe9a2a0..6aecd7bc72 100644 --- a/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java +++ b/Mage.Sets/src/mage/cards/o/OathkeeperTakenosDaisho.java @@ -50,7 +50,7 @@ public final class OathkeeperTakenosDaisho extends CardImpl { this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new ExileEquippedEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}"), false)); } private OathkeeperTakenosDaisho(final OathkeeperTakenosDaisho card) { diff --git a/Mage.Sets/src/mage/cards/o/ObsidianBattleAxe.java b/Mage.Sets/src/mage/cards/o/ObsidianBattleAxe.java index 80df73eeaa..0be91b97d5 100644 --- a/Mage.Sets/src/mage/cards/o/ObsidianBattleAxe.java +++ b/Mage.Sets/src/mage/cards/o/ObsidianBattleAxe.java @@ -42,7 +42,7 @@ public final class ObsidianBattleAxe extends CardImpl { Zone.BATTLEFIELD, new AttachEffect(Outcome.Detriment, "attach {this} to it"), filter, true, SetTargetPointer.PERMANENT, null)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private ObsidianBattleAxe(final ObsidianBattleAxe card) { diff --git a/Mage.Sets/src/mage/cards/o/OgresCleaver.java b/Mage.Sets/src/mage/cards/o/OgresCleaver.java index e2ea6b15ea..7cf0148f35 100644 --- a/Mage.Sets/src/mage/cards/o/OgresCleaver.java +++ b/Mage.Sets/src/mage/cards/o/OgresCleaver.java @@ -24,8 +24,11 @@ public final class OgresCleaver extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(5))); + // Equipped creature gets +5/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(5, 0))); + + // Equip {5} + this.addAbility(new EquipAbility(5, false)); } public OgresCleaver (final OgresCleaver card) { diff --git a/Mage.Sets/src/mage/cards/p/ParadiseMantle.java b/Mage.Sets/src/mage/cards/p/ParadiseMantle.java index 85a7546e33..6e594a40e9 100644 --- a/Mage.Sets/src/mage/cards/p/ParadiseMantle.java +++ b/Mage.Sets/src/mage/cards/p/ParadiseMantle.java @@ -31,7 +31,7 @@ public final class ParadiseMantle extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new AnyColorManaAbility(new TapSourceCost()), AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } private ParadiseMantle(final ParadiseMantle card) { diff --git a/Mage.Sets/src/mage/cards/p/PariahsShield.java b/Mage.Sets/src/mage/cards/p/PariahsShield.java index 93bcd400b7..c0fa127a30 100644 --- a/Mage.Sets/src/mage/cards/p/PariahsShield.java +++ b/Mage.Sets/src/mage/cards/p/PariahsShield.java @@ -33,7 +33,7 @@ public final class PariahsShield extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PariahEffect())); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private PariahsShield(final PariahsShield card) { diff --git a/Mage.Sets/src/mage/cards/p/PathwayArrows.java b/Mage.Sets/src/mage/cards/p/PathwayArrows.java index 6d5974ad80..d6c5026dde 100644 --- a/Mage.Sets/src/mage/cards/p/PathwayArrows.java +++ b/Mage.Sets/src/mage/cards/p/PathwayArrows.java @@ -39,7 +39,7 @@ public final class PathwayArrows extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability2, AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private PathwayArrows(final PathwayArrows card) { diff --git a/Mage.Sets/src/mage/cards/p/PeregrineMask.java b/Mage.Sets/src/mage/cards/p/PeregrineMask.java index 40d75c050a..b922736b38 100644 --- a/Mage.Sets/src/mage/cards/p/PeregrineMask.java +++ b/Mage.Sets/src/mage/cards/p/PeregrineMask.java @@ -29,7 +29,7 @@ public final class PeregrineMask extends CardImpl { ability.addEffect(new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT)); this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private PeregrineMask(final PeregrineMask card) { diff --git a/Mage.Sets/src/mage/cards/p/PistonSledge.java b/Mage.Sets/src/mage/cards/p/PistonSledge.java index 8121bd1707..e7afe320c3 100644 --- a/Mage.Sets/src/mage/cards/p/PistonSledge.java +++ b/Mage.Sets/src/mage/cards/p/PistonSledge.java @@ -37,11 +37,16 @@ public final class PistonSledge extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); this.subtype.add(SubType.EQUIPMENT); + // When Piston Sledge enters the battlefield, attach it to target creature you control. Ability ability = new EntersBattlefieldTriggeredAbility(new AttachEffect(Outcome.BoostCreature, "attach it to target creature you control"), false); ability.addTarget(new TargetControlledCreaturePermanent()); this.addAbility(ability); + + // Equipped creature gets +3/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1))); - this.addAbility(new EquipAbility(Outcome.AddAbility, new SacrificeTargetCost(new TargetControlledPermanent(filter)))); + + // Equip—Sacrifice an artifact. + this.addAbility(new EquipAbility(Outcome.AddAbility, new SacrificeTargetCost(new TargetControlledPermanent(filter)), false)); } public PistonSledge (final PistonSledge card) { diff --git a/Mage.Sets/src/mage/cards/p/PlateArmor.java b/Mage.Sets/src/mage/cards/p/PlateArmor.java index df42e245ca..19d04923e5 100644 --- a/Mage.Sets/src/mage/cards/p/PlateArmor.java +++ b/Mage.Sets/src/mage/cards/p/PlateArmor.java @@ -45,7 +45,7 @@ public final class PlateArmor extends CardImpl { this.addAbility(ability); // Equip {3}. This ability costs {1} less to activate for each other Equipment you control. - EquipAbility equipAbility = new EquipAbility(3); + EquipAbility equipAbility = new EquipAbility(3, false); equipAbility.setCostAdjuster(PlateArmorAdjuster.instance); equipAbility.setCostReduceText("This ability costs {1} less to activate for each other Equipment you control."); this.addAbility(equipAbility.addHint(PlateArmorAdjuster.getHint())); diff --git a/Mage.Sets/src/mage/cards/p/PoetsQuill.java b/Mage.Sets/src/mage/cards/p/PoetsQuill.java index 7895c32a99..8cb0426c39 100644 --- a/Mage.Sets/src/mage/cards/p/PoetsQuill.java +++ b/Mage.Sets/src/mage/cards/p/PoetsQuill.java @@ -41,7 +41,7 @@ public final class PoetsQuill extends CardImpl { this.addAbility(ability); // Equip {1}{B} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{1}{B}"))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{1}{B}"), false)); } private PoetsQuill(final PoetsQuill card) { diff --git a/Mage.Sets/src/mage/cards/p/ProwlersHelm.java b/Mage.Sets/src/mage/cards/p/ProwlersHelm.java index dea4788500..4cf7e1c14e 100644 --- a/Mage.Sets/src/mage/cards/p/ProwlersHelm.java +++ b/Mage.Sets/src/mage/cards/p/ProwlersHelm.java @@ -32,7 +32,7 @@ public final class ProwlersHelm extends CardImpl { new CantBeBlockedByCreaturesAttachedEffect(Duration.WhileOnBattlefield, filter, AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2), false)); } private ProwlersHelm(final ProwlersHelm card) { diff --git a/Mage.Sets/src/mage/cards/q/QuietusSpike.java b/Mage.Sets/src/mage/cards/q/QuietusSpike.java index e915eaafc7..5cf54ae778 100644 --- a/Mage.Sets/src/mage/cards/q/QuietusSpike.java +++ b/Mage.Sets/src/mage/cards/q/QuietusSpike.java @@ -34,7 +34,7 @@ public final class QuietusSpike extends CardImpl { this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped", false, true)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private QuietusSpike(final QuietusSpike card) { diff --git a/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java b/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java index be552ca2a9..d52e50bea7 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java +++ b/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java @@ -55,7 +55,7 @@ public final class RakdosRiteknife extends CardImpl { this.addAbility(activatedAbility); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private RakdosRiteknife(final RakdosRiteknife card) { diff --git a/Mage.Sets/src/mage/cards/r/RavagersMace.java b/Mage.Sets/src/mage/cards/r/RavagersMace.java index 9b29332a03..c6e67eef6b 100644 --- a/Mage.Sets/src/mage/cards/r/RavagersMace.java +++ b/Mage.Sets/src/mage/cards/r/RavagersMace.java @@ -49,7 +49,7 @@ public final class RavagersMace extends CardImpl { this.addAbility(ability.addHint(PartyCountHint.instance)); // Equip {2}{B}{R} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{B}{R}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{B}{R}"), false)); } private RavagersMace(final RavagersMace card) { diff --git a/Mage.Sets/src/mage/cards/r/RazorBoomerang.java b/Mage.Sets/src/mage/cards/r/RazorBoomerang.java index 51390f91fb..c72a379c47 100644 --- a/Mage.Sets/src/mage/cards/r/RazorBoomerang.java +++ b/Mage.Sets/src/mage/cards/r/RazorBoomerang.java @@ -41,7 +41,7 @@ public final class RazorBoomerang extends CardImpl { ))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private RazorBoomerang(final RazorBoomerang card) { diff --git a/Mage.Sets/src/mage/cards/r/RelicAxe.java b/Mage.Sets/src/mage/cards/r/RelicAxe.java index 8a5b15371f..24e98c9c02 100644 --- a/Mage.Sets/src/mage/cards/r/RelicAxe.java +++ b/Mage.Sets/src/mage/cards/r/RelicAxe.java @@ -44,7 +44,7 @@ public final class RelicAxe extends CardImpl { ))); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private RelicAxe(final RelicAxe card) { diff --git a/Mage.Sets/src/mage/cards/r/RobeOfStars.java b/Mage.Sets/src/mage/cards/r/RobeOfStars.java index 0314c2fed1..44036c426f 100644 --- a/Mage.Sets/src/mage/cards/r/RobeOfStars.java +++ b/Mage.Sets/src/mage/cards/r/RobeOfStars.java @@ -36,7 +36,7 @@ public final class RobeOfStars extends CardImpl { ).withFlavorWord("Astral Projection")); // Equip {1} - this.addAbility(new EquipAbility(1)); + this.addAbility(new EquipAbility(1, false)); } private RobeOfStars(final RobeOfStars card) { diff --git a/Mage.Sets/src/mage/cards/r/RunechantersPike.java b/Mage.Sets/src/mage/cards/r/RunechantersPike.java index 24d640758c..f7a88de7ff 100644 --- a/Mage.Sets/src/mage/cards/r/RunechantersPike.java +++ b/Mage.Sets/src/mage/cards/r/RunechantersPike.java @@ -36,9 +36,6 @@ public final class RunechantersPike extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); this.subtype.add(SubType.EQUIPMENT); - // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); - // Equipped creature has first strike and gets +X/+0 where X is the number of instant and sorcery cards in your graveyard. Effect effect = new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT); Effect effect2 = new BoostEquippedEffect(new RunechantersPikeValue(), StaticValue.get(0)); @@ -48,6 +45,8 @@ public final class RunechantersPike extends CardImpl { ability.addEffect(effect2); this.addAbility(ability); + // Equip {2} + this.addAbility(new EquipAbility(2, false)); } private RunechantersPike(final RunechantersPike card) { diff --git a/Mage.Sets/src/mage/cards/r/RunedCrown.java b/Mage.Sets/src/mage/cards/r/RunedCrown.java index 133504f0b7..1673bb56fc 100644 --- a/Mage.Sets/src/mage/cards/r/RunedCrown.java +++ b/Mage.Sets/src/mage/cards/r/RunedCrown.java @@ -40,7 +40,7 @@ public final class RunedCrown extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 1))); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private RunedCrown(final RunedCrown card) { diff --git a/Mage.Sets/src/mage/cards/r/RunedStalactite.java b/Mage.Sets/src/mage/cards/r/RunedStalactite.java index c0c1b1b5f1..ff098c1917 100644 --- a/Mage.Sets/src/mage/cards/r/RunedStalactite.java +++ b/Mage.Sets/src/mage/cards/r/RunedStalactite.java @@ -29,7 +29,7 @@ public final class RunedStalactite extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}"), false)); } private RunedStalactite(final RunedStalactite card) { diff --git a/Mage.Sets/src/mage/cards/s/SaiOfTheShinobi.java b/Mage.Sets/src/mage/cards/s/SaiOfTheShinobi.java index 42bbc2a398..c658920ce1 100644 --- a/Mage.Sets/src/mage/cards/s/SaiOfTheShinobi.java +++ b/Mage.Sets/src/mage/cards/s/SaiOfTheShinobi.java @@ -41,7 +41,7 @@ public final class SaiOfTheShinobi extends CardImpl { Zone.BATTLEFIELD, new AttachEffect(Outcome.Detriment, "attach {this} to it"), filter, true, SetTargetPointer.PERMANENT, null, true)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private SaiOfTheShinobi(final SaiOfTheShinobi card) { diff --git a/Mage.Sets/src/mage/cards/s/SanctuaryBlade.java b/Mage.Sets/src/mage/cards/s/SanctuaryBlade.java index 287ca9060c..0f86849a2e 100644 --- a/Mage.Sets/src/mage/cards/s/SanctuaryBlade.java +++ b/Mage.Sets/src/mage/cards/s/SanctuaryBlade.java @@ -41,7 +41,7 @@ public final class SanctuaryBlade extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private SanctuaryBlade(final SanctuaryBlade card) { diff --git a/Mage.Sets/src/mage/cards/s/ScroungedScythe.java b/Mage.Sets/src/mage/cards/s/ScroungedScythe.java index 8426082f85..b65d619f9c 100644 --- a/Mage.Sets/src/mage/cards/s/ScroungedScythe.java +++ b/Mage.Sets/src/mage/cards/s/ScroungedScythe.java @@ -40,7 +40,7 @@ public final class ScroungedScythe extends CardImpl { "(It can't be blocked except by two or more creatures.)"))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private ScroungedScythe(final ScroungedScythe card) { diff --git a/Mage.Sets/src/mage/cards/s/ScytheOfTheWretched.java b/Mage.Sets/src/mage/cards/s/ScytheOfTheWretched.java index cccc9d1a95..6f34cf711d 100644 --- a/Mage.Sets/src/mage/cards/s/ScytheOfTheWretched.java +++ b/Mage.Sets/src/mage/cards/s/ScytheOfTheWretched.java @@ -46,7 +46,7 @@ public final class ScytheOfTheWretched extends CardImpl { this.addAbility(new ScytheOfTheWretchedTriggeredAbility()); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4), false)); } private ScytheOfTheWretched(final ScytheOfTheWretched card) { diff --git a/Mage.Sets/src/mage/cards/s/Scytheclaw.java b/Mage.Sets/src/mage/cards/s/Scytheclaw.java index 24c4405388..1609256cea 100644 --- a/Mage.Sets/src/mage/cards/s/Scytheclaw.java +++ b/Mage.Sets/src/mage/cards/s/Scytheclaw.java @@ -36,7 +36,7 @@ public final class Scytheclaw extends CardImpl { this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped creature", false, true)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private Scytheclaw(final Scytheclaw card) { diff --git a/Mage.Sets/src/mage/cards/s/SeraphicGreatsword.java b/Mage.Sets/src/mage/cards/s/SeraphicGreatsword.java index 8b2ee1dacf..be1c3d818c 100644 --- a/Mage.Sets/src/mage/cards/s/SeraphicGreatsword.java +++ b/Mage.Sets/src/mage/cards/s/SeraphicGreatsword.java @@ -38,7 +38,7 @@ public final class SeraphicGreatsword extends CardImpl { this.addAbility(new SeraphicGreatswordTriggeredAbility()); // Equip {4} - this.addAbility(new EquipAbility(4)); + this.addAbility(new EquipAbility(4, false)); } private SeraphicGreatsword(final SeraphicGreatsword card) { diff --git a/Mage.Sets/src/mage/cards/s/Shadowspear.java b/Mage.Sets/src/mage/cards/s/Shadowspear.java index deaa28781f..ae73a39496 100644 --- a/Mage.Sets/src/mage/cards/s/Shadowspear.java +++ b/Mage.Sets/src/mage/cards/s/Shadowspear.java @@ -52,7 +52,7 @@ public final class Shadowspear extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private Shadowspear(final Shadowspear card) { diff --git a/Mage.Sets/src/mage/cards/s/SharpenedPitchfork.java b/Mage.Sets/src/mage/cards/s/SharpenedPitchfork.java index 891ff5f0e9..47fc2b9b23 100644 --- a/Mage.Sets/src/mage/cards/s/SharpenedPitchfork.java +++ b/Mage.Sets/src/mage/cards/s/SharpenedPitchfork.java @@ -26,14 +26,14 @@ public final class SharpenedPitchfork extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}"); this.subtype.add(SubType.EQUIPMENT); - // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); - // Equipped creature has first strike. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT))); // As long as equipped creature is a Human, it gets +1/+1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEquippedEffect(1, 1), new EquippedHasSubtypeCondition(SubType.HUMAN), staticText))); + + // Equip {1} + this.addAbility(new EquipAbility(1, false)); } private SharpenedPitchfork(final SharpenedPitchfork card) { diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java b/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java index 2e7586eeb3..4a92202b77 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfKaldra.java @@ -46,7 +46,7 @@ public final class ShieldOfKaldra extends CardImpl { effect.setText("Equipped creature is indestructible"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); // Equip {4} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(4))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(4), false)); } private ShieldOfKaldra(final ShieldOfKaldra card) { diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfTheRealm.java b/Mage.Sets/src/mage/cards/s/ShieldOfTheRealm.java index d7670bcc11..1e9c8b9edf 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfTheRealm.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfTheRealm.java @@ -30,7 +30,7 @@ public final class ShieldOfTheRealm extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventDamageToAttachedEffect(Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT, 2, false))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.PreventDamage, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.PreventDamage, new GenericManaCost(1), false)); } private ShieldOfTheRealm(final ShieldOfTheRealm card) { diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfTheRighteous.java b/Mage.Sets/src/mage/cards/s/ShieldOfTheRighteous.java index 6ea3903fc5..9a693669b1 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfTheRighteous.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfTheRighteous.java @@ -37,7 +37,7 @@ public final class ShieldOfTheRighteous extends CardImpl { this.addAbility(new BlocksAttachedTriggeredAbility(new DontUntapInControllersNextUntapStepTargetEffect("that creature"), "equipped", false, false, true)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent())); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent(), false)); } private ShieldOfTheRighteous(final ShieldOfTheRighteous card) { diff --git a/Mage.Sets/src/mage/cards/s/Sickleslicer.java b/Mage.Sets/src/mage/cards/s/Sickleslicer.java index ba5236b3f1..1458d996e0 100644 --- a/Mage.Sets/src/mage/cards/s/Sickleslicer.java +++ b/Mage.Sets/src/mage/cards/s/Sickleslicer.java @@ -24,9 +24,15 @@ public final class Sickleslicer extends CardImpl { public Sickleslicer (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}"); this.subtype.add(SubType.EQUIPMENT); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + + // Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +2/+2. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + + // Equip {4} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4), false)); } public Sickleslicer (final Sickleslicer card) { diff --git a/Mage.Sets/src/mage/cards/s/SigilOfDistinction.java b/Mage.Sets/src/mage/cards/s/SigilOfDistinction.java index 9d6d325d25..ce2a3d0827 100644 --- a/Mage.Sets/src/mage/cards/s/SigilOfDistinction.java +++ b/Mage.Sets/src/mage/cards/s/SigilOfDistinction.java @@ -34,7 +34,7 @@ public final class SigilOfDistinction extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); // Equip—Remove a charge counter from Sigil of Distinction. - this.addAbility(new EquipAbility(Outcome.AddAbility, new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SigiledSwordOfValeron.java b/Mage.Sets/src/mage/cards/s/SigiledSwordOfValeron.java index 3919c41d6b..f98d95e9d1 100644 --- a/Mage.Sets/src/mage/cards/s/SigiledSwordOfValeron.java +++ b/Mage.Sets/src/mage/cards/s/SigiledSwordOfValeron.java @@ -52,7 +52,7 @@ public final class SigiledSwordOfValeron extends CardImpl { )); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private SigiledSwordOfValeron(final SigiledSwordOfValeron card) { diff --git a/Mage.Sets/src/mage/cards/s/SilverInlaidDagger.java b/Mage.Sets/src/mage/cards/s/SilverInlaidDagger.java index caab5cbb20..4064b7d922 100644 --- a/Mage.Sets/src/mage/cards/s/SilverInlaidDagger.java +++ b/Mage.Sets/src/mage/cards/s/SilverInlaidDagger.java @@ -26,14 +26,14 @@ public final class SilverInlaidDagger extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); this.subtype.add(SubType.EQUIPMENT); - // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); - // Equipped creature gets +2/+0 this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0))); // As long as equipped creature is a Human, it gets an additional +1/+0 this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEquippedEffect(1, 0), new EquippedHasSubtypeCondition(SubType.HUMAN), staticText))); + + // Equip {2} + this.addAbility(new EquipAbility(2, false)); } private SilverInlaidDagger(final SilverInlaidDagger card) { diff --git a/Mage.Sets/src/mage/cards/s/SilverskinArmor.java b/Mage.Sets/src/mage/cards/s/SilverskinArmor.java index 32d2cfe441..65a2ddf1c4 100644 --- a/Mage.Sets/src/mage/cards/s/SilverskinArmor.java +++ b/Mage.Sets/src/mage/cards/s/SilverskinArmor.java @@ -26,7 +26,7 @@ public final class SilverskinArmor extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AddCardTypeAttachedEffect(CardType.ARTIFACT, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}"), false)); } private SilverskinArmor(final SilverskinArmor card) { diff --git a/Mage.Sets/src/mage/cards/s/SirenSongLyre.java b/Mage.Sets/src/mage/cards/s/SirenSongLyre.java index 4be9550ae0..75269966e9 100644 --- a/Mage.Sets/src/mage/cards/s/SirenSongLyre.java +++ b/Mage.Sets/src/mage/cards/s/SirenSongLyre.java @@ -36,7 +36,7 @@ public final class SirenSongLyre extends CardImpl { grantedAbility.addTarget(new TargetCreaturePermanent()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(grantedAbility, AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl("{2}"))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{2}"), false)); } private SirenSongLyre(final SirenSongLyre card) { diff --git a/Mage.Sets/src/mage/cards/s/SkeletonKey.java b/Mage.Sets/src/mage/cards/s/SkeletonKey.java index 34d79a27d3..076d56d832 100644 --- a/Mage.Sets/src/mage/cards/s/SkeletonKey.java +++ b/Mage.Sets/src/mage/cards/s/SkeletonKey.java @@ -41,7 +41,7 @@ public final class SkeletonKey extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(3, false)); } private SkeletonKey(final SkeletonKey card) { diff --git a/Mage.Sets/src/mage/cards/s/Skinwing.java b/Mage.Sets/src/mage/cards/s/Skinwing.java index cb4d1811f3..af5e477c2d 100644 --- a/Mage.Sets/src/mage/cards/s/Skinwing.java +++ b/Mage.Sets/src/mage/cards/s/Skinwing.java @@ -27,10 +27,15 @@ public final class Skinwing extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}"); this.subtype.add(SubType.EQUIPMENT); + // Living Weapom this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +2/+2 and has flying this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.EQUIPMENT))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(6))); + + // Equip {6} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(6), false)); } private Skinwing(final Skinwing card) { diff --git a/Mage.Sets/src/mage/cards/s/Skullclamp.java b/Mage.Sets/src/mage/cards/s/Skullclamp.java index e01487acf1..e2dd09e8d7 100644 --- a/Mage.Sets/src/mage/cards/s/Skullclamp.java +++ b/Mage.Sets/src/mage/cards/s/Skullclamp.java @@ -30,7 +30,7 @@ public final class Skullclamp extends CardImpl { // Whenever equipped creature dies, draw two cards. this.addAbility(new DiesAttachedTriggeredAbility(new DrawCardSourceControllerEffect(2), "equipped creature")); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } private Skullclamp(final Skullclamp card) { diff --git a/Mage.Sets/src/mage/cards/s/SkyclavePickAxe.java b/Mage.Sets/src/mage/cards/s/SkyclavePickAxe.java index 615fdb66ce..ba6b93da2d 100644 --- a/Mage.Sets/src/mage/cards/s/SkyclavePickAxe.java +++ b/Mage.Sets/src/mage/cards/s/SkyclavePickAxe.java @@ -41,7 +41,7 @@ public final class SkyclavePickAxe extends CardImpl { this.addAbility(new LandfallAbility(new SkyclavePickAxeEffect())); // Equip {2}{G} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{G}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{2}{G}"), false)); } private SkyclavePickAxe(final SkyclavePickAxe card) { diff --git a/Mage.Sets/src/mage/cards/s/SlabHammer.java b/Mage.Sets/src/mage/cards/s/SlabHammer.java index 84168ce84b..2d29cb560c 100644 --- a/Mage.Sets/src/mage/cards/s/SlabHammer.java +++ b/Mage.Sets/src/mage/cards/s/SlabHammer.java @@ -36,7 +36,7 @@ public final class SlabHammer extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SlayersCleaver.java b/Mage.Sets/src/mage/cards/s/SlayersCleaver.java index c444feabdc..1f498eece0 100644 --- a/Mage.Sets/src/mage/cards/s/SlayersCleaver.java +++ b/Mage.Sets/src/mage/cards/s/SlayersCleaver.java @@ -28,8 +28,9 @@ public final class SlayersCleaver extends CardImpl { Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1)); ability.addEffect(new SlayersCleaverEffect()); this.addAbility(ability); + // Equip {4} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{4}"))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{4}"), false)); } private SlayersCleaver(final SlayersCleaver card) { diff --git a/Mage.Sets/src/mage/cards/s/SlayersPlate.java b/Mage.Sets/src/mage/cards/s/SlayersPlate.java index 683d1a69c2..fa78a82b7e 100644 --- a/Mage.Sets/src/mage/cards/s/SlayersPlate.java +++ b/Mage.Sets/src/mage/cards/s/SlayersPlate.java @@ -38,7 +38,7 @@ public final class SlayersPlate extends CardImpl { this.addAbility(new SlayersPlateTriggeredAbility()); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private SlayersPlate(final SlayersPlate card) { diff --git a/Mage.Sets/src/mage/cards/s/SorcerersWand.java b/Mage.Sets/src/mage/cards/s/SorcerersWand.java index 1034403b09..cbe9461b6e 100644 --- a/Mage.Sets/src/mage/cards/s/SorcerersWand.java +++ b/Mage.Sets/src/mage/cards/s/SorcerersWand.java @@ -46,7 +46,7 @@ public final class SorcerersWand extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } private SorcerersWand(final SorcerersWand card) { diff --git a/Mage.Sets/src/mage/cards/s/Spellbinder.java b/Mage.Sets/src/mage/cards/s/Spellbinder.java index 5753a14ff5..3888794fd7 100644 --- a/Mage.Sets/src/mage/cards/s/Spellbinder.java +++ b/Mage.Sets/src/mage/cards/s/Spellbinder.java @@ -48,7 +48,7 @@ public final class Spellbinder extends CardImpl { this.addAbility(new SpellbinderTriggeredAbility()); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(4, false)); } private Spellbinder(final Spellbinder card) { diff --git a/Mage.Sets/src/mage/cards/s/SteelclawLance.java b/Mage.Sets/src/mage/cards/s/SteelclawLance.java index 3034642fcd..d26530ebae 100644 --- a/Mage.Sets/src/mage/cards/s/SteelclawLance.java +++ b/Mage.Sets/src/mage/cards/s/SteelclawLance.java @@ -31,10 +31,10 @@ public final class SteelclawLance extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 2))); // Equip Knight {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), new TargetControlledCreaturePermanent(filter))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), new TargetControlledCreaturePermanent(filter), false)); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(3, false)); } diff --git a/Mage.Sets/src/mage/cards/s/StitchersGraft.java b/Mage.Sets/src/mage/cards/s/StitchersGraft.java index 9278e66631..665b29023f 100644 --- a/Mage.Sets/src/mage/cards/s/StitchersGraft.java +++ b/Mage.Sets/src/mage/cards/s/StitchersGraft.java @@ -45,7 +45,7 @@ public final class StitchersGraft extends CardImpl { this.addAbility(new UnattachedTriggeredAbility(effect, false)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private StitchersGraft(final StitchersGraft card) { diff --git a/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java b/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java index 48d7b2af9f..33e8b60cc8 100644 --- a/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java +++ b/Mage.Sets/src/mage/cards/s/StoneforgeMasterwork.java @@ -34,8 +34,9 @@ public final class StoneforgeMasterwork extends CardImpl { Effect effect = new BoostEquippedEffect(countEnchantments, countEnchantments); effect.setText("Equipped creature gets +1/+1 for each other creature you control that shares a creature type with it"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private StoneforgeMasterwork(final StoneforgeMasterwork card) { diff --git a/Mage.Sets/src/mage/cards/s/StormriderRig.java b/Mage.Sets/src/mage/cards/s/StormriderRig.java index 0e712ddc3d..c5aeeb6c2e 100644 --- a/Mage.Sets/src/mage/cards/s/StormriderRig.java +++ b/Mage.Sets/src/mage/cards/s/StormriderRig.java @@ -36,7 +36,7 @@ public final class StormriderRig extends CardImpl { StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT, true, SetTargetPointer.PERMANENT, null, true)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } diff --git a/Mage.Sets/src/mage/cards/s/Strandwalker.java b/Mage.Sets/src/mage/cards/s/Strandwalker.java index 42dcc45a41..465193f9e9 100644 --- a/Mage.Sets/src/mage/cards/s/Strandwalker.java +++ b/Mage.Sets/src/mage/cards/s/Strandwalker.java @@ -27,10 +27,15 @@ public final class Strandwalker extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}"); this.subtype.add(SubType.EQUIPMENT); + // Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) this.addAbility(new LivingWeaponAbility()); + + // Equipped creature gets +2/+4 and has reach. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 4))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ReachAbility.getInstance(), AttachmentType.EQUIPMENT))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4))); + + // Equip {4} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4), false)); } private Strandwalker(final Strandwalker card) { diff --git a/Mage.Sets/src/mage/cards/s/StrataScythe.java b/Mage.Sets/src/mage/cards/s/StrataScythe.java index 6905e435e8..1ce482bd5d 100644 --- a/Mage.Sets/src/mage/cards/s/StrataScythe.java +++ b/Mage.Sets/src/mage/cards/s/StrataScythe.java @@ -32,9 +32,15 @@ public final class StrataScythe extends CardImpl { public StrataScythe(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); this.subtype.add(SubType.EQUIPMENT); + + // Imprint — When Strata Scythe enters the battlefield, search your library for a land card, exile it, then shuffle. this.addAbility(new EntersBattlefieldTriggeredAbility(new StrataScytheImprintEffect()).setAbilityWord(AbilityWord.IMPRINT)); + + // Equipped creature gets +1/+1 for each land on the battlefield with the same name as the exiled card. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(SameNameAsExiledCountValue.getInstance(), SameNameAsExiledCountValue.getInstance()))); - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + + // Equip {3} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private StrataScythe(final StrataScythe card) { diff --git a/Mage.Sets/src/mage/cards/s/Sunforger.java b/Mage.Sets/src/mage/cards/s/Sunforger.java index faa0b72a91..937b4913fc 100644 --- a/Mage.Sets/src/mage/cards/s/Sunforger.java +++ b/Mage.Sets/src/mage/cards/s/Sunforger.java @@ -56,7 +56,7 @@ public final class Sunforger extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SwiftfootBoots.java b/Mage.Sets/src/mage/cards/s/SwiftfootBoots.java index d2bdcba740..7ab481d0b6 100644 --- a/Mage.Sets/src/mage/cards/s/SwiftfootBoots.java +++ b/Mage.Sets/src/mage/cards/s/SwiftfootBoots.java @@ -36,7 +36,7 @@ public final class SwiftfootBoots extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java b/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java index d7125ec8ff..e8f28e5648 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfBodyAndMind.java @@ -43,7 +43,7 @@ public final class SwordOfBodyAndMind extends CardImpl { this.addAbility(new SwordOfBodyAndMindAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private SwordOfBodyAndMind(final SwordOfBodyAndMind card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfDungeonsAndDragons.java b/Mage.Sets/src/mage/cards/s/SwordOfDungeonsAndDragons.java index be9acd5555..7c2155859e 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfDungeonsAndDragons.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfDungeonsAndDragons.java @@ -60,7 +60,7 @@ public final class SwordOfDungeonsAndDragons extends CardImpl { this.addAbility(new SwordOfDungeonsAndDragonsAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private SwordOfDungeonsAndDragons(final SwordOfDungeonsAndDragons card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java b/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java index 2726d3e9a0..e41d48886d 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfFeastAndFamine.java @@ -42,7 +42,7 @@ public final class SwordOfFeastAndFamine extends CardImpl { this.addAbility(new SwordOfFeastAndFamineAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private SwordOfFeastAndFamine(final SwordOfFeastAndFamine card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java b/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java index deff15676c..4d64417b8d 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfFireAndIce.java @@ -47,7 +47,7 @@ public final class SwordOfFireAndIce extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2), false)); } private SwordOfFireAndIce(final SwordOfFireAndIce card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java b/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java index 79daf8528c..9b525a7b9f 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfHearthAndHome.java @@ -57,7 +57,7 @@ public final class SwordOfHearthAndHome extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(2), false)); } private SwordOfHearthAndHome(final SwordOfHearthAndHome card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java b/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java index b0e5d7d08e..8de3fc920e 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfLightAndShadow.java @@ -49,7 +49,7 @@ public final class SwordOfLightAndShadow extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private SwordOfLightAndShadow(final SwordOfLightAndShadow card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java b/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java index f649145e7b..baf05dbae7 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfSinewAndSteel.java @@ -49,7 +49,7 @@ public final class SwordOfSinewAndSteel extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private SwordOfSinewAndSteel(final SwordOfSinewAndSteel card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java b/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java index 9a1a263a79..6f4e672f6c 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheAnimist.java @@ -37,7 +37,7 @@ public final class SwordOfTheAnimist extends CardImpl { TargetCardInLibrary target = new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND); this.addAbility(new AttacksAttachedTriggeredAbility(new SearchLibraryPutInPlayEffect(target, true), true)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private SwordOfTheAnimist(final SwordOfTheAnimist card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java b/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java index 8f88c24750..1f30cb9524 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheMeek.java @@ -40,7 +40,7 @@ public final class SwordOfTheMeek extends CardImpl { // Equipped creature gets +1/+2. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 2, Duration.WhileOnBattlefield))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); // Whenever a 1/1 creature enters the battlefield under your control, you may return Sword of the Meek from your graveyard to the battlefield, then attach it to that creature. this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.GRAVEYARD, new SwordOfTheMeekEffect(), filter, true, SetTargetPointer.PERMANENT, "")); } diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java b/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java index e769a7331b..5d58fc3b49 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTheParuns.java @@ -61,7 +61,7 @@ public final class SwordOfTheParuns extends CardImpl { // {3}: You may tap or untap equipped creature. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new MayTapOrUntapAttachedEffect(), new GenericManaCost(3))); // Equip {3} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3), false)); } private SwordOfTheParuns(final SwordOfTheParuns card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java b/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java index a04523a5cf..10eb177ad8 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfTruthAndJustice.java @@ -49,7 +49,7 @@ public final class SwordOfTruthAndJustice extends CardImpl { )); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private SwordOfTruthAndJustice(final SwordOfTruthAndJustice card) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfVengeance.java b/Mage.Sets/src/mage/cards/s/SwordOfVengeance.java index 0b301ced67..38dcfd7c41 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfVengeance.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfVengeance.java @@ -51,7 +51,7 @@ public final class SwordOfVengeance extends CardImpl { this.addAbility(ability); // Equip 3 - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } protected SwordOfVengeance(SwordOfVengeance me) { diff --git a/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java b/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java index 4998d59181..8e0e54b513 100644 --- a/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java +++ b/Mage.Sets/src/mage/cards/s/SwordOfWarAndPeace.java @@ -44,7 +44,7 @@ public final class SwordOfWarAndPeace extends CardImpl { this.addAbility(new SwordOfWarAndPeaceAbility()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private SwordOfWarAndPeace(final SwordOfWarAndPeace card) { diff --git a/Mage.Sets/src/mage/cards/s/SylvokLifestaff.java b/Mage.Sets/src/mage/cards/s/SylvokLifestaff.java index ef524d8504..5b62c5d8f9 100644 --- a/Mage.Sets/src/mage/cards/s/SylvokLifestaff.java +++ b/Mage.Sets/src/mage/cards/s/SylvokLifestaff.java @@ -29,8 +29,8 @@ public final class SylvokLifestaff extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 0))); // Whenever equipped creature dies, you gain 3 life. this.addAbility(new DiesAttachedTriggeredAbility(new GainLifeEffect(3), "equipped creature")); - // // Equip {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + // Equip {1} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), false)); } private SylvokLifestaff(final SylvokLifestaff card) { diff --git a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java index ddf4c5a832..66a197a677 100644 --- a/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java +++ b/Mage.Sets/src/mage/cards/t/TatsumasaTheDragonsFang.java @@ -44,7 +44,7 @@ public final class TatsumasaTheDragonsFang extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private TatsumasaTheDragonsFang(final TatsumasaTheDragonsFang card) { diff --git a/Mage.Sets/src/mage/cards/t/TeamPennant.java b/Mage.Sets/src/mage/cards/t/TeamPennant.java index d73cb69a45..5d989d0c4f 100644 --- a/Mage.Sets/src/mage/cards/t/TeamPennant.java +++ b/Mage.Sets/src/mage/cards/t/TeamPennant.java @@ -49,11 +49,11 @@ public final class TeamPennant extends CardImpl { // Equip creature token {1} this.addAbility(new EquipAbility( - Outcome.BoostCreature, new GenericManaCost(1), new TargetPermanent(filter) + Outcome.BoostCreature, new GenericManaCost(1), new TargetPermanent(filter), false )); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private TeamPennant(final TeamPennant card) { diff --git a/Mage.Sets/src/mage/cards/t/ThirstingAxe.java b/Mage.Sets/src/mage/cards/t/ThirstingAxe.java index a72069a206..b024272729 100644 --- a/Mage.Sets/src/mage/cards/t/ThirstingAxe.java +++ b/Mage.Sets/src/mage/cards/t/ThirstingAxe.java @@ -52,7 +52,7 @@ public final class ThirstingAxe extends CardImpl { this.addAbility(sacrificeTriggeredAbility, new CombatDamageToCreatureWatcher()); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private ThirstingAxe(final ThirstingAxe card) { diff --git a/Mage.Sets/src/mage/cards/t/ThornbiteStaff.java b/Mage.Sets/src/mage/cards/t/ThornbiteStaff.java index 375babcf55..7a4fafb2d0 100644 --- a/Mage.Sets/src/mage/cards/t/ThornbiteStaff.java +++ b/Mage.Sets/src/mage/cards/t/ThornbiteStaff.java @@ -54,7 +54,7 @@ public final class ThornbiteStaff extends CardImpl { Zone.BATTLEFIELD, new AttachEffect(Outcome.Detriment, "attach {this} to it"), filter, true, SetTargetPointer.PERMANENT, null)); // Equip {4} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(4))); + this.addAbility(new EquipAbility(4, false)); } private ThornbiteStaff(final ThornbiteStaff card) { diff --git a/Mage.Sets/src/mage/cards/t/ToralfGodOfFury.java b/Mage.Sets/src/mage/cards/t/ToralfGodOfFury.java index a9ea1493fe..c74e92659d 100644 --- a/Mage.Sets/src/mage/cards/t/ToralfGodOfFury.java +++ b/Mage.Sets/src/mage/cards/t/ToralfGodOfFury.java @@ -78,7 +78,7 @@ public final class ToralfGodOfFury extends ModalDoubleFacesCard { ))); // Equip {1}{R} - this.getRightHalfCard().addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{1}{R}"))); + this.getRightHalfCard().addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{1}{R}"), false)); } private ToralfGodOfFury(final ToralfGodOfFury card) { diff --git a/Mage.Sets/src/mage/cards/t/TormentorsTrident.java b/Mage.Sets/src/mage/cards/t/TormentorsTrident.java index 9b1eb3a285..26333cb449 100644 --- a/Mage.Sets/src/mage/cards/t/TormentorsTrident.java +++ b/Mage.Sets/src/mage/cards/t/TormentorsTrident.java @@ -37,7 +37,7 @@ public final class TormentorsTrident extends CardImpl { this.addAbility(ability); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), false)); } private TormentorsTrident(final TormentorsTrident card) { diff --git a/Mage.Sets/src/mage/cards/t/TrailblazersBoots.java b/Mage.Sets/src/mage/cards/t/TrailblazersBoots.java index 4bed99fbc7..ab370a645a 100644 --- a/Mage.Sets/src/mage/cards/t/TrailblazersBoots.java +++ b/Mage.Sets/src/mage/cards/t/TrailblazersBoots.java @@ -34,7 +34,7 @@ public final class TrailblazersBoots extends CardImpl { ))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private TrailblazersBoots(final TrailblazersBoots card) { diff --git a/Mage.Sets/src/mage/cards/t/TrepanationBlade.java b/Mage.Sets/src/mage/cards/t/TrepanationBlade.java index 839a8c07c5..d25155d785 100644 --- a/Mage.Sets/src/mage/cards/t/TrepanationBlade.java +++ b/Mage.Sets/src/mage/cards/t/TrepanationBlade.java @@ -38,7 +38,7 @@ public final class TrepanationBlade extends CardImpl { this.addAbility(new AttacksAttachedTriggeredAbility(new TrepanationBladeDiscardEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false)); } private TrepanationBlade(final TrepanationBlade card) { diff --git a/Mage.Sets/src/mage/cards/t/TrickstersTalisman.java b/Mage.Sets/src/mage/cards/t/TrickstersTalisman.java index f4576397fc..df971dac89 100644 --- a/Mage.Sets/src/mage/cards/t/TrickstersTalisman.java +++ b/Mage.Sets/src/mage/cards/t/TrickstersTalisman.java @@ -34,7 +34,7 @@ public final class TrickstersTalisman extends CardImpl { this.addAbility(ability.withFlavorWord("Invoke Duplicity")); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private TrickstersTalisman(final TrickstersTalisman card) { diff --git a/Mage.Sets/src/mage/cards/t/TrustyMachete.java b/Mage.Sets/src/mage/cards/t/TrustyMachete.java index 1d1e647f19..7bad10bb7c 100644 --- a/Mage.Sets/src/mage/cards/t/TrustyMachete.java +++ b/Mage.Sets/src/mage/cards/t/TrustyMachete.java @@ -24,7 +24,7 @@ public final class TrustyMachete extends CardImpl { this.subtype.add(SubType.EQUIPMENT); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 1))); - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private TrustyMachete(final TrustyMachete card) { diff --git a/Mage.Sets/src/mage/cards/u/UmbralMantle.java b/Mage.Sets/src/mage/cards/u/UmbralMantle.java index dca9ebb842..31c6262b7f 100644 --- a/Mage.Sets/src/mage/cards/u/UmbralMantle.java +++ b/Mage.Sets/src/mage/cards/u/UmbralMantle.java @@ -34,7 +34,7 @@ public final class UmbralMantle extends CardImpl { ability.addCost(new UntapSourceCost()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT))); // Equip {0} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl())); + this.addAbility(new EquipAbility(0, false)); } private UmbralMantle(final UmbralMantle card) { diff --git a/Mage.Sets/src/mage/cards/u/UmezawasJitte.java b/Mage.Sets/src/mage/cards/u/UmezawasJitte.java index 938e23a894..5496d9e098 100644 --- a/Mage.Sets/src/mage/cards/u/UmezawasJitte.java +++ b/Mage.Sets/src/mage/cards/u/UmezawasJitte.java @@ -53,7 +53,7 @@ public final class UmezawasJitte extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } private UmezawasJitte(final UmezawasJitte card) { diff --git a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java index 0fc10f27ab..b2b7e00f0e 100644 --- a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java +++ b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java @@ -45,7 +45,7 @@ public final class UnscytheKillerOfKings extends CardImpl { this.addAbility(new UnscytheKillerOfKingsTriggeredAbility(new UnscytheEffect())); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent())); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent(), false)); } private UnscytheKillerOfKings(final UnscytheKillerOfKings card) { diff --git a/Mage.Sets/src/mage/cards/v/ValkyriesSword.java b/Mage.Sets/src/mage/cards/v/ValkyriesSword.java index b5191ef6bb..358a94601e 100644 --- a/Mage.Sets/src/mage/cards/v/ValkyriesSword.java +++ b/Mage.Sets/src/mage/cards/v/ValkyriesSword.java @@ -34,7 +34,7 @@ public final class ValkyriesSword extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 1))); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private ValkyriesSword(final ValkyriesSword card) { diff --git a/Mage.Sets/src/mage/cards/v/VectisGloves.java b/Mage.Sets/src/mage/cards/v/VectisGloves.java index bc899f3f08..dd49407682 100644 --- a/Mage.Sets/src/mage/cards/v/VectisGloves.java +++ b/Mage.Sets/src/mage/cards/v/VectisGloves.java @@ -39,7 +39,7 @@ public final class VectisGloves extends CardImpl { this.addAbility(ability); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private VectisGloves(final VectisGloves card) { diff --git a/Mage.Sets/src/mage/cards/v/VeteransArmaments.java b/Mage.Sets/src/mage/cards/v/VeteransArmaments.java index 2b1caf8de0..f5e0d5c935 100644 --- a/Mage.Sets/src/mage/cards/v/VeteransArmaments.java +++ b/Mage.Sets/src/mage/cards/v/VeteransArmaments.java @@ -50,7 +50,7 @@ public final class VeteransArmaments extends CardImpl { filter, true, SetTargetPointer.PERMANENT, null)); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(2, false)); } private VeteransArmaments(final VeteransArmaments card) { diff --git a/Mage.Sets/src/mage/cards/v/ViridianClaw.java b/Mage.Sets/src/mage/cards/v/ViridianClaw.java index f0bf1e4879..8e67257f69 100644 --- a/Mage.Sets/src/mage/cards/v/ViridianClaw.java +++ b/Mage.Sets/src/mage/cards/v/ViridianClaw.java @@ -36,7 +36,7 @@ public final class ViridianClaw extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1), false)); } public ViridianClaw (final ViridianClaw card) { diff --git a/Mage.Sets/src/mage/cards/v/VorpalSword.java b/Mage.Sets/src/mage/cards/v/VorpalSword.java index 57073864ee..8d3edf782b 100644 --- a/Mage.Sets/src/mage/cards/v/VorpalSword.java +++ b/Mage.Sets/src/mage/cards/v/VorpalSword.java @@ -43,7 +43,7 @@ public final class VorpalSword extends CardImpl { ), new ManaCostsImpl<>("{5}{B}{B}{B}"))); // Equip {B}{B} - this.addAbility(new EquipAbility(Outcome.Benefit, new ManaCostsImpl<>("{B}{B}"))); + this.addAbility(new EquipAbility(Outcome.Benefit, new ManaCostsImpl<>("{B}{B}"), false)); } private VorpalSword(final VorpalSword card) { diff --git a/Mage.Sets/src/mage/cards/w/WandOfOrcus.java b/Mage.Sets/src/mage/cards/w/WandOfOrcus.java index 8aef1a4219..bee72fa468 100644 --- a/Mage.Sets/src/mage/cards/w/WandOfOrcus.java +++ b/Mage.Sets/src/mage/cards/w/WandOfOrcus.java @@ -49,7 +49,7 @@ public final class WandOfOrcus extends CardImpl { )); // Equip {3} - this.addAbility(new EquipAbility(Outcome.AddAbility, new ManaCostsImpl<>("{3}"))); + this.addAbility(new EquipAbility(3, false)); } private WandOfOrcus(final WandOfOrcus card) { diff --git a/Mage.Sets/src/mage/cards/w/WhispersilkCloak.java b/Mage.Sets/src/mage/cards/w/WhispersilkCloak.java index 7a4cd29913..dc6d23706e 100644 --- a/Mage.Sets/src/mage/cards/w/WhispersilkCloak.java +++ b/Mage.Sets/src/mage/cards/w/WhispersilkCloak.java @@ -32,7 +32,7 @@ public final class WhispersilkCloak extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeBlockedAttachedEffect(AttachmentType.EQUIPMENT))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.EQUIPMENT))); // Equip {2} - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2), false)); } protected WhispersilkCloak(WhispersilkCloak me) { diff --git a/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java b/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java index 7937707bcd..4e733fcd7f 100644 --- a/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java +++ b/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java @@ -44,7 +44,7 @@ public final class WhispersteelDagger extends CardImpl { this.addAbility(ability, new WhispersteelDaggerWatcher()); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private WhispersteelDagger(final WhispersteelDagger card) { diff --git a/Mage.Sets/src/mage/cards/w/WingedBoots.java b/Mage.Sets/src/mage/cards/w/WingedBoots.java index 30d861f908..ddb24e9948 100644 --- a/Mage.Sets/src/mage/cards/w/WingedBoots.java +++ b/Mage.Sets/src/mage/cards/w/WingedBoots.java @@ -35,7 +35,7 @@ public final class WingedBoots extends CardImpl { this.addAbility(ability); // Equip {1} - this.addAbility(new EquipAbility(1)); + this.addAbility(new EquipAbility(1, false)); } private WingedBoots(final WingedBoots card) { diff --git a/Mage.Sets/src/mage/cards/w/WitchesEye.java b/Mage.Sets/src/mage/cards/w/WitchesEye.java index edad0ea641..4186aae973 100644 --- a/Mage.Sets/src/mage/cards/w/WitchesEye.java +++ b/Mage.Sets/src/mage/cards/w/WitchesEye.java @@ -35,7 +35,7 @@ public final class WitchesEye extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield))); // Equip {1} - this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.Benefit, new GenericManaCost(1), false)); } private WitchesEye(final WitchesEye card) { diff --git a/Mage.Sets/src/mage/cards/w/WolfhuntersQuiver.java b/Mage.Sets/src/mage/cards/w/WolfhuntersQuiver.java index dfc670b0c6..85a33c8f19 100644 --- a/Mage.Sets/src/mage/cards/w/WolfhuntersQuiver.java +++ b/Mage.Sets/src/mage/cards/w/WolfhuntersQuiver.java @@ -50,7 +50,7 @@ public final class WolfhuntersQuiver extends CardImpl { this.addAbility(ability); // Equip {5} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(5))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(5), false)); } private WolfhuntersQuiver(final WolfhuntersQuiver card) { diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index ecf6c6332f..5869544799 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -7,10 +7,7 @@ import mage.abilities.common.WerewolfBackTriggeredAbility; import mage.abilities.common.WerewolfFrontTriggeredAbility; import mage.abilities.effects.common.FightTargetsEffect; import mage.abilities.effects.keyword.ScryEffect; -import mage.abilities.keyword.EnchantAbility; -import mage.abilities.keyword.MenaceAbility; -import mage.abilities.keyword.MultikickerAbility; -import mage.abilities.keyword.TransformAbility; +import mage.abilities.keyword.*; import mage.cards.*; import mage.cards.decks.DeckCardLists; import mage.cards.decks.importer.DeckImporter; @@ -1420,6 +1417,7 @@ public class VerifyCardDataTest { hints.put(FightTargetsEffect.class, "Each deals damage equal to its power to the other"); hints.put(MenaceAbility.class, "can't be blocked except by two or more"); hints.put(ScryEffect.class, "Look at the top card of your library. You may put that card on the bottom of your library"); + hints.put(EquipAbility.class, "Equip only as a sorcery."); for (Class objectClass : hints.keySet()) { String objectHint = hints.get(objectClass); diff --git a/Mage/src/main/java/mage/abilities/keyword/EquipAbility.java b/Mage/src/main/java/mage/abilities/keyword/EquipAbility.java index 1bc91d6cfc..b108a3b440 100644 --- a/Mage/src/main/java/mage/abilities/keyword/EquipAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/EquipAbility.java @@ -16,24 +16,39 @@ import mage.target.common.TargetControlledCreaturePermanent; public class EquipAbility extends ActivatedAbilityImpl { private String costReduceText = null; + private final boolean showAbilityHint; public EquipAbility(int cost) { - this(Outcome.AddAbility, new GenericManaCost(cost)); + this(cost, true); + } + + public EquipAbility(int cost, boolean showAbilityHint) { + this(Outcome.AddAbility, new GenericManaCost(cost), showAbilityHint); } public EquipAbility(Outcome outcome, Cost cost) { - this(outcome, cost, new TargetControlledCreaturePermanent()); + this(outcome, cost, true); + } + + public EquipAbility(Outcome outcome, Cost cost, boolean showAbilityHint) { + this(outcome, cost, new TargetControlledCreaturePermanent(), showAbilityHint); } public EquipAbility(Outcome outcome, Cost cost, Target target) { + this(outcome, cost, target, true); + } + + public EquipAbility(Outcome outcome, Cost cost, Target target, boolean showAbilityHint) { super(Zone.BATTLEFIELD, new EquipEffect(outcome), cost); this.addTarget(target); this.timing = TimingRule.SORCERY; + this.showAbilityHint = showAbilityHint; } public EquipAbility(final EquipAbility ability) { super(ability); this.costReduceText = ability.costReduceText; + this.showAbilityHint = ability.showAbilityHint; } public void setCostReduceText(String text) { @@ -68,7 +83,9 @@ public class EquipAbility extends ActivatedAbilityImpl { if (maxActivationsPerTurn == 1) { sb.append(". Activate only once each turn."); } - sb.append(reminderText); + if (showAbilityHint) { + sb.append(reminderText); + } return sb.toString(); } } From 3f7a259c2fae4f11af89ec57cc34e472e3e3b1aa Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Wed, 11 May 2022 19:32:11 -0600 Subject: [PATCH 3/6] Add fix --- .../AddManaOfTwoDifferentColorsEffect.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/effects/mana/AddManaOfTwoDifferentColorsEffect.java b/Mage/src/main/java/mage/abilities/effects/mana/AddManaOfTwoDifferentColorsEffect.java index 5b0aaaadef..834170cf94 100644 --- a/Mage/src/main/java/mage/abilities/effects/mana/AddManaOfTwoDifferentColorsEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/mana/AddManaOfTwoDifferentColorsEffect.java @@ -4,6 +4,7 @@ package mage.abilities.effects.mana; import mage.Mana; import mage.abilities.Ability; import mage.choices.ManaChoice; +import mage.constants.ManaType; import mage.game.Game; import mage.players.Player; @@ -12,6 +13,32 @@ import java.util.List; public class AddManaOfTwoDifferentColorsEffect extends ManaEffect { + // Performing this calculation here since it never changes and should not be recalcualted each time. + private static final List colorsToCycle = new ArrayList<>(); + private static final List netMana = new ArrayList<>(); + static { + // Add the colored mana in order to cycle through them + colorsToCycle.add(ManaType.WHITE); + colorsToCycle.add(ManaType.BLUE); + colorsToCycle.add(ManaType.BLACK); + colorsToCycle.add(ManaType.RED); + colorsToCycle.add(ManaType.GREEN); + + // Create the possible combinations of two mana + for (ManaType manaType1 : colorsToCycle) { + for (ManaType manaType2 : colorsToCycle) { + // Mana types must be different + if (manaType1 == manaType2) { + continue; + } + + Mana manaCombo = new Mana(manaType1); + manaCombo.increase(manaType2); + netMana.add(manaCombo); + } + } + } + public AddManaOfTwoDifferentColorsEffect() { super(); staticText = "Add two mana of different colors."; @@ -23,8 +50,6 @@ public class AddManaOfTwoDifferentColorsEffect extends ManaEffect { @Override public List getNetMana(Game game, Ability source) { - List netMana = new ArrayList<>(); - netMana.add(Mana.AnyMana(2)); return netMana; } From e1241fa1298ff59abdf66a384a9100f54ba69a53 Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Thu, 12 May 2022 08:21:18 -0600 Subject: [PATCH 4/6] Fix issues from merge --- Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java | 2 +- Mage.Sets/src/mage/cards/w/WandOfOrcus.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java index 82a47394ca..1b7ec72c9e 100644 --- a/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java +++ b/Mage.Sets/src/mage/cards/u/UnscytheKillerOfKings.java @@ -45,7 +45,7 @@ public final class UnscytheKillerOfKings extends CardImpl { this.addAbility(new UnscytheKillerOfKingsTriggeredAbility(new UnscytheEffect())); // Equip {2} - this.addAbility(new EquipAbility(2), false); + this.addAbility(new EquipAbility(2, false)); } private UnscytheKillerOfKings(final UnscytheKillerOfKings card) { diff --git a/Mage.Sets/src/mage/cards/w/WandOfOrcus.java b/Mage.Sets/src/mage/cards/w/WandOfOrcus.java index 5acbb587e7..743d44bced 100644 --- a/Mage.Sets/src/mage/cards/w/WandOfOrcus.java +++ b/Mage.Sets/src/mage/cards/w/WandOfOrcus.java @@ -3,7 +3,6 @@ package mage.cards.w; import mage.abilities.Ability; import mage.abilities.common.AttacksOrBlocksAttachedTriggeredAbility; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; -import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.dynamicvalue.common.SavedDamageValue; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; From 56948864ff38861ab9102eda1f95c22ed00bd7f6 Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Thu, 12 May 2022 08:49:21 -0600 Subject: [PATCH 5/6] Fix failing tests --- Mage.Sets/src/mage/cards/e/EaterOfVirtue.java | 2 +- Mage.Sets/src/mage/cards/s/SoulstealerAxe.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Mage.Sets/src/mage/cards/e/EaterOfVirtue.java b/Mage.Sets/src/mage/cards/e/EaterOfVirtue.java index 8af937ff61..ca6da8248e 100644 --- a/Mage.Sets/src/mage/cards/e/EaterOfVirtue.java +++ b/Mage.Sets/src/mage/cards/e/EaterOfVirtue.java @@ -66,7 +66,7 @@ public final class EaterOfVirtue extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new EaterOfVirtueGainAbilityAttachedEffect())); // Equip {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), false)); } diff --git a/Mage.Sets/src/mage/cards/s/SoulstealerAxe.java b/Mage.Sets/src/mage/cards/s/SoulstealerAxe.java index addb47b786..97c9f3eda2 100644 --- a/Mage.Sets/src/mage/cards/s/SoulstealerAxe.java +++ b/Mage.Sets/src/mage/cards/s/SoulstealerAxe.java @@ -38,7 +38,7 @@ public final class SoulstealerAxe extends CardImpl { )); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private SoulstealerAxe(final SoulstealerAxe card) { From ab7d06ad892c01abfd1377c278a34f055a55bfdf Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Thu, 12 May 2022 09:07:46 -0600 Subject: [PATCH 6/6] Fix failing tests (was passing locally but failing on Travis due to an old local version of AllPrintings) --- Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java | 3 ++- Mage.Sets/src/mage/cards/l/LuxiorGiadasGift.java | 4 ++-- Mage.Sets/src/mage/cards/m/MaskOfTheSchemer.java | 2 +- Mage.Sets/src/mage/cards/s/ScepterOfCelebration.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java b/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java index 7e3b55d1d6..b5d1f5cfdf 100644 --- a/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java +++ b/Mage.Sets/src/mage/cards/g/GavelOfTheRighteous.java @@ -58,7 +58,8 @@ public final class GavelOfTheRighteous extends CardImpl { new OrCost( "Pay {3} or remove a counter from {this}", new GenericManaCost(3), new RemoveCountersSourceCost() - ) + ), + false )); } diff --git a/Mage.Sets/src/mage/cards/l/LuxiorGiadasGift.java b/Mage.Sets/src/mage/cards/l/LuxiorGiadasGift.java index e26cbd048f..ec67ac70b5 100644 --- a/Mage.Sets/src/mage/cards/l/LuxiorGiadasGift.java +++ b/Mage.Sets/src/mage/cards/l/LuxiorGiadasGift.java @@ -43,10 +43,10 @@ public final class LuxiorGiadasGift extends CardImpl { this.addAbility(new SimpleStaticAbility(new LuxiorGiadasGiftEffect())); // Equip planeswalker {1} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), new TargetPermanent(filter))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(1), new TargetPermanent(filter), false)); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private LuxiorGiadasGift(final LuxiorGiadasGift card) { diff --git a/Mage.Sets/src/mage/cards/m/MaskOfTheSchemer.java b/Mage.Sets/src/mage/cards/m/MaskOfTheSchemer.java index d254d7d0f2..ce4b111cdf 100644 --- a/Mage.Sets/src/mage/cards/m/MaskOfTheSchemer.java +++ b/Mage.Sets/src/mage/cards/m/MaskOfTheSchemer.java @@ -31,7 +31,7 @@ public final class MaskOfTheSchemer extends CardImpl { )); // Equip {2} - this.addAbility(new EquipAbility(2)); + this.addAbility(new EquipAbility(2, false)); } private MaskOfTheSchemer(final MaskOfTheSchemer card) { diff --git a/Mage.Sets/src/mage/cards/s/ScepterOfCelebration.java b/Mage.Sets/src/mage/cards/s/ScepterOfCelebration.java index 2f852bc9bc..20d020e0a7 100644 --- a/Mage.Sets/src/mage/cards/s/ScepterOfCelebration.java +++ b/Mage.Sets/src/mage/cards/s/ScepterOfCelebration.java @@ -41,7 +41,7 @@ public final class ScepterOfCelebration extends CardImpl { ), "equipped", false)); // Equip {3} - this.addAbility(new EquipAbility(3)); + this.addAbility(new EquipAbility(3, false)); } private ScepterOfCelebration(final ScepterOfCelebration card) {