mirror of
https://github.com/correl/mage.git
synced 2024-12-26 11:09:27 +00:00
[GTC] Fix Wildwood Rebirth and clean up various other cards
This commit is contained in:
parent
0f0fc3e8b2
commit
587df5db16
12 changed files with 38 additions and 92 deletions
|
@ -33,7 +33,7 @@ public final class Agoraphobia extends CardImpl {
|
|||
// Enchant creature
|
||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.UnboostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget.getTargetName());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -23,7 +23,7 @@ public final class BiomassMutation extends CardImpl {
|
|||
|
||||
// Creatures you control have base power and toughness X/X until end of turn.
|
||||
DynamicValue variableMana = ManacostVariableValue.REGULAR;
|
||||
this.getSpellAbility().addEffect(new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control"), true));
|
||||
this.getSpellAbility().addEffect(new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES, true));
|
||||
}
|
||||
|
||||
private BiomassMutation(final BiomassMutation card) {
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterLandCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
import mage.target.common.TargetAnyTarget;
|
||||
|
||||
|
@ -39,10 +39,10 @@ public final class BorborygmosEnraged extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
//Whenever Borborygmous Enraged deals combat damage to a player, reveal the top three cards of your library. Put all land cards revealed this way into your hand and the rest into your graveyard.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new RevealLibraryPutIntoHandEffect(3, new FilterLandCard(), Zone.GRAVEYARD), false, false));
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new RevealLibraryPutIntoHandEffect(3, StaticFilters.FILTER_CARD_LANDS, Zone.GRAVEYARD), false, false));
|
||||
|
||||
//Discard a land card: Borborygmos Enraged deals 3 damage to any target
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new DiscardTargetCost(new TargetCardInHand(new FilterLandCard())));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new DiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_LAND_A)));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -11,10 +10,9 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
@ -25,13 +23,10 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class CourtStreetDenizen extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterCreaturePermanent("another white creature");
|
||||
private static final FilterCreaturePermanent filterOpponentCreature = new FilterCreaturePermanent("creature an opponent controls");
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another white creature");
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(new ColorPredicate(ObjectColor.WHITE));
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
filterOpponentCreature.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
}
|
||||
public CourtStreetDenizen(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}");
|
||||
|
@ -42,8 +37,8 @@ public final class CourtStreetDenizen extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Whenever another white creature enters the battlefield under your control, tap target creature an opponent controls.
|
||||
Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new TapTargetEffect(),filter,false,null, true);
|
||||
ability.addTarget(new TargetCreaturePermanent(filterOpponentCreature));
|
||||
Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new TapTargetEffect(), filter, false, null, true);
|
||||
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.common.SimpleEvasionAbility;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
@ -20,6 +18,12 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class DeathcultRogue extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by Rogues");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(SubType.ROGUE.getPredicate()));
|
||||
}
|
||||
|
||||
public DeathcultRogue(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U/B}{U/B}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
|
@ -29,7 +33,7 @@ public final class DeathcultRogue extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Deathcult Rogue can't be blocked except by Rogues.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DeathcultRogueRestrictionEffect()));
|
||||
this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
|
||||
|
||||
}
|
||||
|
||||
|
@ -42,30 +46,3 @@ public final class DeathcultRogue extends CardImpl {
|
|||
return new DeathcultRogue(this);
|
||||
}
|
||||
}
|
||||
|
||||
class DeathcultRogueRestrictionEffect extends RestrictionEffect {
|
||||
|
||||
public DeathcultRogueRestrictionEffect() {
|
||||
super(Duration.WhileOnBattlefield);
|
||||
staticText = "Deathcult Rogue can't be blocked except by Rogues";
|
||||
}
|
||||
|
||||
public DeathcultRogueRestrictionEffect(final DeathcultRogueRestrictionEffect effect) {
|
||||
super(effect);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applies(Permanent permanent, Ability source, Game game) {
|
||||
return permanent.getId().equals(source.getSourceId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) {
|
||||
return blocker.hasSubtype(SubType.ROGUE, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeathcultRogueRestrictionEffect copy() {
|
||||
return new DeathcultRogueRestrictionEffect(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -11,10 +10,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
|
||||
|
@ -24,13 +21,12 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
|
|||
*/
|
||||
public final class FoundryStreetDenizen extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterCreaturePermanent("another red creature");
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another red creature");
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
filter.add(new ColorPredicate(ObjectColor.RED));
|
||||
}
|
||||
|
||||
|
||||
public FoundryStreetDenizen(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}");
|
||||
this.subtype.add(SubType.GOBLIN);
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.h;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -9,7 +8,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -18,23 +17,15 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class HandsOfBinding extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
|
||||
static{
|
||||
filter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
}
|
||||
|
||||
public HandsOfBinding (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{U}");
|
||||
|
||||
|
||||
//Tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step.
|
||||
this.getSpellAbility().addEffect(new TapTargetEffect());
|
||||
this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
//Cipher
|
||||
this.getSpellAbility().addEffect(new CipherEffect());
|
||||
|
||||
|
||||
}
|
||||
|
||||
private HandsOfBinding(final HandsOfBinding card) {
|
||||
|
@ -42,7 +33,7 @@ public final class HandsOfBinding extends CardImpl {
|
|||
}
|
||||
|
||||
@Override
|
||||
public HandsOfBinding copy() {
|
||||
public HandsOfBinding copy() {
|
||||
return new HandsOfBinding(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.i;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -26,8 +25,8 @@ public final class IvyLaneDenizen extends CardImpl {
|
|||
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another green creature");
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.GREEN));
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(new ColorPredicate(ObjectColor.GREEN));
|
||||
}
|
||||
|
||||
public IvyLaneDenizen(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -12,7 +11,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardIdPredicate;
|
||||
|
@ -28,19 +27,12 @@ import mage.target.targetpointer.FixedTarget;
|
|||
*/
|
||||
public final class MarkForDeath extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
|
||||
|
||||
static {
|
||||
filter.add(TargetController.OPPONENT.getControllerPredicate());
|
||||
}
|
||||
|
||||
public MarkForDeath(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}");
|
||||
|
||||
|
||||
// Target creature an opponent controls blocks this turn if able. Untap that creature. Other creatures that player controls can't block this turn.
|
||||
this.getSpellAbility().addEffect(new MarkForDeathEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
}
|
||||
|
||||
private MarkForDeath(final MarkForDeath card) {
|
||||
|
@ -89,4 +81,4 @@ class MarkForDeathEffect extends OneShotEffect {
|
|||
public MarkForDeathEffect copy() {
|
||||
return new MarkForDeathEffect(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -11,9 +10,8 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.ColorPredicate;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.target.TargetPlayer;
|
||||
|
@ -24,12 +22,11 @@ import mage.target.TargetPlayer;
|
|||
*/
|
||||
public final class SagesRowDenizen extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another blue creature");
|
||||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another blue creature");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.BLUE));
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(TargetController.YOU.getControllerPredicate());
|
||||
filter.add(new ColorPredicate(ObjectColor.BLUE));
|
||||
}
|
||||
|
||||
public SagesRowDenizen(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -28,8 +27,8 @@ public final class ShadowAlleyDenizen extends CardImpl {
|
|||
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another black creature");
|
||||
|
||||
static {
|
||||
filter.add(new ColorPredicate(ObjectColor.BLACK));
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter.add(new ColorPredicate(ObjectColor.BLACK));
|
||||
}
|
||||
|
||||
public ShadowAlleyDenizen(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
package mage.cards.w;
|
||||
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -19,7 +19,7 @@ public final class WildwoodRebirth extends CardImpl {
|
|||
|
||||
// Return target creature card from your graveyard to your hand.
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard());
|
||||
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
}
|
||||
|
||||
private WildwoodRebirth(final WildwoodRebirth card) {
|
||||
|
|
Loading…
Reference in a new issue