[MID] Implemented Slaughter Specialist

This commit is contained in:
Evan Kranzler 2021-09-09 08:24:35 -04:00
parent fb9bd4c9d6
commit e7d0cb1632
2 changed files with 80 additions and 0 deletions

View file

@ -0,0 +1,79 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.token.HumanToken;
import mage.game.permanent.token.Token;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SlaughterSpecialist extends CardImpl {
public SlaughterSpecialist(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
this.subtype.add(SubType.VAMPIRE);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// When Slaughter Specialist enters the battlefield, each opponent creates a 1/1 white Human creature token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SlaughterSpecialistEffect()));
// Whenever a creature an opponent controls dies, put a +1/+1 counter on Slaughter Specialist.
this.addAbility(new DiesCreatureTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
false, StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
));
}
private SlaughterSpecialist(final SlaughterSpecialist card) {
super(card);
}
@Override
public SlaughterSpecialist copy() {
return new SlaughterSpecialist(this);
}
}
class SlaughterSpecialistEffect extends OneShotEffect {
SlaughterSpecialistEffect() {
super(Outcome.Benefit);
staticText = "each opponent creates a 1/1 white Human creature token";
}
private SlaughterSpecialistEffect(final SlaughterSpecialistEffect effect) {
super(effect);
}
@Override
public SlaughterSpecialistEffect copy() {
return new SlaughterSpecialistEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Token token = new HumanToken();
for (UUID opponentId : game.getOpponents(source.getControllerId())) {
token.putOntoBattlefield(1, game, source, opponentId);
}
return true;
}
}

View file

@ -125,6 +125,7 @@ public final class InnistradMidnightHunt extends ExpansionSet {
cards.add(new SetCardInfo("Secrets of the Key", 73, Rarity.COMMON, mage.cards.s.SecretsOfTheKey.class));
cards.add(new SetCardInfo("Shipwreck Marsh", 267, Rarity.RARE, mage.cards.s.ShipwreckMarsh.class));
cards.add(new SetCardInfo("Sigarda, Champion of Light", 240, Rarity.MYTHIC, mage.cards.s.SigardaChampionOfLight.class));
cards.add(new SetCardInfo("Slaughter Specialist", 122, Rarity.RARE, mage.cards.s.SlaughterSpecialist.class));
cards.add(new SetCardInfo("Snarling Wolf", 199, Rarity.COMMON, mage.cards.s.SnarlingWolf.class));
cards.add(new SetCardInfo("Spectral Adversary", 77, Rarity.MYTHIC, mage.cards.s.SpectralAdversary.class));
cards.add(new SetCardInfo("Spellrune Howler", 160, Rarity.UNCOMMON, mage.cards.s.SpellruneHowler.class));