implement [PIP] Duchess, Wayward Tavernkeep

This commit is contained in:
Susucre 2024-05-02 17:06:26 +02:00
parent 36da47a64f
commit 172a2e53b3
3 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,58 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.RemoveCounterCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.game.permanent.token.JunkToken;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
* @author Susucr
*/
public final class DuchessWaywardTavernkeep extends CardImpl {
public DuchessWaywardTavernkeep(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.CITIZEN);
this.power = new MageInt(4);
this.toughness = new MageInt(3);
// Hunters for Hire -- Whenever a creature you control deals combat damage to a player, put a quest counter on it.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
new AddCountersSourceEffect(CounterType.QUEST.createInstance())
).withFlavorWord("Hunters for Hire"));
// {1}, Remove a quest counter from a permanent you control: Create a Junk token.
Ability ability = new SimpleActivatedAbility(
new CreateTokenEffect(new JunkToken()),
new GenericManaCost(1)
);
ability.addCost(new RemoveCounterCost(new TargetControlledPermanent(), CounterType.QUEST));
this.addAbility(ability);
}
private DuchessWaywardTavernkeep(final DuchessWaywardTavernkeep card) {
super(card);
}
@Override
public DuchessWaywardTavernkeep copy() {
return new DuchessWaywardTavernkeep(this);
}
}

View file

@ -107,6 +107,7 @@ public final class Fallout extends ExpansionSet {
cards.add(new SetCardInfo("Dr. Madison Li", 3, Rarity.MYTHIC, mage.cards.d.DrMadisonLi.class)); cards.add(new SetCardInfo("Dr. Madison Li", 3, Rarity.MYTHIC, mage.cards.d.DrMadisonLi.class));
cards.add(new SetCardInfo("Dragonskull Summit", 261, Rarity.RARE, mage.cards.d.DragonskullSummit.class)); cards.add(new SetCardInfo("Dragonskull Summit", 261, Rarity.RARE, mage.cards.d.DragonskullSummit.class));
cards.add(new SetCardInfo("Drowned Catacomb", 262, Rarity.RARE, mage.cards.d.DrownedCatacomb.class)); cards.add(new SetCardInfo("Drowned Catacomb", 262, Rarity.RARE, mage.cards.d.DrownedCatacomb.class));
cards.add(new SetCardInfo("Duchess, Wayward Tavernkeep", 57, Rarity.RARE, mage.cards.d.DuchessWaywardTavernkeep.class));
cards.add(new SetCardInfo("Elder Arthur Maxson", 102, Rarity.RARE, mage.cards.e.ElderArthurMaxson.class)); cards.add(new SetCardInfo("Elder Arthur Maxson", 102, Rarity.RARE, mage.cards.e.ElderArthurMaxson.class));
cards.add(new SetCardInfo("Elder Owyn Lyons", 103, Rarity.UNCOMMON, mage.cards.e.ElderOwynLyons.class)); cards.add(new SetCardInfo("Elder Owyn Lyons", 103, Rarity.UNCOMMON, mage.cards.e.ElderOwynLyons.class));
cards.add(new SetCardInfo("Electrosiphon", 104, Rarity.RARE, mage.cards.e.Electrosiphon.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Electrosiphon", 104, Rarity.RARE, mage.cards.e.Electrosiphon.class, NON_FULL_USE_VARIOUS));

View file

@ -15,6 +15,10 @@ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbility
protected final boolean setTargetPointer; protected final boolean setTargetPointer;
public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect) {
this(effect, false);
}
public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect, boolean optional) { public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect, boolean optional) {
this(effect, optional, false); this(effect, optional, false);
} }