[TLE] Implement Scarring Memories

This commit is contained in:
theelk801 2025-11-11 12:45:23 -05:00
parent c9af0467b9
commit 697a914892
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,62 @@
package mage.cards.s;
import mage.abilities.common.CastAsThoughItHadFlashIfConditionAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.SacrificeEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterAttackingCreature;
import mage.target.common.TargetOpponent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ScarringMemories extends CardImpl {
private static final FilterPermanent filter = new FilterAttackingCreature("you control an attacking legendary creature");
static {
filter.add(SuperType.LEGENDARY.getPredicate());
}
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
private static final Hint hint = new ConditionHint(condition);
public ScarringMemories(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}");
this.subtype.add(SubType.LESSON);
// You may cast this spell as though it had flash if you control an attacking legendary creature.
this.addAbility(new CastAsThoughItHadFlashIfConditionAbility(
condition, "you may cast this spell as though it had flash if you control an attacking legendary creature"
));
// Target opponent sacrifices a creature of their choice, discards a card, and loses 3 life.
this.getSpellAbility().addEffect(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "target opponent"));
this.getSpellAbility().addEffect(new DiscardTargetEffect(1).setText(", discards a card"));
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3).setText(", and loses 3 life"));
this.getSpellAbility().addTarget(new TargetOpponent());
}
private ScarringMemories(final ScarringMemories card) {
super(card);
}
@Override
public ScarringMemories copy() {
return new ScarringMemories(this);
}
}

View file

@ -206,6 +206,7 @@ public final class AvatarTheLastAirbenderEternal extends ExpansionSet {
cards.add(new SetCardInfo("Run Amok", 284, Rarity.COMMON, mage.cards.r.RunAmok.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Run Amok", 284, Rarity.COMMON, mage.cards.r.RunAmok.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ruthless Waterbender", 110, Rarity.UNCOMMON, mage.cards.r.RuthlessWaterbender.class)); cards.add(new SetCardInfo("Ruthless Waterbender", 110, Rarity.UNCOMMON, mage.cards.r.RuthlessWaterbender.class));
cards.add(new SetCardInfo("Sakashima of a Thousand Faces", 18, Rarity.MYTHIC, mage.cards.s.SakashimaOfAThousandFaces.class)); cards.add(new SetCardInfo("Sakashima of a Thousand Faces", 18, Rarity.MYTHIC, mage.cards.s.SakashimaOfAThousandFaces.class));
cards.add(new SetCardInfo("Scarring Memories", 111, Rarity.UNCOMMON, mage.cards.s.ScarringMemories.class));
cards.add(new SetCardInfo("Scout's Warning", 6, Rarity.MYTHIC, mage.cards.s.ScoutsWarning.class)); cards.add(new SetCardInfo("Scout's Warning", 6, Rarity.MYTHIC, mage.cards.s.ScoutsWarning.class));
cards.add(new SetCardInfo("Searing Blood", 35, Rarity.MYTHIC, mage.cards.s.SearingBlood.class)); cards.add(new SetCardInfo("Searing Blood", 35, Rarity.MYTHIC, mage.cards.s.SearingBlood.class));
cards.add(new SetCardInfo("Seismic Tutelage", 254, Rarity.RARE, mage.cards.s.SeismicTutelage.class)); cards.add(new SetCardInfo("Seismic Tutelage", 254, Rarity.RARE, mage.cards.s.SeismicTutelage.class));