Skip to content

Commit

Permalink
implement [MKM] Call a Surprise Witness (#11979)
Browse files Browse the repository at this point in the history
  • Loading branch information
Cguy7777 committed Mar 23, 2024
1 parent 1cf84a7 commit 83b056f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
51 changes: 51 additions & 0 deletions Mage.Sets/src/mage/cards/c/CallASurpriseWitness.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package mage.cards.c;

import java.util.UUID;

import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.effects.common.continuous.AddCreatureTypeAdditionEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.ComparisonType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.common.FilterCreatureCard;
import mage.filter.predicate.mageobject.ManaValuePredicate;
import mage.target.common.TargetCardInYourGraveyard;

/**
* @author Cguy7777
*/
public final class CallASurpriseWitness extends CardImpl {

private static final FilterCreatureCard filter
= new FilterCreatureCard("creature card with mana value 3 or less from your graveyard");

static {
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 4));
}

public CallASurpriseWitness(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{W}");

// Return target creature card with mana value 3 or less from your graveyard to the battlefield.
// Put a flying counter on it. It's a Spirit in addition to its other types.
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect());
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.FLYING.createInstance())
.setText("put a flying counter on it"));
this.getSpellAbility().addEffect(new AddCreatureTypeAdditionEffect(SubType.SPIRIT, false)
.setText("it's a Spirit in addition to its other types"));
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(filter));
}

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

@Override
public CallASurpriseWitness copy() {
return new CallASurpriseWitness(this);
}
}
2 changes: 2 additions & 0 deletions Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ private MurdersAtKarlovManor() {
cards.add(new SetCardInfo("Branch of Vitu-Ghazi", 258, Rarity.UNCOMMON, mage.cards.b.BranchOfVituGhazi.class));
cards.add(new SetCardInfo("Burden of Proof", 42, Rarity.UNCOMMON, mage.cards.b.BurdenOfProof.class));
cards.add(new SetCardInfo("Buried in the Garden", 191, Rarity.UNCOMMON, mage.cards.b.BuriedInTheGarden.class));
cards.add(new SetCardInfo("Call a Surprise Witness", 6, Rarity.UNCOMMON, mage.cards.c.CallASurpriseWitness.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Call a Surprise Witness", 289, Rarity.UNCOMMON, mage.cards.c.CallASurpriseWitness.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Candlestick", 43, Rarity.UNCOMMON, mage.cards.c.Candlestick.class));
cards.add(new SetCardInfo("Case of the Burning Masks", 113, Rarity.UNCOMMON, mage.cards.c.CaseOfTheBurningMasks.class));
cards.add(new SetCardInfo("Case of the Crimson Pulse", 114, Rarity.RARE, mage.cards.c.CaseOfTheCrimsonPulse.class));
Expand Down

0 comments on commit 83b056f

Please sign in to comment.