From 996dc796a4684e9c3a2a63a0d5734ae2d8cc88e9 Mon Sep 17 00:00:00 2001 From: Steven Knipe Date: Tue, 8 Jul 2025 02:10:39 -0700 Subject: [PATCH] Fix 'S' cards with card name instead of {this} --- Mage.Sets/src/mage/cards/s/SailIntoTheWest.java | 2 +- .../mage/cards/s/SanctumOfShatteredHeights.java | 3 +-- .../src/mage/cards/s/ScaldingSalamander.java | 11 ++++------- Mage.Sets/src/mage/cards/s/ScepterOfEmpires.java | 6 +++--- Mage.Sets/src/mage/cards/s/SerumCoreChimera.java | 4 +--- Mage.Sets/src/mage/cards/s/SimianSling.java | 2 +- Mage.Sets/src/mage/cards/s/SkywayRobber.java | 5 ++--- .../src/mage/cards/s/SmashToSmithereens.java | 5 +++-- Mage.Sets/src/mage/cards/s/Smokestack.java | 2 +- Mage.Sets/src/mage/cards/s/Soulblast.java | 2 +- Mage.Sets/src/mage/cards/s/SparkFiend.java | 4 ++-- Mage.Sets/src/mage/cards/s/SpellboundDragon.java | 7 ++++--- Mage.Sets/src/mage/cards/s/SphinxBoneWand.java | 2 +- Mage.Sets/src/mage/cards/s/StaticOrb.java | 6 +++--- .../src/mage/cards/s/StormchaserChimera.java | 14 +++++--------- Mage.Sets/src/mage/cards/s/StruggleSurvive.java | 5 +++-- Mage.Sets/src/mage/cards/s/SulfurousBlast.java | 5 +++-- Mage.Sets/src/mage/cards/s/Sunforger.java | 16 ++++++---------- 18 files changed, 45 insertions(+), 56 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/SailIntoTheWest.java b/Mage.Sets/src/mage/cards/s/SailIntoTheWest.java index 341955abcc5..60cca26267c 100644 --- a/Mage.Sets/src/mage/cards/s/SailIntoTheWest.java +++ b/Mage.Sets/src/mage/cards/s/SailIntoTheWest.java @@ -56,7 +56,7 @@ class SailIntoTheWestEffect extends OneShotEffect { super(Outcome.Benefit); staticText = "starting with you, each player votes for return or embark. " + "If return gets more votes, each player returns up to two cards from their graveyard " + - "to their hand, then you exile Sail into the West. " + + "to their hand, then you exile {this}. " + "If embark gets more votes or the vote is tied, each player may discard their hand and draw seven cards."; } diff --git a/Mage.Sets/src/mage/cards/s/SanctumOfShatteredHeights.java b/Mage.Sets/src/mage/cards/s/SanctumOfShatteredHeights.java index e12069ab73c..cfaafbf6305 100644 --- a/Mage.Sets/src/mage/cards/s/SanctumOfShatteredHeights.java +++ b/Mage.Sets/src/mage/cards/s/SanctumOfShatteredHeights.java @@ -12,7 +12,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; -import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.FilterPermanent; import mage.filter.common.FilterControlledPermanent; @@ -45,7 +44,7 @@ public final class SanctumOfShatteredHeights extends CardImpl { // {1}, Discard a land card or Shrine card: Sanctum of Shattered Heights deals X damage to target creature or planeswalker, where X is the number of Shrines you control. Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(xValue) - .setText("Sanctum of Shattered Heights deals X damage to target creature or planeswalker, where X is the number of Shrines you control"), + .setText("{this} deals X damage to target creature or planeswalker, where X is the number of Shrines you control"), new ManaCostsImpl<>("{1}")) .addHint(new ValueHint("Shrines you control", xValue)); ability.addCost(new DiscardTargetCost(new TargetCardInHand(filter))); diff --git a/Mage.Sets/src/mage/cards/s/ScaldingSalamander.java b/Mage.Sets/src/mage/cards/s/ScaldingSalamander.java index 3fca24508e9..029937ba992 100644 --- a/Mage.Sets/src/mage/cards/s/ScaldingSalamander.java +++ b/Mage.Sets/src/mage/cards/s/ScaldingSalamander.java @@ -1,21 +1,21 @@ package mage.cards.s; -import java.util.UUID; - import mage.MageInt; import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.effects.common.DamageAllEffect; import mage.abilities.keyword.FlyingAbility; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.filter.FilterPermanent; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.AbilityPredicate; import mage.filter.predicate.permanent.DefendingPlayerControlsSourceAttackingPredicate; +import java.util.UUID; + /** * @author TheElk801 */ @@ -37,10 +37,7 @@ public final class ScaldingSalamander extends CardImpl { this.toughness = new MageInt(1); // Whenever Scalding Salamander attacks, you may have it deal 1 damage to each creature without flying defending player controls. - this.addAbility(new AttacksTriggeredAbility( - new DamageAllEffect(1, filter), true, - "Whenever Scalding Salamander attacks, you may have it deal 1 damage to each creature without flying defending player controls." - )); + this.addAbility(new AttacksTriggeredAbility(new DamageAllEffect(1, filter), true)); } private ScaldingSalamander(final ScaldingSalamander card) { diff --git a/Mage.Sets/src/mage/cards/s/ScepterOfEmpires.java b/Mage.Sets/src/mage/cards/s/ScepterOfEmpires.java index e28cb424043..b1811c63e75 100644 --- a/Mage.Sets/src/mage/cards/s/ScepterOfEmpires.java +++ b/Mage.Sets/src/mage/cards/s/ScepterOfEmpires.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -10,11 +9,12 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.constants.Zone; import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.common.TargetPlayerOrPlaneswalker; +import java.util.UUID; + /** * @author nantuko */ @@ -43,7 +43,7 @@ class ScepterOfEmpiresEffect extends OneShotEffect { ScepterOfEmpiresEffect() { super(Outcome.PutCreatureInPlay); - staticText = "Scepter of Empires deals 1 damage to target player or planeswalker. It deals 3 damage instead if you control artifacts named Crown of Empires and Throne of Empires"; + staticText = "{this} deals 1 damage to target player or planeswalker. It deals 3 damage instead if you control artifacts named Crown of Empires and Throne of Empires"; } private ScepterOfEmpiresEffect(final ScepterOfEmpiresEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SerumCoreChimera.java b/Mage.Sets/src/mage/cards/s/SerumCoreChimera.java index d96b62c13d5..fcf29c2f18b 100644 --- a/Mage.Sets/src/mage/cards/s/SerumCoreChimera.java +++ b/Mage.Sets/src/mage/cards/s/SerumCoreChimera.java @@ -7,12 +7,10 @@ import mage.abilities.common.delayed.ReflexiveTriggeredAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.DoWhenCostPaid; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -50,7 +48,7 @@ public class SerumCoreChimera extends CardImpl { reflexiveTriggeredAbility.addTarget(new TargetCreatureOrPlaneswalker()); activateAsSorceryActivatedAbility.addEffect(new DoWhenCostPaid(reflexiveTriggeredAbility, new DiscardCardCost(StaticFilters.FILTER_CARD_A_NON_LAND), "Discard nonland card?") - .setText("Then you may discard a nonland card. When you discard a card this way, Serum-Core Chimera " + + .setText("Then you may discard a nonland card. When you discard a card this way, {this} " + "deals 3 damage to target creature or planeswalker.")); this.addAbility(activateAsSorceryActivatedAbility); } diff --git a/Mage.Sets/src/mage/cards/s/SimianSling.java b/Mage.Sets/src/mage/cards/s/SimianSling.java index a3bcb8ac777..a9e77100def 100644 --- a/Mage.Sets/src/mage/cards/s/SimianSling.java +++ b/Mage.Sets/src/mage/cards/s/SimianSling.java @@ -89,7 +89,7 @@ class SimianSlingTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever Simian Sling or equipped creature becomes blocked, it deals 1 damage to defending player."; + return "Whenever {this} or equipped creature becomes blocked, it deals 1 damage to defending player."; } } diff --git a/Mage.Sets/src/mage/cards/s/SkywayRobber.java b/Mage.Sets/src/mage/cards/s/SkywayRobber.java index 0c1833339c0..25e90be8490 100644 --- a/Mage.Sets/src/mage/cards/s/SkywayRobber.java +++ b/Mage.Sets/src/mage/cards/s/SkywayRobber.java @@ -19,7 +19,6 @@ import mage.filter.predicate.Predicates; import mage.game.ExileZone; import mage.game.Game; import mage.players.Player; -import mage.target.TargetCard; import mage.target.common.TargetCardInExile; import mage.util.CardUtil; @@ -73,7 +72,7 @@ class SkywayRobberCastForFreeEffect extends OneShotEffect { public SkywayRobberCastForFreeEffect() { super(Outcome.PlayForFree); - this.staticText = "you may cast an artifact, instant, or sorcery spell from among cards exiled with Skyway Robber without paying its mana cost"; + this.staticText = "you may cast an artifact, instant, or sorcery spell from among cards exiled with {this} without paying its mana cost"; } private SkywayRobberCastForFreeEffect(final SkywayRobberCastForFreeEffect effect) { @@ -124,4 +123,4 @@ class SkywayRobberCastForFreeEffect extends OneShotEffect { public SkywayRobberCastForFreeEffect copy() { return new SkywayRobberCastForFreeEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SmashToSmithereens.java b/Mage.Sets/src/mage/cards/s/SmashToSmithereens.java index 02829adafe0..883cac3e083 100644 --- a/Mage.Sets/src/mage/cards/s/SmashToSmithereens.java +++ b/Mage.Sets/src/mage/cards/s/SmashToSmithereens.java @@ -1,6 +1,5 @@ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; @@ -13,6 +12,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import java.util.UUID; + /** * * @author jonubuu @@ -42,7 +43,7 @@ class SmashToSmithereensEffect extends OneShotEffect { SmashToSmithereensEffect() { super(Outcome.Detriment); - staticText = "Destroy target artifact. Smash to Smithereens deals 3 damage to that artifact's controller"; + staticText = "Destroy target artifact. {this} deals 3 damage to that artifact's controller"; } private SmashToSmithereensEffect(final SmashToSmithereensEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/Smokestack.java b/Mage.Sets/src/mage/cards/s/Smokestack.java index 889eef8da55..aa3001a0f4e 100644 --- a/Mage.Sets/src/mage/cards/s/Smokestack.java +++ b/Mage.Sets/src/mage/cards/s/Smokestack.java @@ -48,7 +48,7 @@ class SmokestackEffect extends OneShotEffect { SmokestackEffect() { super(Outcome.Sacrifice); - this.staticText = "that player sacrifices a permanent for each soot counter on Smokestack"; + this.staticText = "that player sacrifices a permanent for each soot counter on {this}"; } private SmokestackEffect(final SmokestackEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/Soulblast.java b/Mage.Sets/src/mage/cards/s/Soulblast.java index 176acb76271..017e3f05fce 100644 --- a/Mage.Sets/src/mage/cards/s/Soulblast.java +++ b/Mage.Sets/src/mage/cards/s/Soulblast.java @@ -46,7 +46,7 @@ class SoulblastEffect extends OneShotEffect { SoulblastEffect() { super(Outcome.Benefit); - this.staticText = "Soulblast deals damage to any target equal to the total power of the sacrificed creatures"; + this.staticText = "{this} deals damage to any target equal to the total power of the sacrificed creatures"; } private SoulblastEffect(final SoulblastEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SparkFiend.java b/Mage.Sets/src/mage/cards/s/SparkFiend.java index 6d72318f696..0f66d2bf910 100644 --- a/Mage.Sets/src/mage/cards/s/SparkFiend.java +++ b/Mage.Sets/src/mage/cards/s/SparkFiend.java @@ -50,7 +50,7 @@ class SparkFiendEffect extends OneShotEffect { SparkFiendEffect() { super(Outcome.Sacrifice); - this.staticText = "roll two six-sided dice. If you rolled 2, 3, or 12, sacrifice Spark Fiend. If you rolled 7 or 11, don't roll dice for Spark Fiend during any of your following upkeeps. If you rolled any other total, note that total"; + this.staticText = "roll two six-sided dice. If you rolled 2, 3, or 12, sacrifice {this}. If you rolled 7 or 11, don't roll dice for {this} during any of your following upkeeps. If you rolled any other total, note that total"; } private SparkFiendEffect(final SparkFiendEffect effect) { @@ -93,7 +93,7 @@ class SparkFiendUpkeepEffect extends OneShotEffect { SparkFiendUpkeepEffect() { super(Outcome.Sacrifice); - this.staticText = "roll two six-sided dice. If you rolled 7, sacrifice Spark Fiend. If you roll the noted total, don't roll dice for Spark Fiend during any of your following upkeeps. Otherwise, do nothing"; + this.staticText = "roll two six-sided dice. If you rolled 7, sacrifice {this}. If you roll the noted total, don't roll dice for {this} during any of your following upkeeps. Otherwise, do nothing"; } private SparkFiendUpkeepEffect(final SparkFiendUpkeepEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SpellboundDragon.java b/Mage.Sets/src/mage/cards/s/SpellboundDragon.java index 6e7b4347b4e..b23d4187dfe 100644 --- a/Mage.Sets/src/mage/cards/s/SpellboundDragon.java +++ b/Mage.Sets/src/mage/cards/s/SpellboundDragon.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.AttacksTriggeredAbility; @@ -12,14 +11,16 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SubType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetDiscard; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -54,7 +55,7 @@ class SpellboundDragonEffect extends OneShotEffect { SpellboundDragonEffect() { super(Outcome.BoostCreature); - staticText = "draw a card, then discard a card. Spellbound Dragon gets +X/+0 until end of turn, where X is the discarded card's mana value"; + staticText = "draw a card, then discard a card. {this} gets +X/+0 until end of turn, where X is the discarded card's mana value"; } private SpellboundDragonEffect(final SpellboundDragonEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SphinxBoneWand.java b/Mage.Sets/src/mage/cards/s/SphinxBoneWand.java index 7fd45681f59..dbd27c68469 100644 --- a/Mage.Sets/src/mage/cards/s/SphinxBoneWand.java +++ b/Mage.Sets/src/mage/cards/s/SphinxBoneWand.java @@ -53,7 +53,7 @@ class SphinxBoneWandEffect extends OneShotEffect { SphinxBoneWandEffect() { super(Outcome.Damage); - this.staticText = "put a charge counter on Sphinx-Bone Wand. If you do, Sphinx-Bone Wand deals damage equal to the number of charge counters on it to any target"; + this.staticText = "put a charge counter on Sphinx-Bone Wand. If you do, {this} deals damage equal to the number of charge counters on it to any target"; } private SphinxBoneWandEffect(final SphinxBoneWandEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/StaticOrb.java b/Mage.Sets/src/mage/cards/s/StaticOrb.java index f5027681dd5..c9072dd1181 100644 --- a/Mage.Sets/src/mage/cards/s/StaticOrb.java +++ b/Mage.Sets/src/mage/cards/s/StaticOrb.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.RestrictionUntapNotMoreThanEffect; @@ -9,12 +8,13 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -45,7 +45,7 @@ class StaticOrbEffect extends RestrictionUntapNotMoreThanEffect { public StaticOrbEffect() { super(Duration.WhileOnBattlefield, 2, filter); - staticText = "As long as Static Orb is untapped, players can't untap more than two permanents during their untap steps"; + staticText = "As long as {this} is untapped, players can't untap more than two permanents during their untap steps"; } private StaticOrbEffect(final StaticOrbEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java index a8f25dec02d..fcd3024d338 100644 --- a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java +++ b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -10,20 +9,17 @@ import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.effects.keyword.ScryEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Outcome; -import mage.constants.Zone; +import mage.constants.SubType; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import java.util.UUID; + /** * * @author LevelX2 @@ -59,7 +55,7 @@ class StormchaserChimeraEffect extends OneShotEffect { StormchaserChimeraEffect() { super(Outcome.Benefit); - this.staticText = ", then reveal the top card of your library. Stormchaser Chimera gets +X/+0 until end of turn, where X is that card's mana value"; + this.staticText = ", then reveal the top card of your library. {this} gets +X/+0 until end of turn, where X is that card's mana value"; } private StormchaserChimeraEffect(final StormchaserChimeraEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/StruggleSurvive.java b/Mage.Sets/src/mage/cards/s/StruggleSurvive.java index 8359745a101..0ae2fefafb6 100644 --- a/Mage.Sets/src/mage/cards/s/StruggleSurvive.java +++ b/Mage.Sets/src/mage/cards/s/StruggleSurvive.java @@ -1,6 +1,5 @@ package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; @@ -17,6 +16,8 @@ import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 @@ -29,7 +30,7 @@ public final class StruggleSurvive extends SplitCard { // Struggle // Struggle deals damage to target creature equal to the number of lands you control. Effect effect = new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent("the number of lands you control"))); - effect.setText("Struggle deals damage to target creature equal to the number of lands you control"); + effect.setText("{this} deals damage to target creature equal to the number of lands you control"); getLeftHalfCard().getSpellAbility().addEffect(effect); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/s/SulfurousBlast.java b/Mage.Sets/src/mage/cards/s/SulfurousBlast.java index c45e6aa7ae5..188707472d1 100644 --- a/Mage.Sets/src/mage/cards/s/SulfurousBlast.java +++ b/Mage.Sets/src/mage/cards/s/SulfurousBlast.java @@ -1,7 +1,6 @@ package mage.cards.s; -import java.util.UUID; import mage.abilities.condition.common.AddendumCondition; import mage.abilities.decorator.ConditionalOneShotEffect; import mage.abilities.effects.common.DamageEverythingEffect; @@ -9,6 +8,8 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import java.util.UUID; + /** * * @author fireshoes @@ -23,7 +24,7 @@ public final class SulfurousBlast extends CardImpl { new DamageEverythingEffect(3), new DamageEverythingEffect(2), AddendumCondition.instance, - "Sulfurous Blast deals 2 damage to each creature and each player. If you cast this spell during your main phase, Sulfurous Blast deals 3 damage to each creature and each player instead")); + "{this} deals 2 damage to each creature and each player. If you cast this spell during your main phase, {this} deals 3 damage to each creature and each player instead")); } private SulfurousBlast(final SulfurousBlast card) { diff --git a/Mage.Sets/src/mage/cards/s/Sunforger.java b/Mage.Sets/src/mage/cards/s/Sunforger.java index 44d9e4d2c21..17f7c9b95a6 100644 --- a/Mage.Sets/src/mage/cards/s/Sunforger.java +++ b/Mage.Sets/src/mage/cards/s/Sunforger.java @@ -1,6 +1,5 @@ package mage.cards.s; -import java.util.UUID; import mage.ApprovingObject; import mage.ObjectColor; import mage.abilities.Ability; @@ -17,12 +16,7 @@ import mage.abilities.keyword.EquipAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.ComparisonType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubType; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.predicate.Predicate; import mage.filter.predicate.Predicates; @@ -33,6 +27,8 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** * * @author jeffwadsworth @@ -52,7 +48,7 @@ public final class Sunforger extends CardImpl { // without paying its mana cost. Then shuffle your library. Ability ability = new SimpleActivatedAbility( new SunforgerEffect(), new ManaCostsImpl<>("{R}{W}")); - ability.addCost(new SunforgerUnattachCost(this.getName())); + ability.addCost(new SunforgerUnattachCost()); this.addAbility(ability); // Equip {3} @@ -127,8 +123,8 @@ class SunforgerEffect extends OneShotEffect { class SunforgerUnattachCost extends CostImpl { - public SunforgerUnattachCost(String name) { - this.text = "Unattach " + name; + public SunforgerUnattachCost() { + this.text = "Unattach {this}"; } private SunforgerUnattachCost(final SunforgerUnattachCost cost) {