Skip to content

Commit

Permalink
[MKM] Implement Hedge Whisperer (magefree#11857)
Browse files Browse the repository at this point in the history
  • Loading branch information
Cguy7777 authored Feb 26, 2024
1 parent 98fef0d commit 6ead910
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
72 changes: 72 additions & 0 deletions Mage.Sets/src/mage/cards/h/HedgeWhisperer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package mage.cards.h;

import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.SkipUntapOptionalAbility;
import mage.abilities.condition.common.SourceTappedCondition;
import mage.abilities.costs.common.CollectEvidenceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
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.custom.CreatureToken;
import mage.target.TargetPermanent;

import java.util.UUID;

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

public HedgeWhisperer(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}");

this.subtype.add(SubType.ELF);
this.subtype.add(SubType.DRUID);
this.subtype.add(SubType.DETECTIVE);
this.power = new MageInt(0);
this.toughness = new MageInt(3);

// You may choose not to untap Hedge Whisperer during your untap step.
this.addAbility(new SkipUntapOptionalAbility());

// {3}{G}, {T}, Collect evidence 4: Target land you control becomes a 5/5 green Plant Boar creature with haste
// for as long as Hedge Whisperer remains tapped. It's still a land. Activate only as a sorcery.
BecomesCreatureTargetEffect effect = new BecomesCreatureTargetEffect(
new CreatureToken(5, 5, "5/5 green Plant Boar creature with haste")
.withColor("G")
.withSubType(SubType.PLANT)
.withSubType(SubType.BOAR)
.withAbility(HasteAbility.getInstance()),
false, true, Duration.Custom);

Ability ability = new ActivateAsSorceryActivatedAbility(
new ConditionalContinuousEffect(
effect,
SourceTappedCondition.TAPPED,
"target land you control becomes a 5/5 green Plant Boar creature with haste for as long as {this} remains tapped. It's still a land"),
new ManaCostsImpl<>("{3}{G}"));
ability.addCost(new TapSourceCost());
ability.addCost(new CollectEvidenceCost(4));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND));
this.addAbility(ability);
}

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

@Override
public HedgeWhisperer copy() {
return new HedgeWhisperer(this);
}
}
1 change: 1 addition & 0 deletions Mage.Sets/src/mage/sets/MurdersAtKarlovManor.java
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ private MurdersAtKarlovManor() {
cards.add(new SetCardInfo("Hard-Hitting Question", 164, Rarity.UNCOMMON, mage.cards.h.HardHittingQuestion.class));
cards.add(new SetCardInfo("Harried Dronesmith", 131, Rarity.UNCOMMON, mage.cards.h.HarriedDronesmith.class));
cards.add(new SetCardInfo("Hedge Maze", 262, Rarity.RARE, mage.cards.h.HedgeMaze.class));
cards.add(new SetCardInfo("Hedge Whisperer", 165, Rarity.UNCOMMON, mage.cards.h.HedgeWhisperer.class));
cards.add(new SetCardInfo("Homicide Investigator", 86, Rarity.RARE, mage.cards.h.HomicideInvestigator.class));
cards.add(new SetCardInfo("Hotshot Investigators", 60, Rarity.COMMON, mage.cards.h.HotshotInvestigators.class));
cards.add(new SetCardInfo("Hunted Bonebrute", 87, Rarity.RARE, mage.cards.h.HuntedBonebrute.class));
Expand Down

0 comments on commit 6ead910

Please sign in to comment.