diff --git a/Mage.Sets/src/mage/cards/l/LuluLoyalHollyphant.java b/Mage.Sets/src/mage/cards/l/LuluLoyalHollyphant.java new file mode 100644 index 00000000000..e7c6accb4f6 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LuluLoyalHollyphant.java @@ -0,0 +1,68 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.common.ChooseABackgroundAbility; +import mage.abilities.condition.common.RevoltCondition; +import mage.abilities.effects.common.UntapAllEffect; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LuluLoyalHollyphant extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledCreaturePermanent("tapped creature you control"); + + static { + filter.add(TappedPredicate.TAPPED); + } + + public LuluLoyalHollyphant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.ELEPHANT); + this.subtype.add(SubType.ANGEL); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on each tapped creature you control, then untap them. + Ability ability = new BeginningOfEndStepTriggeredAbility( + new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), + TargetController.YOU, RevoltCondition.instance, false + ); + ability.addEffect(new UntapAllEffect(filter).setText(", then untap them")); + this.addAbility(ability); + + // Choose a Background + this.addAbility(ChooseABackgroundAbility.getInstance()); + } + + private LuluLoyalHollyphant(final LuluLoyalHollyphant card) { + super(card); + } + + @Override + public LuluLoyalHollyphant copy() { + return new LuluLoyalHollyphant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java index efd299eaceb..ebfb461895d 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java +++ b/Mage.Sets/src/mage/sets/CommanderLegendsBattleForBaldursGate.java @@ -60,6 +60,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet { cards.add(new SetCardInfo("Korlessa, Scale Singer", 280, Rarity.UNCOMMON, mage.cards.k.KorlessaScaleSinger.class)); cards.add(new SetCardInfo("Lae'zel, Vlaakith's Champion", 29, Rarity.RARE, mage.cards.l.LaezelVlaakithsChampion.class)); cards.add(new SetCardInfo("Lightning Bolt", 187, Rarity.COMMON, mage.cards.l.LightningBolt.class)); + cards.add(new SetCardInfo("Lulu, Loyal Hollyphant", 32, Rarity.UNCOMMON, mage.cards.l.LuluLoyalHollyphant.class)); cards.add(new SetCardInfo("Luxury Suite", 355, Rarity.RARE, mage.cards.l.LuxurySuite.class)); cards.add(new SetCardInfo("Mahadi, Emporium Master", 282, Rarity.UNCOMMON, mage.cards.m.MahadiEmporiumMaster.class)); cards.add(new SetCardInfo("Marble Diamond", 320, Rarity.COMMON, mage.cards.m.MarbleDiamond.class)); diff --git a/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java index b3aca3cb301..87109b97466 100644 --- a/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/BeginningOfEndStepTriggeredAbility.java @@ -16,7 +16,11 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl { private final Condition interveningIfClauseCondition; public BeginningOfEndStepTriggeredAbility(Effect effect, TargetController targetController, boolean isOptional) { - this(Zone.BATTLEFIELD, effect, targetController, null, isOptional); + this(effect, targetController, null, isOptional); + } + + public BeginningOfEndStepTriggeredAbility(Effect effect, TargetController targetController, Condition interveningIfClauseCondition, boolean isOptional) { + this(Zone.BATTLEFIELD, effect, targetController, interveningIfClauseCondition, isOptional); } public BeginningOfEndStepTriggeredAbility(Zone zone, Effect effect, TargetController targetController, Condition interveningIfClauseCondition, boolean isOptional) {