diff --git a/Mage.Sets/src/mage/cards/g/GriffinAerie.java b/Mage.Sets/src/mage/cards/g/GriffinAerie.java index 86d992350b7..a3e4a3297c8 100644 --- a/Mage.Sets/src/mage/cards/g/GriffinAerie.java +++ b/Mage.Sets/src/mage/cards/g/GriffinAerie.java @@ -5,6 +5,8 @@ import mage.abilities.condition.Condition; import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -21,6 +23,7 @@ import java.util.UUID; public final class GriffinAerie extends CardImpl { private static final Condition condition = new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2); + private static final Hint hint = new ConditionHint(condition, "You gained 3 or more life this turn"); public GriffinAerie(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); @@ -31,7 +34,7 @@ public final class GriffinAerie extends CardImpl { new CreateTokenEffect(new GriffinToken()), TargetController.YOU, false ), condition, "At the beginning of your end step, " + "if you gained 3 or more life this turn, create a 2/2 white Griffin creature token with flying." - ), new PlayerGainedLifeWatcher()); + ).addHint(hint), new PlayerGainedLifeWatcher()); } private GriffinAerie(final GriffinAerie card) { diff --git a/Mage.Sets/src/mage/cards/i/IndulgingPatrician.java b/Mage.Sets/src/mage/cards/i/IndulgingPatrician.java index 91b06ca5559..4ddb3b7ad8a 100644 --- a/Mage.Sets/src/mage/cards/i/IndulgingPatrician.java +++ b/Mage.Sets/src/mage/cards/i/IndulgingPatrician.java @@ -6,6 +6,8 @@ import mage.abilities.condition.Condition; import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.LifelinkAbility; import mage.cards.CardImpl; @@ -24,6 +26,7 @@ import java.util.UUID; public final class IndulgingPatrician extends CardImpl { private static final Condition condition = new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2); + private static final Hint hint = new ConditionHint(condition, "You gained 3 or more life this turn"); public IndulgingPatrician(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{B}"); @@ -45,7 +48,7 @@ public final class IndulgingPatrician extends CardImpl { new LoseLifeOpponentsEffect(3), TargetController.YOU, false ), condition, "At the beginning of your end step, " + "if you gained 3 or more life this turn, each opponent loses 3 life." - ), new PlayerGainedLifeWatcher()); + ).addHint(hint), new PlayerGainedLifeWatcher()); } private IndulgingPatrician(final IndulgingPatrician card) { diff --git a/Mage.Sets/src/mage/cards/l/LoneRider.java b/Mage.Sets/src/mage/cards/l/LoneRider.java index bfc95848545..db9fa6f0b0f 100644 --- a/Mage.Sets/src/mage/cards/l/LoneRider.java +++ b/Mage.Sets/src/mage/cards/l/LoneRider.java @@ -1,31 +1,34 @@ - package mage.cards.l; -import java.util.UUID; - import mage.MageInt; -import mage.abilities.TriggeredAbility; -import mage.abilities.common.OnEventTriggeredAbility; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.condition.Condition; import mage.abilities.condition.common.YouGainedLifeCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; import mage.abilities.effects.common.TransformSourceEffect; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.LifelinkAbility; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.ComparisonType; -import mage.game.events.GameEvent; +import mage.constants.SubType; +import mage.constants.TargetController; import mage.watchers.common.PlayerGainedLifeWatcher; +import java.util.UUID; + /** * @author fireshoes */ public final class LoneRider extends CardImpl { private static final String ruleText = "At the beginning of the end step, if you gained 3 or more life this turn, transform {this}"; + private static final Condition condition = new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2); + private static final Hint hint = new ConditionHint(condition, "You gained 3 or more life this turn"); public LoneRider(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); @@ -45,11 +48,14 @@ public final class LoneRider extends CardImpl { // At the beginning of the end step, if you gained 3 or more life this turn, transform Lone Rider. this.addAbility(new TransformAbility()); - TriggeredAbility triggered = new OnEventTriggeredAbility(GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", true, new TransformSourceEffect(true)); - this.addAbility(new ConditionalInterveningIfTriggeredAbility(triggered, new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2), ruleText), new PlayerGainedLifeWatcher()); + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new BeginningOfEndStepTriggeredAbility( + new TransformSourceEffect(true), TargetController.NEXT, false + ), condition, ruleText + ), new PlayerGainedLifeWatcher()); } - public LoneRider(final LoneRider card) { + private LoneRider(final LoneRider card) { super(card); } @@ -57,4 +63,4 @@ public final class LoneRider extends CardImpl { public LoneRider copy() { return new LoneRider(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SilversmoteGhoul.java b/Mage.Sets/src/mage/cards/s/SilversmoteGhoul.java new file mode 100644 index 00000000000..85d5dd02880 --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SilversmoteGhoul.java @@ -0,0 +1,64 @@ +package mage.cards.s; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.YouGainedLifeCondition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToBattlefieldEffect; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.watchers.common.PlayerGainedLifeWatcher; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class SilversmoteGhoul extends CardImpl { + + private static final Condition condition = new YouGainedLifeCondition(ComparisonType.MORE_THAN, 2); + private static final Hint hint = new ConditionHint(condition, "You gained 3 or more life this turn"); + + public SilversmoteGhoul(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}"); + + this.subtype.add(SubType.ZOMBIE); + this.subtype.add(SubType.VAMPIRE); + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // At the beginning of your end step, if you gained 3 or more life this turn, return Silversmote Ghoul from your graveyard to the battlefield tapped. + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new BeginningOfEndStepTriggeredAbility( + Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), + TargetController.YOU, null, false + ), condition, "At the beginning of your end step, " + + "if you gained 3 or more life this turn, return {this} from your graveyard to the battlefield tapped." + ).addHint(hint), new PlayerGainedLifeWatcher()); + + // {1}{B}, Sacrifice Silversmote Ghoul: Draw a card. + Ability ability = new SimpleActivatedAbility( + new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}{B}") + ); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + private SilversmoteGhoul(final SilversmoteGhoul card) { + super(card); + } + + @Override + public SilversmoteGhoul copy() { + return new SilversmoteGhoul(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2021.java b/Mage.Sets/src/mage/sets/CoreSet2021.java index a041023a0ef..56deb3f7008 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2021.java +++ b/Mage.Sets/src/mage/sets/CoreSet2021.java @@ -139,6 +139,7 @@ public final class CoreSet2021 extends ExpansionSet { cards.add(new SetCardInfo("Shipwreck Dowser", 71, Rarity.UNCOMMON, mage.cards.s.ShipwreckDowser.class)); cards.add(new SetCardInfo("Siege Striker", 37, Rarity.UNCOMMON, mage.cards.s.SiegeStriker.class)); cards.add(new SetCardInfo("Sigiled Contender", 323, Rarity.UNCOMMON, mage.cards.s.SigiledContender.class)); + cards.add(new SetCardInfo("Silversmote Ghoul", 122, Rarity.UNCOMMON, mage.cards.s.SilversmoteGhoul.class)); cards.add(new SetCardInfo("Solemn Simulacrum", 239, Rarity.RARE, mage.cards.s.SolemnSimulacrum.class)); cards.add(new SetCardInfo("Soul Sear", 160, Rarity.UNCOMMON, mage.cards.s.SoulSear.class)); cards.add(new SetCardInfo("Sparkhunter Masticore", 240, Rarity.RARE, mage.cards.s.SparkhunterMasticore.class));