Skip to content

Commit

Permalink
[MKC] Implement Tesak, Judith's Hellhound (#11831)
Browse files Browse the repository at this point in the history
PurpleCrowbar authored Feb 23, 2024
1 parent 00deb7a commit 504889b
Showing 3 changed files with 82 additions and 1 deletion.
79 changes: 79 additions & 0 deletions Mage.Sets/src/mage/cards/t/TesakJudithsHellhound.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package mage.cards.t;

import mage.MageInt;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledSpellsEffect;
import mage.abilities.effects.mana.DynamicManaEffect;
import mage.abilities.keyword.HasteAbility;
import mage.abilities.keyword.UnleashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterCard;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreatureCard;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.CounterAnyPredicate;

import java.util.UUID;

/**
* @author PurpleCrowbar
*/
public final class TesakJudithsHellhound extends CardImpl {

private static final FilterCreaturePermanent filter1 = new FilterCreaturePermanent(SubType.DOG, "Dogs");
private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent("Creatures you control with counters on them");
private static final FilterCard filter3 = new FilterCreatureCard();

static {
filter2.add(CounterAnyPredicate.instance);
filter3.add(SubType.DOG.getPredicate());
}

public TesakJudithsHellhound(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.ELEMENTAL, SubType.DOG);
this.power = new MageInt(3);
this.toughness = new MageInt(3);

// Unleash
this.addAbility(new UnleashAbility());

// Other Dogs you control have unleash.
Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect(
new UnleashAbility(), Duration.WhileOnBattlefield, filter1, true
));
ability.addEffect(new GainAbilityControlledSpellsEffect(new UnleashAbility(), filter3).setText(""));
this.addAbility(ability);

// Creatures you control with counters on them have haste.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
HasteAbility.getInstance(), Duration.WhileOnBattlefield, filter2
)));

// Whenever Tesak, Judith's Hellhound attacks, add {R} for each attacking creature.
this.addAbility(new AttacksTriggeredAbility(
new DynamicManaEffect(Mana.RedMana(1), new PermanentsOnBattlefieldCount(StaticFilters.FILTER_ATTACKING_CREATURE))
));
}

private TesakJudithsHellhound(final TesakJudithsHellhound card) {
super(card);
}

@Override
public TesakJudithsHellhound copy() {
return new TesakJudithsHellhound(this);
}
}
2 changes: 2 additions & 0 deletions Mage.Sets/src/mage/sets/MurdersAtKarlovManorCommander.java
Original file line number Diff line number Diff line change
@@ -257,6 +257,8 @@ private MurdersAtKarlovManorCommander() {
cards.add(new SetCardInfo("Temple of Triumph", 306, Rarity.RARE, mage.cards.t.TempleOfTriumph.class));
cards.add(new SetCardInfo("Temple of the False God", 305, Rarity.UNCOMMON, mage.cards.t.TempleOfTheFalseGod.class));
cards.add(new SetCardInfo("Temur War Shaman", 187, Rarity.RARE, mage.cards.t.TemurWarShaman.class));
cards.add(new SetCardInfo("Tesak, Judith's Hellhound", 36, Rarity.RARE, mage.cards.t.TesakJudithsHellhound.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Tesak, Judith's Hellhound", 346, Rarity.RARE, mage.cards.t.TesakJudithsHellhound.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Tezzeret, Betrayer of Flesh", 120, Rarity.MYTHIC, mage.cards.t.TezzeretBetrayerOfFlesh.class));
cards.add(new SetCardInfo("Thelonite Hermit", 188, Rarity.RARE, mage.cards.t.TheloniteHermit.class));
cards.add(new SetCardInfo("Thought Monitor", 121, Rarity.RARE, mage.cards.t.ThoughtMonitor.class));
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@ public UnleashAbility copy() {

@Override
public String getRule() {
return "Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>";
return "unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>";
}
}

0 comments on commit 504889b

Please sign in to comment.