[MOM] Implement Thalia and The Gitrog Monster

This commit is contained in:
theelk801 2023-04-15 20:17:49 -04:00
parent fc53a4f67e
commit cb814824e6
2 changed files with 82 additions and 0 deletions

View file

@ -0,0 +1,81 @@
package mage.cards.t;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.PermanentsEnterBattlefieldTappedEffect;
import mage.abilities.effects.common.SacrificeControllerEffect;
import mage.abilities.effects.common.continuous.PlayAdditionalLandsControllerEffect;
import mage.abilities.keyword.DeathtouchAbility;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.predicate.Predicates;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ThaliaAndTheGitrogMonster extends CardImpl {
private static final FilterPermanent filter
= new FilterPermanent("creatures and nonbasic lands your opponents control");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
Predicates.and(
Predicates.not(SuperType.BASIC.getPredicate()),
CardType.LAND.getPredicate()
)
));
filter.add(TargetController.OPPONENT.getControllerPredicate());
}
public ThaliaAndTheGitrogMonster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{B}{G}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.FROG);
this.subtype.add(SubType.HORROR);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// First strike
this.addAbility(FirstStrikeAbility.getInstance());
// Deathtouch
this.addAbility(DeathtouchAbility.getInstance());
// You may play an additional land on each of your turns.
this.addAbility(new SimpleStaticAbility(
new PlayAdditionalLandsControllerEffect(1, Duration.WhileOnBattlefield)
));
// Creatures and nonbasic lands your opponents control enter the battlefield tapped.
this.addAbility(new SimpleStaticAbility(new PermanentsEnterBattlefieldTappedEffect(filter)));
// Whenever Thalia and The Gitrog Monster attacks, sacrifice a creature or land, then draw a card.
Ability ability = new AttacksTriggeredAbility(new SacrificeControllerEffect(
StaticFilters.FILTER_CONTROLLED_ARTIFACT_OR_CREATURE_SHORT_TEXT, 1, null
));
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then"));
this.addAbility(ability);
}
private ThaliaAndTheGitrogMonster(final ThaliaAndTheGitrogMonster card) {
super(card);
}
@Override
public ThaliaAndTheGitrogMonster copy() {
return new ThaliaAndTheGitrogMonster(this);
}
}

View file

@ -310,6 +310,7 @@ public final class MarchOfTheMachine extends ExpansionSet {
cards.add(new SetCardInfo("Temporal Cleansing", 80, Rarity.COMMON, mage.cards.t.TemporalCleansing.class));
cards.add(new SetCardInfo("Tenured Oilcaster", 126, Rarity.COMMON, mage.cards.t.TenuredOilcaster.class));
cards.add(new SetCardInfo("Terror of Towashi", 331, Rarity.RARE, mage.cards.t.TerrorOfTowashi.class));
cards.add(new SetCardInfo("Thalia and The Gitrog Monster", 255, Rarity.MYTHIC, mage.cards.t.ThaliaAndTheGitrogMonster.class));
cards.add(new SetCardInfo("The Argent Etchings", 12, Rarity.MYTHIC, mage.cards.t.TheArgentEtchings.class));
cards.add(new SetCardInfo("The Broken Sky", 241, Rarity.RARE, mage.cards.t.TheBrokenSky.class));
cards.add(new SetCardInfo("The Grand Evolution", 213, Rarity.MYTHIC, mage.cards.t.TheGrandEvolution.class));