Changed wrong zones and durations for characteristic-defining abilities of creatures (rule 604.3) that have also to be calculated if not on the battlefield.

This commit is contained in:
LevelX2 2013-03-19 01:41:57 +01:00
parent 6c21bf7ea6
commit e02ac0799e
23 changed files with 46 additions and 33 deletions

View file

@ -28,10 +28,15 @@
package mage.sets.futuresight;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Layer;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.SubLayer;
import mage.Constants.Zone;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousEffectImpl;
@ -40,7 +45,6 @@ import mage.cards.CardImpl;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
/**
@ -59,7 +63,7 @@ public class Tarmogoyf extends CardImpl<Tarmogoyf> {
this.toughness = new MageInt(1);
// Tarmogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1.
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new mage.sets.futuresight.TarmogoyfEffect()));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new TarmogoyfEffect()));
}
public Tarmogoyf(final Tarmogoyf card) {
@ -77,7 +81,7 @@ class TarmogoyfEffect extends ContinuousEffectImpl<TarmogoyfEffect> {
public TarmogoyfEffect() {
super(Constants.Duration.WhileOnBattlefield, Constants.Layer.PTChangingEffects_7, Constants.SubLayer.SetPT_7b, Constants.Outcome.BoostCreature);
super(Duration.EndOfGame, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature);
staticText = "{this}'s power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1";
}
@ -93,7 +97,7 @@ class TarmogoyfEffect extends ContinuousEffectImpl<TarmogoyfEffect> {
@Override
public boolean apply(Game game, Ability source) {
Permanent target = game.getPermanent(source.getSourceId());
MageObject target = game.getObject(source.getSourceId());
if (target != null) {
int number = 0;
Cards cards = new CardsImpl();

View file

@ -66,7 +66,7 @@ public class ConsumingAberration extends CardImpl<ConsumingAberration> {
this.toughness = new MageInt(0);
//Consuming Aberration's power and toughness are each equal to the number of cards in your opponents' graveyards.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInOpponentsGraveyardsCount(), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInOpponentsGraveyardsCount(), Constants.Duration.EndOfGame)));
//Whenever you cast a spell, each opponent reveals cards from the top of his or her library until he or she reveals a land card, then puts those cards into his or her graveyard.
this.addAbility(new SpellCastTriggeredAbility(new ConsumingAberrationEffect(), false));
}

View file

@ -64,7 +64,7 @@ public class Rubblehulk extends CardImpl<Rubblehulk> {
DynamicValue controlledLands = new PermanentsOnBattlefieldCount(filter);
// Rubblehulk's power and toughness are each equal to the number of lands you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(controlledLands, Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(controlledLands, Constants.Duration.EndOfGame)));
// Bloodrush - 1{R}{G}, Discard Rubblehulk: Target attacking creature gets +X/+X until end of turn, where X is the number of lands you control.
this.addAbility(new BloodrushAbility("{1}{R}{G}", new BoostTargetEffect(controlledLands,controlledLands, Duration.EndOfTurn)));

View file

@ -64,7 +64,7 @@ public class PestilenceRats extends CardImpl<PestilenceRats> {
this.toughness = new MageInt(3);
// Pestilence Rats's power is equal to the number of other Rats on the battlefield. (For example, as long as there are two other Rats on the battlefield, Pestilence Rats's power and toughness are 2/3.)
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(new PermanentsOnBattlefieldCount(filter), new StaticValue(0), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new BoostSourceEffect(new PermanentsOnBattlefieldCount(filter), new StaticValue(0), Duration.EndOfGame)));
}
public PestilenceRats(final PestilenceRats card) {

View file

@ -61,7 +61,7 @@ public class GeistHonoredMonk extends CardImpl<GeistHonoredMonk> {
this.addAbility(VigilanceAbility.getInstance());
// Geist-Honored Monk's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Constants.Duration.EndOfGame)));
// When Geist-Honored Monk enters the battlefield, put two 1/1 white Spirit creature tokens with flying onto the battlefield.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken(), 2)));

View file

@ -58,7 +58,7 @@ public class Sturmgeist extends CardImpl<Sturmgeist> {
this.addAbility(FlyingAbility.getInstance());
// Sturmgeist's power and toughness are each equal to the number of cards in your hand.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInControllerHandCount(), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInControllerHandCount(), Duration.EndOfGame)));
// Whenever Sturmgeist deals combat damage to a player, draw a card.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DrawCardControllerEffect(1), false));
}

View file

@ -68,7 +68,7 @@ public class SerpentOfTheEndlessSea extends CardImpl<SerpentOfTheEndlessSea> {
this.toughness = new MageInt(0);
// Serpent of the Endless Sea's power and toughness are each equal to the number of Islands you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
// Serpent of the Endless Sea can't attack unless defending player controls an Island.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SerpentOfTheEndlessSeaEffect()));
}

View file

@ -53,7 +53,7 @@ public class BeastOfBurden extends CardImpl<BeastOfBurden> {
this.toughness = new MageInt(0);
// Beast of Burden's power and toughness are each equal to the number of creatures on the battlefield.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterCreaturePermanent("creatures on the battlefield")), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterCreaturePermanent("creatures on the battlefield")), Constants.Duration.EndOfGame)));
}

View file

@ -28,9 +28,13 @@
package mage.sets.ninthedition;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Layer;
import mage.Constants.Outcome;
import mage.Constants.Rarity;
import mage.Constants.SubLayer;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
@ -59,7 +63,7 @@ public class SwarmOfRats extends CardImpl<SwarmOfRats> {
this.toughness = new MageInt(1);
// Swarm of Rats's power is equal to the number of Rats you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new SwarmOfRatsEffect()));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SwarmOfRatsEffect()));
}
public SwarmOfRats(final SwarmOfRats card) {
@ -82,7 +86,7 @@ class SwarmOfRatsEffect extends ContinuousEffectImpl<SwarmOfRatsEffect> {
private DynamicValue amount;
public SwarmOfRatsEffect() {
super(Constants.Duration.WhileOnBattlefield, Constants.Layer.PTChangingEffects_7, Constants.SubLayer.SetPT_7b, Constants.Outcome.BoostCreature);
super(Duration.EndOfGame, Layer.PTChangingEffects_7, SubLayer.SetPT_7b, Outcome.BoostCreature);
this.amount = new PermanentsOnBattlefieldCount(filter);
staticText = "{this}'s power is equal to the number of Rats you control";
}

View file

@ -66,7 +66,7 @@ public class Broodstar extends CardImpl<Broodstar> {
this.addAbility(new AffinityForArtifactsAbility());
this.addAbility(FlyingAbility.getInstance());
// Broodstar's power and toughness are each equal to the number of artifacts you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.EndOfGame)));
}
public Broodstar(final Broodstar card) {

View file

@ -85,7 +85,7 @@ public class PackRat extends CardImpl<PackRat> {
this.toughness = new MageInt(0);
// Pack Rat's power and toughness are each equal to the number of Rats you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.EndOfGame)));
// {2}{B}, Discard a card: Put a token onto the battlefield that's a copy of Pack Rat.
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new PackRatEffect(this), new ManaCostsImpl("{2}{B}"));
ability.addCost(new DiscardCardCost());

View file

@ -58,7 +58,7 @@ public class WayfaringTemple extends CardImpl<WayfaringTemple> {
this.toughness = new MageInt(0);
// Wayfaring Temple's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), Constants.Duration.EndOfCombat)));
// Whenever Wayfaring Temple deals combat damage to a player, populate. (Put a token onto the battlefield that's a copy of a creature token you control.)
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new PopulateEffect(), false));

View file

@ -31,6 +31,7 @@ import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
@ -58,7 +59,7 @@ public class SoulsurgeElemental extends CardImpl<SoulsurgeElemental> {
this.toughness = new MageInt(1);
this.addAbility(FirstStrikeAbility.getInstance());
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new BoostSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), new StaticValue(0), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new BoostSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()), new StaticValue(0), Duration.EndOfGame)));
}
public SoulsurgeElemental(final SoulsurgeElemental card) {

View file

@ -65,7 +65,7 @@ public class CrowdOfCinders extends CardImpl<CrowdOfCinders> {
this.addAbility(FearAbility.getInstance());
// Crowd of Cinders's power and toughness are each equal to the number of black permanents you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public CrowdOfCinders(final CrowdOfCinders card) {

View file

@ -65,7 +65,7 @@ public class DroveOfElves extends CardImpl<DroveOfElves> {
this.addAbility(HexproofAbility.getInstance());
// Drove of Elves's power and toughness are each equal to the number of green permanents you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public DroveOfElves(final DroveOfElves card) {

View file

@ -65,7 +65,7 @@ public class FaerieSwarm extends CardImpl<FaerieSwarm> {
this.addAbility(FlyingAbility.getInstance());
// Faerie Swarm's power and toughness are each equal to the number of blue permanents you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public FaerieSwarm(final FaerieSwarm card) {

View file

@ -65,7 +65,7 @@ public class KithkinRabble extends CardImpl<KithkinRabble> {
this.addAbility(VigilanceAbility.getInstance());
// Kithkin Rabble's power and toughness are each equal to the number of white permanents you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public KithkinRabble(final KithkinRabble card) {

View file

@ -66,7 +66,7 @@ public class MasterOfEtherium extends CardImpl<MasterOfEtherium> {
this.color.setBlue(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterCounted), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterCounted), Constants.Duration.EndOfGame)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Constants.Duration.WhileOnBattlefield, filterBoosted, true)));
}

View file

@ -28,9 +28,10 @@
package mage.sets.tenth;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
@ -60,7 +61,7 @@ public class MolimoMaroSorcerer extends CardImpl<MolimoMaroSorcerer> {
// Trample
this.addAbility(TrampleAbility.getInstance());
// Molimo, Maro-Sorcerer's power and toughness are each equal to the number of lands you control.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public MolimoMaroSorcerer(final MolimoMaroSorcerer card) {

View file

@ -31,7 +31,9 @@ import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
@ -55,8 +57,8 @@ public class Mortivore extends CardImpl<Mortivore> {
this.color.setBlack(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInAllGraveyardsCount(new FilterCreatureCard()), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ColoredManaCost(Constants.ColoredManaSymbol.B)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInAllGraveyardsCount(new FilterCreatureCard()), Duration.EndOfGame)));
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ColoredManaCost(Constants.ColoredManaSymbol.B)));
}
public Mortivore(final Mortivore card) {

View file

@ -29,9 +29,10 @@ package mage.sets.tenth;
import java.util.UUID;
import mage.Constants;
import mage.Constants.CardType;
import mage.Constants.Duration;
import mage.Constants.Rarity;
import mage.Constants.Zone;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
@ -62,7 +63,7 @@ public class Nightmare extends CardImpl<Nightmare> {
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
}
public Nightmare(final Nightmare card) {

View file

@ -53,7 +53,7 @@ public class ScionOfTheWild extends CardImpl<ScionOfTheWild> {
this.color.setGreen(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Constants.Duration.EndOfGame)));
}
public ScionOfTheWild(final ScionOfTheWild card) {

View file

@ -60,7 +60,7 @@ public class MultaniMaroSorcerer extends CardImpl<MultaniMaroSorcerer> {
// Shroud
this.addAbility(ShroudAbility.getInstance());
// Multani, Maro-Sorcerer's power and toughness are each equal to the total number of cards in all players' hands.
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInHandCount(), Constants.Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Constants.Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInHandCount(), Constants.Duration.EndOfGame)));
}
public MultaniMaroSorcerer(final MultaniMaroSorcerer card) {