diff --git a/Mage.Sets/src/mage/cards/o/OverseerOfVault76.java b/Mage.Sets/src/mage/cards/o/OverseerOfVault76.java new file mode 100644 index 00000000000..7319e5ed488 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OverseerOfVault76.java @@ -0,0 +1,80 @@ +package mage.cards.o; + +import java.util.UUID; + +import mage.MageInt; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility; +import mage.abilities.common.delayed.ReflexiveTriggeredAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.RemoveCounterCost; +import mage.abilities.effects.common.DoWhenCostPaid; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.constants.*; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.target.TargetPermanent; + +/** + * @author Cguy7777 + */ +public final class OverseerOfVault76 extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 3 or less"); + + static { + filter.add(new PowerPredicate(ComparisonType.FEWER_THAN, 4)); + } + + public OverseerOfVault76(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ADVISOR); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // First Contact -- Whenever Overseer of Vault 76 or another creature with power 3 or less + // enters the battlefield under your control, put a quest counter on Overseer of Vault 76. + this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility( + new AddCountersSourceEffect(CounterType.QUEST.createInstance()), filter, false, true) + .withFlavorWord("First Contact")); + + // At the beginning of combat on your turn, you may remove three quest counters from + // among permanents you control. When you do, put a +1/+1 counter on each + // creature you control and they gain vigilance until end of turn. + ReflexiveTriggeredAbility boostAbility = new ReflexiveTriggeredAbility( + new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE), + false); + boostAbility.addEffect(new GainAbilityControlledEffect( + VigilanceAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURE) + .setText("and they gain vigilance until end of turn")); + + Cost cost = new RemoveCounterCost( + new TargetPermanent(1, 3, StaticFilters.FILTER_CONTROLLED_PERMANENTS), + CounterType.QUEST, + 3) + .setText("remove three quest counters from among permanents you control"); + this.addAbility(new BeginningOfCombatTriggeredAbility( + new DoWhenCostPaid(boostAbility, cost, "Remove three quest counters from among permanents you control?"), + TargetController.YOU, + false)); + } + + private OverseerOfVault76(final OverseerOfVault76 card) { + super(card); + } + + @Override + public OverseerOfVault76 copy() { + return new OverseerOfVault76(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Fallout.java b/Mage.Sets/src/mage/sets/Fallout.java index 2936ddcdf8b..7e32d79caa5 100644 --- a/Mage.Sets/src/mage/sets/Fallout.java +++ b/Mage.Sets/src/mage/sets/Fallout.java @@ -178,6 +178,10 @@ public final class Fallout extends ExpansionSet { cards.add(new SetCardInfo("Open the Vaults", 168, Rarity.RARE, mage.cards.o.OpenTheVaults.class)); cards.add(new SetCardInfo("Opulent Palace", 278, Rarity.UNCOMMON, mage.cards.o.OpulentPalace.class)); cards.add(new SetCardInfo("Overflowing Basin", 152, Rarity.RARE, mage.cards.o.OverflowingBasin.class)); + cards.add(new SetCardInfo("Overseer of Vault 76", 19, Rarity.RARE, mage.cards.o.OverseerOfVault76.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Overseer of Vault 76", 368, Rarity.RARE, mage.cards.o.OverseerOfVault76.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Overseer of Vault 76", 547, Rarity.RARE, mage.cards.o.OverseerOfVault76.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Overseer of Vault 76", 896, Rarity.RARE, mage.cards.o.OverseerOfVault76.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Panharmonicon", 237, Rarity.RARE, mage.cards.p.Panharmonicon.class)); cards.add(new SetCardInfo("Path of Ancestry", 279, Rarity.COMMON, mage.cards.p.PathOfAncestry.class)); cards.add(new SetCardInfo("Path to Exile", 169, Rarity.UNCOMMON, mage.cards.p.PathToExile.class));