[MOM] Implement Scrappy Bruiser

This commit is contained in:
theelk801 2023-04-14 08:51:08 -04:00
parent 8b7e615747
commit b120ce0fa9
3 changed files with 59 additions and 2 deletions

View file

@ -0,0 +1,52 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.delayed.AtTheEndOfCombatDelayedTriggeredAbility;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.target.common.TargetAttackingCreature;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ScrappyBruiser extends CardImpl {
public ScrappyBruiser(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.subtype.add(SubType.RACCOON);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(3);
this.toughness = new MageInt(4);
// Whenever Scrappy Bruiser attacks, up to one target attacking creature gets +2/+0 and gains trample until end of turn. Return that creature to its owner's hand at end of combat.
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(2, 0));
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance())
.setText("and gains trample until end of turn"));
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(
new ReturnToHandTargetEffect().setText("Return that creature to its owner's hand at end of combat")
).setTriggerPhrase(null), true));
ability.addTarget(new TargetAttackingCreature(0, 1));
this.addAbility(ability);
}
private ScrappyBruiser(final ScrappyBruiser card) {
super(card);
}
@Override
public ScrappyBruiser copy() {
return new ScrappyBruiser(this);
}
}

View file

@ -255,6 +255,7 @@ public final class MarchOfTheMachine extends ExpansionSet {
cards.add(new SetCardInfo("Saiba Cryptomancer", 76, Rarity.COMMON, mage.cards.s.SaibaCryptomancer.class));
cards.add(new SetCardInfo("Scorn-Blade Berserker", 124, Rarity.UNCOMMON, mage.cards.s.ScornBladeBerserker.class));
cards.add(new SetCardInfo("Scoured Barrens", 272, Rarity.COMMON, mage.cards.s.ScouredBarrens.class));
cards.add(new SetCardInfo("Scrappy Bruiser", 162, Rarity.UNCOMMON, mage.cards.s.ScrappyBruiser.class));
cards.add(new SetCardInfo("Scrollshift", 34, Rarity.COMMON, mage.cards.s.Scrollshift.class));
cards.add(new SetCardInfo("Sculpted Perfection", 253, Rarity.UNCOMMON, mage.cards.s.SculptedPerfection.class));
cards.add(new SetCardInfo("Seal from Existence", 35, Rarity.UNCOMMON, mage.cards.s.SealFromExistence.class));

View file

@ -1,4 +1,3 @@
package mage.abilities;
import mage.abilities.effects.Effect;
@ -7,7 +6,6 @@ import mage.constants.Zone;
import mage.game.Game;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public abstract class DelayedTriggeredAbility extends TriggeredAbilityImpl {
@ -59,6 +57,12 @@ public abstract class DelayedTriggeredAbility extends TriggeredAbilityImpl {
public void init(Game game) {
}
@Override
public DelayedTriggeredAbility setTriggerPhrase(String triggerPhrase) {
super.setTriggerPhrase(triggerPhrase);
return this;
}
public boolean isInactive(Game game) {
return false;
}