diff --git a/Mage.Sets/src/mage/cards/h/HorizonOfProgress.java b/Mage.Sets/src/mage/cards/h/HorizonOfProgress.java new file mode 100644 index 00000000000..3f8a2455564 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HorizonOfProgress.java @@ -0,0 +1,55 @@ +package mage.cards.h; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.PutCardFromHandOntoBattlefieldEffect; +import mage.abilities.mana.AnyColorLandsProduceManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HorizonOfProgress extends CardImpl { + + public HorizonOfProgress(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // {T}, Pay 1 life: Add one mana of any type that a land you control could produce. + Ability ability = new AnyColorLandsProduceManaAbility(TargetController.YOU, false); + ability.addCost(new PayLifeCost(1)); + this.addAbility(ability); + + // {3}, {T}: You may put a land card from your hand onto the battlefield tapped. + ability = new SimpleActivatedAbility( + new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_LAND_A), new GenericManaCost(3) + ); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // {1}, {T}, Sacrifice Horizon of Progress: Draw a card. + ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + private HorizonOfProgress(final HorizonOfProgress card) { + super(card); + } + + @Override + public HorizonOfProgress copy() { + return new HorizonOfProgress(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java index 402c32d7321..158840ae058 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons3Commander.java @@ -116,6 +116,7 @@ public final class ModernHorizons3Commander extends ExpansionSet { cards.add(new SetCardInfo("Hidden Cataract", 348, Rarity.COMMON, mage.cards.h.HiddenCataract.class)); cards.add(new SetCardInfo("Hidden Nursery", 349, Rarity.COMMON, mage.cards.h.HiddenNursery.class)); cards.add(new SetCardInfo("Hideous Taskmaster", 57, Rarity.RARE, mage.cards.h.HideousTaskmaster.class)); + cards.add(new SetCardInfo("Horizon of Progress", 78, Rarity.RARE, mage.cards.h.HorizonOfProgress.class)); cards.add(new SetCardInfo("Hour of Promise", 232, Rarity.RARE, mage.cards.h.HourOfPromise.class)); cards.add(new SetCardInfo("Hydra Broodmaster", 233, Rarity.RARE, mage.cards.h.HydraBroodmaster.class)); cards.add(new SetCardInfo("Hydroid Krasis", 266, Rarity.MYTHIC, mage.cards.h.HydroidKrasis.class));