[CLU] Implement Wrench (#11707)

This commit is contained in:
Cameron Merkel 2024-01-24 22:45:55 -06:00 committed by GitHub
parent 84af4441f9
commit ed196bcfbf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 65 additions and 0 deletions

View file

@ -0,0 +1,64 @@
package mage.cards.w;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
import mage.abilities.keyword.EquipAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.token.ClueAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AttachmentType;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author Cguy7777
*/
public final class Wrench extends CardImpl {
public Wrench(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{W}");
this.subtype.add(SubType.CLUE);
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +1/+1 and has vigilance and "{3}, {T}: Tap target creature."
Ability boostAbility = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
boostAbility.addEffect(new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT)
.setText("and has vigilance"));
SimpleActivatedAbility tapAbility = new SimpleActivatedAbility(new TapTargetEffect(), new GenericManaCost(3));
tapAbility.addCost(new TapSourceCost());
tapAbility.addTarget(new TargetCreaturePermanent());
boostAbility.addEffect(new GainAbilityAttachedEffect(tapAbility, AttachmentType.EQUIPMENT)
.setText("and \"{3}, {T}: Tap target creature.\""));
this.addAbility(boostAbility);
// {2}, Sacrifice Wrench: Draw a card.
this.addAbility(new ClueAbility(true));
// Equip {2}
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), new TargetControlledCreaturePermanent(), false));
}
private Wrench(final Wrench card) {
super(card);
}
@Override
public Wrench copy() {
return new Wrench(this);
}
}

View file

@ -259,6 +259,7 @@ public final class RavnicaClueEdition extends ExpansionSet {
cards.add(new SetCardInfo("Wildsize", 179, Rarity.COMMON, mage.cards.w.Wildsize.class));
cards.add(new SetCardInfo("Wildwood Patrol", 180, Rarity.COMMON, mage.cards.w.WildwoodPatrol.class));
cards.add(new SetCardInfo("Wojek Bodyguard", 154, Rarity.COMMON, mage.cards.w.WojekBodyguard.class));
cards.add(new SetCardInfo("Wrench", 7, Rarity.UNCOMMON, mage.cards.w.Wrench.class));
cards.add(new SetCardInfo("Yeva's Forcemage", 181, Rarity.COMMON, mage.cards.y.YevasForcemage.class));
}
}