From edbd27c2fe9aabf972841bc32db32555cb489bce Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 17 May 2022 22:39:50 -0400 Subject: [PATCH] [CLB] Implemented Passageway Seer --- .../src/mage/cards/p/PassagewaySeer.java | 54 +++++++++++++++++++ .../CommanderLegendsBattleForBaldursGate.java | 1 + .../common/HaveInitiativeCondition.java | 22 ++++++++ 3 files changed, 77 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/p/PassagewaySeer.java create mode 100644 Mage/src/main/java/mage/abilities/condition/common/HaveInitiativeCondition.java diff --git a/Mage.Sets/src/mage/cards/p/PassagewaySeer.java b/Mage.Sets/src/mage/cards/p/PassagewaySeer.java new file mode 100644 index 00000000000..22a4259429d --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PassagewaySeer.java @@ -0,0 +1,54 @@ +package mage.cards.p; + +import mage.MageInt; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.HaveInitiativeCondition; +import mage.abilities.effects.common.TakeTheInitiativeEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.counters.CounterType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class PassagewaySeer extends CardImpl { + + public PassagewaySeer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.subtype.add(SubType.TIEFLING); + this.subtype.add(SubType.WARLOCK); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // When Passageway Seer enters the battlefield, you take the initiative. + this.addAbility(new EntersBattlefieldTriggeredAbility(new TakeTheInitiativeEffect())); + + // At the beginning of your end step, if you have the initiative, put a +1/+1 counter on Passageway Seer. + this.addAbility(new BeginningOfEndStepTriggeredAbility( + Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), + TargetController.YOU, HaveInitiativeCondition.instance, false + )); + } + + private PassagewaySeer(final PassagewaySeer card) { + super(card); + } + + @Override + public PassagewaySeer copy() { + return new PassagewaySeer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java index 812d7e2a075..55cbac2db14 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java +++ b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java @@ -42,6 +42,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet { cards.add(new SetCardInfo("Minsc & Boo, Timeless Heroes", 285, Rarity.MYTHIC, mage.cards.m.MinscBooTimelessHeroes.class)); cards.add(new SetCardInfo("Morphic Pool", 357, Rarity.RARE, mage.cards.m.MorphicPool.class)); cards.add(new SetCardInfo("Moss Diamond", 327, Rarity.COMMON, mage.cards.m.MossDiamond.class)); + cards.add(new SetCardInfo("Passageway Seer", 141, Rarity.UNCOMMON, mage.cards.p.PassagewaySeer.class)); cards.add(new SetCardInfo("Reflecting Pool", 358, Rarity.RARE, mage.cards.r.ReflectingPool.class)); cards.add(new SetCardInfo("Roving Harper", 40, Rarity.COMMON, mage.cards.r.RovingHarper.class)); cards.add(new SetCardInfo("Sea of Clouds", 360, Rarity.RARE, mage.cards.s.SeaOfClouds.class)); diff --git a/Mage/src/main/java/mage/abilities/condition/common/HaveInitiativeCondition.java b/Mage/src/main/java/mage/abilities/condition/common/HaveInitiativeCondition.java new file mode 100644 index 00000000000..1110482c5a9 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/HaveInitiativeCondition.java @@ -0,0 +1,22 @@ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.game.Game; + +/** + * @author TheElk801 + */ +public enum HaveInitiativeCondition implements Condition { + instance; + + @Override + public boolean apply(Game game, Ability source) { + return source.isControlledBy(game.getInitiativeId()); + } + + @Override + public String toString() { + return "if you have the initiative"; + } +}