mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
Fix Adventures exiling themselves before applying their effects (#10793)
* Rework adventures to exiles themself after applying other effects * fix duelist * finalize all adventures * apply review * add card name to error * fix remaining adventures * finalize the last adventures.
This commit is contained in:
parent
3ed0dd4f84
commit
fe165f1fd0
108 changed files with 322 additions and 18 deletions
|
|
@ -37,6 +37,8 @@ public final class AltarOfBhaal extends AdventureCard {
|
|||
// Bone Offering
|
||||
// Create a tapped 4/1 black Skeleton creature token with menace.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new SkeletonMenaceToken(), 1, true, false));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private AltarOfBhaal(final AltarOfBhaal card) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ public final class AmethystDragon extends AdventureCard {
|
|||
// Explosive Crystal deals 4 damage divided as you choose among any number of targets.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DamageMultiEffect(4));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTargetAmount(4));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private AmethystDragon(final AmethystDragon card) {
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ public final class AnimatingFaerie extends AdventureCard {
|
|||
CounterType.P1P1.createInstance(4)
|
||||
).setText(" "));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private AnimatingFaerie(final AnimatingFaerie card) {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ public final class AquaticAlchemist extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(
|
||||
StaticFilters.FILTER_CARD_INSTANT_OR_SORCERY_FROM_YOUR_GRAVEYARD
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private AquaticAlchemist(final AquaticAlchemist card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public final class ArdenvaleTactician extends AdventureCard {
|
|||
// Tap up to two target creatures.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new TapTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ArdenvaleTactician(final ArdenvaleTactician card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class BeanstalkGiant extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(
|
||||
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND))
|
||||
);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BeanstalkGiant(final BeanstalkGiant card) {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ public final class BeanstalkWurm extends AdventureCard {
|
|||
// Plant Beans
|
||||
// You may play an additional land this turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BeanstalkWurm(final BeanstalkWurm card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public final class BellowingBruiser extends AdventureCard {
|
|||
// Up to two target creatures can't block this turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CantBlockTargetEffect(Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BellowingBruiser(final BellowingBruiser card) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public final class BelunaGrandsquall extends AdventureCard {
|
|||
// Seek Thrills
|
||||
// Mill seven cards. Then put all cards that have an Adventure from among the milled cards into your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new SeekThrillsEffect());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BelunaGrandsquall(final BelunaGrandsquall card) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public final class BelunasGatekeeper extends AdventureCard {
|
|||
// Return target creature you don't control with mana value 3 or less to its owner's hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BelunasGatekeeper(final BelunasGatekeeper card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ public final class BesottedKnight extends AdventureCard {
|
|||
// Create a Royal Role token attached to target creature you control.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateRoleAttachedTargetEffect(RoleType.ROYAL));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BesottedKnight(final BesottedKnight card) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public final class BlessedHippogriff extends AdventureCard {
|
|||
// Target creature gains indestructible until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(IndestructibleAbility.getInstance()));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BlessedHippogriff(final BlessedHippogriff card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class BonecrusherGiant extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new DamageCantBePreventedEffect(Duration.EndOfTurn, "Damage can't be prevented this turn"));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BonecrusherGiant(final BonecrusherGiant card) {
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ public final class BrambleFamiliar extends AdventureCard {
|
|||
// Fetch Quest
|
||||
// Mill seven cards, then put a creature, enchantment, or land card from among cards milled this way onto the battlefield.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new FetchQuestEffect());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BrambleFamiliar(final BrambleFamiliar card) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public final class BrazenBorrower extends AdventureCard {
|
|||
// Return target nonland permanent an opponent controls to its owner's hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private BrazenBorrower(final BrazenBorrower card) {
|
||||
|
|
|
|||
|
|
@ -58,6 +58,8 @@ public final class CallousSellSword extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent().setTargetTag(1));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTarget(1, 1, filterSecondTarget).setTargetTag(2));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CallousSellSwordSacrificeFirstTargetEffect().concatBy("Then"));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private CallousSellSword(final CallousSellSword card) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public final class CheekyHouseMouse extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new CantBeBlockedTargetEffect(filter, Duration.EndOfTurn)
|
||||
.setText("it can't be blocked by creatures with power 3 or greater this turn"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private CheekyHouseMouse(final CheekyHouseMouse card) {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ public final class ColossalBadger extends AdventureCard {
|
|||
// Choose target creature. Mill four cards, then put a +1/+1 counter on that creature for each creature card milled this way.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ColossalBadgerEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ColossalBadger(final ColossalBadger card) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public final class ConceitedWitch extends AdventureCard {
|
|||
// Create a Wicked Role token attached to target creature you control.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateRoleAttachedTargetEffect(RoleType.WICKED));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ConceitedWitch(final ConceitedWitch card) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public final class CruelSomnophage extends AdventureCard {
|
|||
// Target player mills four cards.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new MillCardsTargetEffect(4));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private CruelSomnophage(final CruelSomnophage card) {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ public final class CrystalDragon extends AdventureCard {
|
|||
// Return target artifact, enchantment, or legendary card from your graveyard to your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private CrystalDragon(final CrystalDragon card) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ public final class CuriousPair extends AdventureCard {
|
|||
// Treats to Share
|
||||
// Create a Food token.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private CuriousPair(final CuriousPair card) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ public final class DecadentDragon extends AdventureCard {
|
|||
// Exile the top two cards of target opponent's library face down. You may look at and play those cards for as long as they remain exiled.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ExpensiveTasteEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetOpponent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private DecadentDragon(final DecadentDragon card) {
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ public final class DevouringSugarmaw extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new HumanToken()));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken())
|
||||
.setText("and a Food token"));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private DevouringSugarmaw(final DevouringSugarmaw card) {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ public final class DreadLinnorm extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new UntapTargetEffect().setText("and untap it"));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(HexproofAbility.getInstance()).setText("It gains hexproof until end of turn"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private DreadLinnorm(final DreadLinnorm card) {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ public final class ElusiveOtter extends AdventureCard {
|
|||
target.setMinNumberOfTargets(0);
|
||||
target.setMaxNumberOfTargets(Integer.MAX_VALUE);
|
||||
this.getSpellCard().getSpellAbility().addTarget(target);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ElusiveOtter(final ElusiveOtter card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public final class EmberethShieldbreaker extends AdventureCard {
|
|||
// Destroy target artifact.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetArtifactPermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private EmberethShieldbreaker(final EmberethShieldbreaker card) {
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ public final class EmeraldDragon extends AdventureCard {
|
|||
// Counter target activated or triggered ability from a noncreature source.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetActivatedOrTriggeredAbility(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private EmeraldDragon(final EmeraldDragon card) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ public final class Ettercap extends AdventureCard {
|
|||
// Destroy target creature with flying.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private Ettercap(final Ettercap card) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import mage.cards.AdventureCard;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
|
|
@ -46,6 +45,8 @@ public final class FaeOfWishes extends AdventureCard {
|
|||
// You may reveal a noncreature card you own from outside the game and put it into your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new WishEffect(StaticFilters.FILTER_CARD_A_NON_CREATURE));
|
||||
this.getSpellCard().getSpellAbility().addHint(OpenSideboardHint.instance);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FaeOfWishes(final FaeOfWishes card) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public final class FaerieGuidemother extends AdventureCard {
|
|||
FlyingAbility.getInstance(), Duration.EndOfTurn
|
||||
).setText("and gains flying until end of turn"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FaerieGuidemother(final FaerieGuidemother card) {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ public final class FangDragon extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new DamageAllEffect(
|
||||
1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FangDragon(final FangDragon card) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ public final class FellHorseman extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FellHorseman(final FellHorseman card) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ public final class FerociousWerefox extends AdventureCard {
|
|||
// Create a Monster Role token attached to target creature you control.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateRoleAttachedTargetEffect(RoleType.MONSTER));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FerociousWerefox(final FerociousWerefox card) {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ public final class FlaxenIntruder extends AdventureCard {
|
|||
// Welcome Home
|
||||
// Create three 2/2 green Bear creature tokens.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new BearToken(), 3));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FlaxenIntruder(final FlaxenIntruder card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public final class FoulmireKnight extends AdventureCard {
|
|||
// You draw a card and you lose 1 life.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("You draw a card"));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FoulmireKnight(final FoulmireKnight card) {
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ public final class FrolickingFamiliar extends AdventureCard {
|
|||
// Blow Off Steam deals 1 damage to any target.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DamageTargetEffect(1));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private FrolickingFamiliar(final FrolickingFamiliar card) {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,22 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.abilities.effects.common.TapTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.ComparisonType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -46,6 +47,8 @@ public final class GalvanicGiant extends AdventureCard {
|
|||
// Storm Reading
|
||||
// Draw four cards, then discard two cards.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DrawDiscardControllerEffect(4, 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GalvanicGiant(final GalvanicGiant card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ public final class GarenbrigCarver extends AdventureCard {
|
|||
// Target creature gets +2/+2 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GarenbrigCarver(final GarenbrigCarver card) {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
package mage.cards.g;
|
||||
|
||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersAttachedEffect;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
|
@ -39,6 +39,8 @@ public final class GhostLantern extends AdventureCard {
|
|||
// Return target creature card from your graveyard to your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GhostLantern(final GhostLantern card) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public final class GiantKiller extends AdventureCard {
|
|||
// Destroy target creature with power 4 or greater.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GiantKiller(final GiantKiller card) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public final class GingerbreadHunter extends AdventureCard {
|
|||
// Target creature gets -2/-2 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(-2, -2));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GingerbreadHunter(final GingerbreadHunter card) {
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ public final class GrabbyGiant extends AdventureCard {
|
|||
// That's Mine
|
||||
// Create a Treasure token.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new TreasureToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GrabbyGiant(final GrabbyGiant card) {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ public final class GraySlaad extends AdventureCard {
|
|||
// Entropic Decay
|
||||
// Mill four cards.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new MillCardsControllerEffect(4));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GraySlaad(final GraySlaad card) {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ public final class GuardianNaga extends AdventureCard {
|
|||
// Exile target artifact or enchantment.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ExileTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GuardianNaga(final GuardianNaga card) {
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ public final class GumdropPoisoner extends AdventureCard {
|
|||
// Tempt with Treats
|
||||
// Create a Food token.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private GumdropPoisoner(final GumdropPoisoner card) {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@ public final class HeartflameDuelist extends AdventureCard {
|
|||
// Heartflame Slash deals 3 damage to any target.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DamageTargetEffect(3));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HeartflameDuelist(final HeartflameDuelist card) {
|
||||
|
|
@ -54,4 +56,4 @@ public final class HeartflameDuelist extends AdventureCard {
|
|||
public HeartflameDuelist copy() {
|
||||
return new HeartflameDuelist(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,6 +59,8 @@ public final class HearthElemental extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new DiscardHandControllerEffect());
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)
|
||||
.concatBy(", then"));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HearthElemental(final HearthElemental card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class HollowScavenger extends AdventureCard {
|
|||
// Bakery Raid
|
||||
// Create a Food token.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new FoodToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HollowScavenger(final HollowScavenger card) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package mage.cards.h;
|
||||
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
|
||||
import mage.abilities.dynamicvalue.common.ManacostVariableValue;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
|
|
@ -10,13 +11,12 @@ import mage.abilities.keyword.EquipAbility;
|
|||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
import mage.game.permanent.token.SoldierToken;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.constants.Outcome;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
|
@ -41,6 +41,8 @@ public final class HornOfValhalla extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new SoldierToken(), ManacostVariableValue.REGULAR
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HornOfValhalla(final HornOfValhalla card) {
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ public final class HornedLochWhale extends AdventureCard {
|
|||
// The owner of target attacking creature you don't control puts it on the top or bottom of their library.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new PutOnTopOrBottomLibraryTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HornedLochWhale(final HornedLochWhale card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class HypnoticSprite extends AdventureCard {
|
|||
// Counter target spell with converted mana cost 3 or less.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetSpell(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private HypnoticSprite(final HypnoticSprite card) {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@ public final class ImodanesRecruiter extends AdventureCard {
|
|||
// Train Troops
|
||||
// Create two 2/2 white Knight creature tokens with vigilance.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new KnightToken(), 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ImodanesRecruiter(final ImodanesRecruiter card) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public final class IntrepidTrufflesnout extends AdventureCard {
|
|||
|
||||
public IntrepidTrufflesnout(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new CardType[]{CardType.INSTANT}, "{1}{G}", "Go Hog Wild", "{1}{G}");
|
||||
|
||||
|
||||
this.subtype.add(SubType.BOAR);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(1);
|
||||
|
|
@ -32,6 +32,8 @@ public final class IntrepidTrufflesnout extends AdventureCard {
|
|||
// Target creature gets +2/+2 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private IntrepidTrufflesnout(final IntrepidTrufflesnout card) {
|
||||
|
|
|
|||
|
|
@ -58,6 +58,8 @@ public final class KellanTheFaeBlooded extends AdventureCard {
|
|||
// Birthright Boon
|
||||
// Search your library for an Aura or Equipment card, reveal it, put it into your hand, then shuffle.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(auraOrEquipmentCard), true));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private KellanTheFaeBlooded(final KellanTheFaeBlooded card) {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ public final class LonesomeUnicorn extends AdventureCard {
|
|||
// Rider in Need
|
||||
// Create a 2/2 white Knight creature token with vigilance.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new KnightToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private LonesomeUnicorn(final LonesomeUnicorn card) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public final class LovestruckBeast extends AdventureCard {
|
|||
// Heart's Desire
|
||||
// Create a 1/1 white Human creature token.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new HumanToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private LovestruckBeast(final LovestruckBeast card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class MerchantOfTheVale extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new DoIfCostPaid(
|
||||
new DrawCardSourceControllerEffect(1), new DiscardCardCost()
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MerchantOfTheVale(final MerchantOfTheVale card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public final class MerfolkSecretkeeper extends AdventureCard {
|
|||
// Target player puts the top four cards of their library into their graveyard.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new MillCardsTargetEffect(4));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MerfolkSecretkeeper(final MerfolkSecretkeeper card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public final class MinecartDaredevil extends AdventureCard {
|
|||
// Target creature gets +2/+1 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 1));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MinecartDaredevil(final MinecartDaredevil card) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public final class MonsterManual extends AdventureCard {
|
|||
// Zoological Study
|
||||
// Mill five cards, then return a creature card milled this way to your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ZoologicalStudyEffect());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MonsterManual(final MonsterManual card) {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ public final class MoonshaePixie extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(
|
||||
0, 3, StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MoonshaePixie(final MoonshaePixie card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class MosswoodDreadknight extends AdventureCard {
|
|||
// You draw a card and you lose 1 life.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MosswoodDreadknight(final MosswoodDreadknight card) {
|
||||
|
|
|
|||
|
|
@ -4,14 +4,15 @@ import mage.MageInt;
|
|||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
|
||||
import mage.abilities.effects.common.PutOnLibrarySourceEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.target.common.TargetCreatureOrPlaneswalker;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.PutOnLibrarySourceEffect;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
|
|
@ -41,6 +42,8 @@ public final class MurderousRider extends AdventureCard {
|
|||
new LoseLifeSourceControllerEffect(2).setText("You lose 2 life.")
|
||||
);
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private MurderousRider(final MurderousRider card) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public final class OakhameRanger extends AdventureCard {
|
|||
// Bring Back
|
||||
// Create two 1/1 white Human creature tokens.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new HumanToken(), 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private OakhameRanger(final OakhameRanger card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public final class ObyrasAttendants extends AdventureCard {
|
|||
// Target creature gets -4/-0 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(-4, 0));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ObyrasAttendants(final ObyrasAttendants card) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public final class OrderOfMidnight extends AdventureCard {
|
|||
// Return target creature card from your graveyard to your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private OrderOfMidnight(final OrderOfMidnight card) {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ public final class PegasusGuardian extends AdventureCard {
|
|||
// Exile target creature you control, then return that card to the battlefield under its owner's control.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ExileThenReturnTargetEffect(false, true));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private PegasusGuardian(final PegasusGuardian card) {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ public final class PicklockPrankster extends AdventureCard {
|
|||
// Free the Fae
|
||||
// Mill four cards. Then put an instant, sorcery, or Faerie card from among the milled cards into your hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new MillThenPutInHandEffect(4, filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private PicklockPrankster(final PicklockPrankster card) {
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public final class PicnicRuiner extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addTarget(
|
||||
new TargetCreaturePermanentAmount(3, StaticFilters.FILTER_CONTROLLED_CREATURES)
|
||||
);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private PicnicRuiner(final PicnicRuiner card) {
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ public final class PollenShieldHare extends AdventureCard {
|
|||
);
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
this.getSpellCard().getSpellAbility().addHint(CreaturesYouControlHint.instance);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private PollenShieldHare(final PollenShieldHare card) {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ public final class QueenOfIce extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()
|
||||
.setText("It doesn't untap during its controller's next untap step"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private QueenOfIce(final QueenOfIce card) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ public final class QuestingDruid extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(
|
||||
new ExileTopXMayPlayUntilEndOfTurnEffect(2, false, Duration.UntilYourNextEndStep)
|
||||
);
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private QuestingDruid(final QuestingDruid card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class RatcatcherTrainee extends AdventureCard {
|
|||
// Pest Problem
|
||||
// Create two 1/1 black Rat creature tokens with "This creature can’t block."
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new RatCantBlockToken(), 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private RatcatcherTrainee(final RatcatcherTrainee card) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public final class RealmCloakedGiant extends AdventureCard {
|
|||
// Cast Off
|
||||
// Destroy all non-Giant creatures.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyAllEffect(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private RealmCloakedGiant(final RealmCloakedGiant card) {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ public final class ReaperOfNight extends AdventureCard {
|
|||
// Target opponent discards two cards.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DiscardTargetEffect(2));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetOpponent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ReaperOfNight(final ReaperOfNight card) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public final class RimrockKnight extends AdventureCard {
|
|||
// Target creature gets +2/+0 until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 0, Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private RimrockKnight(final RimrockKnight card) {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ public final class RosethornAcolyte extends AdventureCard {
|
|||
// Seasonal Ritual
|
||||
// Add one mana of any color.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new AddManaOfAnyColorEffect());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private RosethornAcolyte(final RosethornAcolyte card) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ public final class SapphireDragon extends AdventureCard {
|
|||
// Counter target noncreature spell.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_NON_CREATURE));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SapphireDragon(final SapphireDragon card) {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ public final class ScaldingViper extends AdventureCard {
|
|||
// Return target nonland permanent to its owner's hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetNonlandPermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ScaldingViper(final ScaldingViper card) {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ public final class SeaHag extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(1, 0).setText("up to two target creatures each get +1/+0 until end of turn"));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CantBeBlockedTargetEffect().setText("and can't be blocked this turn"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SeaHag(final SeaHag card) {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ public final class ShepherdOfTheFlock extends AdventureCard {
|
|||
// Return target permanent you control to its owner’s hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledPermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ShepherdOfTheFlock(final ShepherdOfTheFlock card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class ShroudedShepherd extends AdventureCard {
|
|||
-1, -1, Duration.EndOfTurn,
|
||||
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES, false
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ShroudedShepherd(final ShroudedShepherd card) {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ public final class SilverflameSquire extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new UntapTargetEffect().setText("Untap it"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SilverflameSquire(final SilverflameSquire card) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ public final class SmittenSwordmaster extends AdventureCard {
|
|||
// Curry Favor
|
||||
// You gain X life and each opponent loses X life, where X is the number of Knights you control.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CurryFavorEffect());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SmittenSwordmaster(final SmittenSwordmaster card) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public final class SpellscornCoven extends AdventureCard {
|
|||
// Return target spell to its owner's hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetSpell());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SpellscornCoven(final SpellscornCoven card) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public final class StormkeldVanguard extends AdventureCard {
|
|||
// Destroy target artifact or enchantment.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private StormkeldVanguard(final StormkeldVanguard card) {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ public final class SwordCoastSerpent extends AdventureCard {
|
|||
// Return target creature to its owner's hand.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private SwordCoastSerpent(final SwordCoastSerpent card) {
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ public final class TempestHart extends AdventureCard {
|
|||
// Scan the Clouds
|
||||
// Draw two cards, then discard two cards.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DrawDiscardControllerEffect(2, 2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TempestHart(final TempestHart card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class ThreadbindClique extends AdventureCard {
|
|||
// Destroy target tapped creature.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private ThreadbindClique(final ThreadbindClique card) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public final class TopazDragon extends AdventureCard {
|
|||
DeathtouchAbility.getInstance(), Duration.EndOfTurn,
|
||||
StaticFilters.FILTER_CONTROLLED_CREATURES
|
||||
));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TopazDragon(final TopazDragon card) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ public final class TuinvaleTreefolk extends AdventureCard {
|
|||
// Put two +1/+1 counters on target creature.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TuinvaleTreefolk(final TuinvaleTreefolk card) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ public final class TwiningTwins extends AdventureCard {
|
|||
// Exile target nontoken creature. Return it to the battlefield under its owner’s control at the beginning of the next end step.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new TwiningTwinsEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_NON_TOKEN));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TwiningTwins(final TwiningTwins card) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public final class TwoHandedAxe extends AdventureCard {
|
|||
// Target creature you control gains double strike until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance()));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TwoHandedAxe(final TwoHandedAxe card) {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ public final class TwoHeadedHunter extends AdventureCard {
|
|||
// Target creature gains double strike until end of turn.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance()));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private TwoHeadedHunter(final TwoHeadedHunter card) {
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ public final class VantressTransmuter extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addEffect(new CreateRoleAttachedTargetEffect(RoleType.CURSED)
|
||||
.setText("create a Cursed Role token attached to it"));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private VantressTransmuter(final VantressTransmuter card) {
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ public final class VirtueOfCourage extends AdventureCard {
|
|||
// Embereth Blaze deals 2 damage to any target.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new DamageTargetEffect(2));
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private VirtueOfCourage(final VirtueOfCourage card) {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ public final class VirtueOfKnowledge extends AdventureCard {
|
|||
// Copy target activated or triggered ability you control. You may choose new targets for the copy.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CopyTargetStackAbilityEffect());
|
||||
this.getSpellCard().getSpellAbility().addTarget(new TargetActivatedOrTriggeredAbility(filter));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private VirtueOfKnowledge(final VirtueOfKnowledge card) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ public final class VirtueOfLoyalty extends AdventureCard {
|
|||
// Ardenvale Fealty
|
||||
// Create a 2/2 white Knight creature token with vigilance.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new KnightToken()));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private VirtueOfLoyalty(final VirtueOfLoyalty card) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public final class VirtueOfPersistence extends AdventureCard {
|
|||
this.getSpellCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellCard().getSpellAbility().addEffect(new BoostTargetEffect(-3, -3, Duration.EndOfTurn));
|
||||
this.getSpellCard().getSpellAbility().addEffect(new GainLifeEffect(2));
|
||||
|
||||
this.finalizeAdventure();
|
||||
}
|
||||
|
||||
private VirtueOfPersistence(final VirtueOfPersistence card) {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue