From fe3e76b64eb8d8644989804b3de64b0ed2b6c7b5 Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Wed, 17 Nov 2010 03:49:34 +0000 Subject: [PATCH] fixes --- .../src/mage/sets/magic2011/InfernoTitan.java | 2 ++ .../src/mage/sets/magic2011/JacesErasure.java | 7 ++--- Mage.Sets/src/mage/sets/tenth/Juggernaut.java | 2 +- .../src/mage/sets/worldwake/SearingBlaze.java | 2 +- .../mage/abilities/ActivatedAbilityImpl.java | 2 +- .../abilities/effects/ContinuousEffect.java | 1 + .../effects/ContinuousEffectImpl.java | 5 ++++ .../abilities/effects/ContinuousEffects.java | 28 +++++++++++++------ 8 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Mage.Sets/src/mage/sets/magic2011/InfernoTitan.java b/Mage.Sets/src/mage/sets/magic2011/InfernoTitan.java index f1755f5fc3a..f1e9af23688 100644 --- a/Mage.Sets/src/mage/sets/magic2011/InfernoTitan.java +++ b/Mage.Sets/src/mage/sets/magic2011/InfernoTitan.java @@ -44,6 +44,7 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; +import mage.target.common.TargetCreatureOrPlayerAmount; /** * @@ -83,6 +84,7 @@ class InfernoTitanAbility extends TriggeredAbilityImpl { public InfernoTitanAbility() { super(Zone.BATTLEFIELD, new DamageMultiEffect(3), false); + this.addTarget(new TargetCreatureOrPlayerAmount(3)); } public InfernoTitanAbility(final InfernoTitanAbility ability) { diff --git a/Mage.Sets/src/mage/sets/magic2011/JacesErasure.java b/Mage.Sets/src/mage/sets/magic2011/JacesErasure.java index 79f5cde4099..a5e26df2a82 100644 --- a/Mage.Sets/src/mage/sets/magic2011/JacesErasure.java +++ b/Mage.Sets/src/mage/sets/magic2011/JacesErasure.java @@ -51,9 +51,7 @@ public class JacesErasure extends CardImpl { super(ownerId, 59, "Jace's Erasure", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); this.expansionSetCode = "M11"; this.color.setBlue(true); - Ability ability = new JacesErasureAbility(); - ability.addTarget(new TargetPlayer()); - this.addAbility(ability); + this.addAbility(new JacesErasureAbility()); } public JacesErasure(final JacesErasure card) { @@ -75,7 +73,8 @@ public class JacesErasure extends CardImpl { class JacesErasureAbility extends TriggeredAbilityImpl { public JacesErasureAbility() { - super(Zone.GRAVEYARD, new PutLibraryIntoGraveTargetEffect(1), true); + super(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(1), true); + this.addTarget(new TargetPlayer()); } public JacesErasureAbility(final JacesErasureAbility ability) { diff --git a/Mage.Sets/src/mage/sets/tenth/Juggernaut.java b/Mage.Sets/src/mage/sets/tenth/Juggernaut.java index 3bd4bb8ea7c..9f37b2116c5 100644 --- a/Mage.Sets/src/mage/sets/tenth/Juggernaut.java +++ b/Mage.Sets/src/mage/sets/tenth/Juggernaut.java @@ -82,7 +82,7 @@ class JuggernautAbility extends EvasionAbilityImpl { @Override public boolean canBlock(Permanent blocker, Game game) { - return !blocker.getAbilities().containsKey(DefenderAbility.getInstance().getId()); + return !blocker.getSubtype().contains("Wall"); } @Override diff --git a/Mage.Sets/src/mage/sets/worldwake/SearingBlaze.java b/Mage.Sets/src/mage/sets/worldwake/SearingBlaze.java index 1f97f5a6d60..c67881e64f0 100644 --- a/Mage.Sets/src/mage/sets/worldwake/SearingBlaze.java +++ b/Mage.Sets/src/mage/sets/worldwake/SearingBlaze.java @@ -148,6 +148,6 @@ class SearingBlazeEffect extends OneShotEffect { @Override public String getText(Ability source) { - return "{this} deals 1 damage to target player and 1 damage to target creature that player controls. \nLandfall — If you had a land enter the battlefield under your control this turn, {this} deals 3 damage to that player and 3 damage to that creature instead."; + return "{this} deals 1 damage to target player and 1 damage to target creature that player controls. \nLandfall - If you had a land enter the battlefield under your control this turn, {this} deals 3 damage to that player and 3 damage to that creature instead."; } } diff --git a/Mage/src/mage/abilities/ActivatedAbilityImpl.java b/Mage/src/mage/abilities/ActivatedAbilityImpl.java index ac6e7aa2fe1..9f139a59f5d 100644 --- a/Mage/src/mage/abilities/ActivatedAbilityImpl.java +++ b/Mage/src/mage/abilities/ActivatedAbilityImpl.java @@ -154,7 +154,7 @@ public abstract class ActivatedAbilityImpl> ex return true; else { Card card = (Card)game.getObject(this.sourceId); - if (card != null) + if (card != null && card.getZone() != Zone.BATTLEFIELD) return card.getOwnerId().equals(playerId); } return false; diff --git a/Mage/src/mage/abilities/effects/ContinuousEffect.java b/Mage/src/mage/abilities/effects/ContinuousEffect.java index 48ef5019fad..48f8d99d794 100644 --- a/Mage/src/mage/abilities/effects/ContinuousEffect.java +++ b/Mage/src/mage/abilities/effects/ContinuousEffect.java @@ -44,6 +44,7 @@ public interface ContinuousEffect> extends Effect< public boolean isUsed(); public Duration getDuration(); public Date getTimestamp(); + public void setTimestamp(); public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game); public boolean hasLayer(Layer layer); public void init(Ability source, Game game); diff --git a/Mage/src/mage/abilities/effects/ContinuousEffectImpl.java b/Mage/src/mage/abilities/effects/ContinuousEffectImpl.java index 47a5c7c9676..e661647ce40 100644 --- a/Mage/src/mage/abilities/effects/ContinuousEffectImpl.java +++ b/Mage/src/mage/abilities/effects/ContinuousEffectImpl.java @@ -87,6 +87,11 @@ public abstract class ContinuousEffectImpl> ex return timestamp; } + @Override + public void setTimestamp() { + this.timestamp = new Date(); + } + @Override public boolean hasLayer(Layer layer) { return this.layer == layer; diff --git a/Mage/src/mage/abilities/effects/ContinuousEffects.java b/Mage/src/mage/abilities/effects/ContinuousEffects.java index aef344c6c29..098cda75373 100644 --- a/Mage/src/mage/abilities/effects/ContinuousEffects.java +++ b/Mage/src/mage/abilities/effects/ContinuousEffects.java @@ -261,14 +261,26 @@ public class ContinuousEffects implements Serializable { } public void addEffect(ContinuousEffect effect, Ability source) { - if (effect instanceof ReplacementEffect) - replacementEffects.put((ReplacementEffect)effect, source); - else if (effect instanceof PreventionEffect) - preventionEffects.put((PreventionEffect)effect, source); - else if (effect instanceof AsThoughEffect) - asThoughEffects.put((AsThoughEffect) effect,source); - else - layeredEffects.put(effect, source); + if (effect instanceof ReplacementEffect) { + ReplacementEffect newEffect = (ReplacementEffect)effect.copy(); + newEffect.setTimestamp(); + replacementEffects.put(newEffect, source); + } + else if (effect instanceof PreventionEffect) { + PreventionEffect newEffect = (PreventionEffect)effect.copy(); + newEffect.setTimestamp(); + preventionEffects.put(newEffect, source); + } + else if (effect instanceof AsThoughEffect) { + AsThoughEffect newEffect = (AsThoughEffect)effect.copy(); + newEffect.setTimestamp(); + asThoughEffects.put(newEffect,source); + } + else { + ContinuousEffect newEffect = (ContinuousEffect)effect.copy(); + newEffect.setTimestamp(); + layeredEffects.put(newEffect, source); + } } }