From 97347a864f0b52392cb5e87fbad637e5a7889949 Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Fri, 29 Mar 2024 19:55:48 +0100 Subject: [PATCH] [OTJ] Implement Rictus Robber --- Mage.Sets/src/mage/cards/r/RictusRobber.java | 50 +++++++++++++++++++ .../mage/sets/OutlawsOfThunderJunction.java | 1 + .../permanent/token/ZombieRogueToken.java | 31 ++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/r/RictusRobber.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/ZombieRogueToken.java diff --git a/Mage.Sets/src/mage/cards/r/RictusRobber.java b/Mage.Sets/src/mage/cards/r/RictusRobber.java new file mode 100644 index 00000000000..1e38fd4fa14 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RictusRobber.java @@ -0,0 +1,50 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.MorbidCondition; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.MorbidHint; +import mage.abilities.keyword.PlotAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.game.permanent.token.ZombieRogueToken; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class RictusRobber extends CardImpl { + + public RictusRobber(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add(SubType.ZOMBIE); + this.subtype.add(SubType.ROGUE); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // When Rictus Robber enters the battlefield, if a creature died this turn, create a 2/2 blue and black Zombie Rogue creature token. + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieRogueToken())), + MorbidCondition.instance, + "When {this} enters the battlefield, if a creature died this turn, create a 2/2 blue and black Zombie Rogue creature token." + ).addHint(MorbidHint.instance)); + + // Plot {2}{B} + this.addAbility(new PlotAbility("{2}{B}")); + } + + private RictusRobber(final RictusRobber card) { + super(card); + } + + @Override + public RictusRobber copy() { + return new RictusRobber(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java index 5d41cc993be..7d2b68dd233 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java @@ -99,6 +99,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet { cards.add(new SetCardInfo("Reckless Lackey", 140, Rarity.COMMON, mage.cards.r.RecklessLackey.class)); cards.add(new SetCardInfo("Redrock Sentinel", 247, Rarity.UNCOMMON, mage.cards.r.RedrockSentinel.class)); cards.add(new SetCardInfo("Resilient Roadrunner", 141, Rarity.UNCOMMON, mage.cards.r.ResilientRoadrunner.class)); + cards.add(new SetCardInfo("Rictus Robber", 102, Rarity.UNCOMMON, mage.cards.r.RictusRobber.class)); cards.add(new SetCardInfo("Rise of the Varmints", 179, Rarity.UNCOMMON, mage.cards.r.RiseOfTheVarmints.class)); cards.add(new SetCardInfo("Ruthless Lawbringer", 229, Rarity.UNCOMMON, mage.cards.r.RuthlessLawbringer.class)); cards.add(new SetCardInfo("Scorching Shot", 145, Rarity.UNCOMMON, mage.cards.s.ScorchingShot.class)); diff --git a/Mage/src/main/java/mage/game/permanent/token/ZombieRogueToken.java b/Mage/src/main/java/mage/game/permanent/token/ZombieRogueToken.java new file mode 100644 index 00000000000..c063e99e670 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ZombieRogueToken.java @@ -0,0 +1,31 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author Susucr + */ +public final class ZombieRogueToken extends TokenImpl { + + public ZombieRogueToken() { + super("Zombie Rogue Token", "2/2 blue and black Zombie Rogue creature token"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + color.setBlue(true); + subtype.add(SubType.ZOMBIE); + subtype.add(SubType.ROGUE); + power = new MageInt(2); + toughness = new MageInt(2); + } + + private ZombieRogueToken(final ZombieRogueToken token) { + super(token); + } + + @Override + public ZombieRogueToken copy() { + return new ZombieRogueToken(this); + } +}