From b04c7885fec2228fb64e771f4553ab957bfe7f67 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 17 Jan 2024 08:20:34 -0500 Subject: [PATCH] [MKM] Implement Lavinia, Foil to Conspiracy --- .../mage/cards/l/LaviniaFoilToConspiracy.java | 73 +++++++++++++++++++ .../src/mage/sets/RavnicaClueEdition.java | 1 + 2 files changed, 74 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/l/LaviniaFoilToConspiracy.java diff --git a/Mage.Sets/src/mage/cards/l/LaviniaFoilToConspiracy.java b/Mage.Sets/src/mage/cards/l/LaviniaFoilToConspiracy.java new file mode 100644 index 00000000000..5662766aa3f --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LaviniaFoilToConspiracy.java @@ -0,0 +1,73 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.Mana; +import mage.abilities.common.CastSecondSpellTriggeredAbility; +import mage.abilities.condition.common.NotMyTurnCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.keyword.InvestigateEffect; +import mage.abilities.effects.mana.BasicManaEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.Zone; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LaviniaFoilToConspiracy extends CardImpl { + + public LaviniaFoilToConspiracy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W/U}{W/U}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.DETECTIVE); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Whenever you cast your second spell each turn, investigate. + this.addAbility(new CastSecondSpellTriggeredAbility(new InvestigateEffect())); + + // {T}: Add {C}{C}. Activate only during an opponent's turn. + this.addAbility(new LaviniaFoilToConspiracyAbility()); + } + + private LaviniaFoilToConspiracy(final LaviniaFoilToConspiracy card) { + super(card); + } + + @Override + public LaviniaFoilToConspiracy copy() { + return new LaviniaFoilToConspiracy(this); + } +} + +class LaviniaFoilToConspiracyAbility extends ActivateIfConditionManaAbility { + LaviniaFoilToConspiracyAbility() { + super(Zone.BATTLEFIELD, new BasicManaEffect(Mana.ColorlessMana(2)), new TapSourceCost(), NotMyTurnCondition.instance); + } + + private LaviniaFoilToConspiracyAbility(final LaviniaFoilToConspiracyAbility ability) { + super(ability); + } + + @Override + public LaviniaFoilToConspiracyAbility copy() { + return new LaviniaFoilToConspiracyAbility(this); + } + + @Override + public String getRule() { + return "{T}: Add {C}{C}. Activate only during an opponent's turn."; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/RavnicaClueEdition.java b/Mage.Sets/src/mage/sets/RavnicaClueEdition.java index fe1f3737ba1..6f6e2041d86 100644 --- a/Mage.Sets/src/mage/sets/RavnicaClueEdition.java +++ b/Mage.Sets/src/mage/sets/RavnicaClueEdition.java @@ -24,6 +24,7 @@ public final class RavnicaClueEdition extends ExpansionSet { cards.add(new SetCardInfo("Dining Room", 15, Rarity.UNCOMMON, mage.cards.d.DiningRoom.class)); cards.add(new SetCardInfo("Hallowed Fountain", 277, Rarity.RARE, mage.cards.h.HallowedFountain.class)); cards.add(new SetCardInfo("Knife", 10, Rarity.UNCOMMON, mage.cards.k.Knife.class)); + cards.add(new SetCardInfo("Lavinia, Foil to Conspiracy", 36, Rarity.RARE, mage.cards.l.LaviniaFoilToConspiracy.class)); cards.add(new SetCardInfo("Lead Pipe", 9, Rarity.UNCOMMON, mage.cards.l.LeadPipe.class)); cards.add(new SetCardInfo("Library", 18, Rarity.UNCOMMON, mage.cards.l.Library.class)); cards.add(new SetCardInfo("Senator Peacock", 2, Rarity.RARE, mage.cards.s.SenatorPeacock.class));