diff --git a/Mage.Sets/src/mage/cards/b/BornToDrive.java b/Mage.Sets/src/mage/cards/b/BornToDrive.java index 2f2984e0632..fc7022bfb30 100644 --- a/Mage.Sets/src/mage/cards/b/BornToDrive.java +++ b/Mage.Sets/src/mage/cards/b/BornToDrive.java @@ -22,7 +22,7 @@ import mage.filter.FilterPermanent; import mage.filter.StaticFilters; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.Predicates; -import mage.game.permanent.token.PilotToken; +import mage.game.permanent.token.PilotCrewToken; import mage.target.TargetPermanent; import java.util.UUID; @@ -63,7 +63,7 @@ public final class BornToDrive extends CardImpl { )).addHint(hint)); // Channel — {2}{W}, Discard Born to Drive: Create two 1/1 colorless Pilot creature tokens with "This creature crews Vehicles as though its power were 2 greater." - this.addAbility(new ChannelAbility("{2}{W}", new CreateTokenEffect(new PilotToken(), 2))); + this.addAbility(new ChannelAbility("{2}{W}", new CreateTokenEffect(new PilotCrewToken(), 2))); } private BornToDrive(final BornToDrive card) { diff --git a/Mage.Sets/src/mage/cards/c/CountryRoads.java b/Mage.Sets/src/mage/cards/c/CountryRoads.java new file mode 100644 index 00000000000..efa546cdb1c --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CountryRoads.java @@ -0,0 +1,66 @@ +package mage.cards.c; + +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.common.EntersBattlefieldTappedUnlessAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.game.permanent.token.PilotSaddleCrewToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CountryRoads extends CardImpl { + + private static final FilterPermanent filter = new FilterControlledPermanent("you control a Mount or Vehicle"); + + static { + filter.add(Predicates.or( + SubType.MOUNT.getPredicate(), + SubType.VEHICLE.getPredicate() + )); + } + + private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter); + + public CountryRoads(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // This land enters tapped unless you control a Mount or Vehicle. + this.addAbility(new EntersBattlefieldTappedUnlessAbility(condition)); + + // {T}: Add {W}. + this.addAbility(new WhiteManaAbility()); + + // {1}{W}, {T}, Sacrifice this land: Create a 1/1 colorless Pilot creature token with "This token saddles Mounts and crews Vehicles as though its power were 2 greater." Activate only as a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility( + new CreateTokenEffect(new PilotSaddleCrewToken()), new ManaCostsImpl<>("{1}{W}") + ); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + private CountryRoads(final CountryRoads card) { + super(card); + } + + @Override + public CountryRoads copy() { + return new CountryRoads(this); + } +} diff --git a/Mage.Sets/src/mage/cards/p/ProdigysPrototype.java b/Mage.Sets/src/mage/cards/p/ProdigysPrototype.java index 12ab190664d..4e2e9605e34 100644 --- a/Mage.Sets/src/mage/cards/p/ProdigysPrototype.java +++ b/Mage.Sets/src/mage/cards/p/ProdigysPrototype.java @@ -9,7 +9,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.filter.common.FilterCreaturePermanent; -import mage.game.permanent.token.PilotToken; +import mage.game.permanent.token.PilotCrewToken; import java.util.UUID; @@ -29,7 +29,7 @@ public final class ProdigysPrototype extends CardImpl { // Whenever one or more Vehicles you control attack, create a 1/1 colorless Pilot creature token with "This creature crews Vehicles as though its power were 2 greater." this.addAbility(new AttacksWithCreaturesTriggeredAbility( - new CreateTokenEffect(new PilotToken()), 1, filter + new CreateTokenEffect(new PilotCrewToken()), 1, filter ).setTriggerPhrase("Whenever one or more Vehicles you control attack, ")); // Crew 2 diff --git a/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java b/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java index 2e0fa124374..61b07acf81c 100644 --- a/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java +++ b/Mage.Sets/src/mage/cards/r/ReckonerBankbuster.java @@ -19,7 +19,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.counters.CounterType; -import mage.game.permanent.token.PilotToken; +import mage.game.permanent.token.PilotCrewToken; import mage.game.permanent.token.TreasureToken; import java.util.UUID; @@ -48,7 +48,7 @@ public final class ReckonerBankbuster extends CardImpl { new DrawCardSourceControllerEffect(1), new GenericManaCost(2) ); ability.addEffect(new ConditionalOneShotEffect( - new CreateTokenEffect(new TreasureToken()).withAdditionalTokens(new PilotToken()), condition, + new CreateTokenEffect(new TreasureToken()).withAdditionalTokens(new PilotCrewToken()), condition, "Then if there are no charge counters on {this}, create a Treasure token and a 1/1 colorless " + "Pilot creature token with \"This creature crews Vehicles as though its power were 2 greater.\"" )); diff --git a/Mage.Sets/src/mage/cards/s/ShorikaiGenesisEngine.java b/Mage.Sets/src/mage/cards/s/ShorikaiGenesisEngine.java index 36b52819109..6a4bcfce98b 100644 --- a/Mage.Sets/src/mage/cards/s/ShorikaiGenesisEngine.java +++ b/Mage.Sets/src/mage/cards/s/ShorikaiGenesisEngine.java @@ -14,7 +14,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; -import mage.game.permanent.token.PilotToken; +import mage.game.permanent.token.PilotCrewToken; import java.util.UUID; @@ -35,7 +35,7 @@ public final class ShorikaiGenesisEngine extends CardImpl { Ability ability = new SimpleActivatedAbility( new DrawDiscardControllerEffect(2, 1), new GenericManaCost(1) ); - ability.addEffect(new CreateTokenEffect(new PilotToken())); + ability.addEffect(new CreateTokenEffect(new PilotCrewToken())); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/Aetherdrift.java b/Mage.Sets/src/mage/sets/Aetherdrift.java index d23d1c4ab2b..ce9b0ebfd8f 100644 --- a/Mage.Sets/src/mage/sets/Aetherdrift.java +++ b/Mage.Sets/src/mage/sets/Aetherdrift.java @@ -41,6 +41,7 @@ public final class Aetherdrift extends ExpansionSet { cards.add(new SetCardInfo("Brightglass Gearhulk", 191, Rarity.MYTHIC, mage.cards.b.BrightglassGearhulk.class)); cards.add(new SetCardInfo("Cloudspire Captain", 9, Rarity.UNCOMMON, mage.cards.c.CloudspireCaptain.class)); cards.add(new SetCardInfo("Count on Luck", 118, Rarity.RARE, mage.cards.c.CountOnLuck.class)); + cards.add(new SetCardInfo("Country Roads", 253, Rarity.UNCOMMON, mage.cards.c.CountryRoads.class)); cards.add(new SetCardInfo("Daretti, Rocketeer Engineer", 120, Rarity.RARE, mage.cards.d.DarettiRocketeerEngineer.class)); cards.add(new SetCardInfo("Dismal Backwater", 254, Rarity.COMMON, mage.cards.d.DismalBackwater.class)); cards.add(new SetCardInfo("Earthrumbler", 160, Rarity.UNCOMMON, mage.cards.e.Earthrumbler.class)); diff --git a/Mage/src/main/java/mage/game/permanent/token/PilotToken.java b/Mage/src/main/java/mage/game/permanent/token/PilotCrewToken.java similarity index 73% rename from Mage/src/main/java/mage/game/permanent/token/PilotToken.java rename to Mage/src/main/java/mage/game/permanent/token/PilotCrewToken.java index 55eca614aca..4955c7c6d84 100644 --- a/Mage/src/main/java/mage/game/permanent/token/PilotToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/PilotCrewToken.java @@ -8,9 +8,9 @@ import mage.constants.SubType; /** * @author TheElk801 */ -public final class PilotToken extends TokenImpl { +public final class PilotCrewToken extends TokenImpl { - public PilotToken() { + public PilotCrewToken() { super("Pilot Token", "1/1 colorless Pilot creature token with \"This creature crews Vehicles as though its power were 2 greater.\""); cardType.add(CardType.CREATURE); subtype.add(SubType.PILOT); @@ -19,11 +19,11 @@ public final class PilotToken extends TokenImpl { addAbility(new CrewIncreasedPowerAbility()); } - private PilotToken(final PilotToken token) { + private PilotCrewToken(final PilotCrewToken token) { super(token); } - public PilotToken copy() { - return new PilotToken(this); + public PilotCrewToken copy() { + return new PilotCrewToken(this); } } diff --git a/Mage/src/main/java/mage/game/permanent/token/PilotSaddleCrewToken.java b/Mage/src/main/java/mage/game/permanent/token/PilotSaddleCrewToken.java new file mode 100644 index 00000000000..e96c267aae3 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/PilotSaddleCrewToken.java @@ -0,0 +1,29 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.abilities.common.CrewSaddleIncreasedPowerAbility; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author TheElk801 + */ +public final class PilotSaddleCrewToken extends TokenImpl { + + public PilotSaddleCrewToken() { + super("Pilot Token", "1/1 colorless Pilot creature token with \"This creature saddles Mounts and crews Vehicles as though its power were 2 greater.\""); + cardType.add(CardType.CREATURE); + subtype.add(SubType.PILOT); + power = new MageInt(1); + toughness = new MageInt(1); + addAbility(new CrewSaddleIncreasedPowerAbility()); + } + + private PilotSaddleCrewToken(final PilotSaddleCrewToken token) { + super(token); + } + + public PilotSaddleCrewToken copy() { + return new PilotSaddleCrewToken(this); + } +}