[ECL] Implement Catharsis

This commit is contained in:
theelk801 2026-01-09 10:28:13 -05:00
parent 6ae2f9ae01
commit 754038af58
2 changed files with 65 additions and 0 deletions

View file

@ -0,0 +1,63 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.TwoOfManaColorSpentCondition;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.EvokeAbility;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import mage.game.permanent.token.KithkinGreenWhiteToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class Catharsis extends CardImpl {
public Catharsis(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R/W}{R/W}");
this.subtype.add(SubType.ELEMENTAL);
this.subtype.add(SubType.INCARNATION);
this.power = new MageInt(3);
this.toughness = new MageInt(4);
// When this creature enters, if {W}{W} was spent to cast it, create two 1/1 green and white Kithkin creature tokens.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new CreateTokenEffect(new KithkinGreenWhiteToken(), 2)
).withInterveningIf(TwoOfManaColorSpentCondition.WHITE));
// When this creature enters, if {R}{R} was spent to cast it, creatures you control get +1/+1 and gain haste until end of turn.
Ability ability = new EntersBattlefieldTriggeredAbility(
new BoostControlledEffect(1, 1, Duration.EndOfTurn)
.setText("creatures you control get +1/+1")
).withInterveningIf(TwoOfManaColorSpentCondition.RED);
ability.addEffect(new GainAbilityControlledEffect(
HasteAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_CONTROLLED_CREATURES
).setText("and gain haste until end of turn"));
this.addAbility(ability);
// Evoke {R/W}{R/W}
this.addAbility(new EvokeAbility("{R/W}{R/W}"));
}
private Catharsis(final Catharsis card) {
super(card);
}
@Override
public Catharsis copy() {
return new Catharsis(this);
}
}

View file

@ -57,6 +57,8 @@ public final class LorwynEclipsed extends ExpansionSet {
cards.add(new SetCardInfo("Bristlebane Battler", 325, Rarity.RARE, mage.cards.b.BristlebaneBattler.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Burdened Stoneback", 8, Rarity.UNCOMMON, mage.cards.b.BurdenedStoneback.class));
cards.add(new SetCardInfo("Burning Curiosity", 129, Rarity.COMMON, mage.cards.b.BurningCuriosity.class));
cards.add(new SetCardInfo("Catharsis", 209, Rarity.MYTHIC, mage.cards.c.Catharsis.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Catharsis", 292, Rarity.MYTHIC, mage.cards.c.Catharsis.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champion of the Clachan", 353, Rarity.RARE, mage.cards.c.ChampionOfTheClachan.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champion of the Clachan", 9, Rarity.RARE, mage.cards.c.ChampionOfTheClachan.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champion of the Weird", 360, Rarity.RARE, mage.cards.c.ChampionOfTheWeird.class, NON_FULL_USE_VARIOUS));