This commit is contained in:
BetaSteward 2012-03-03 23:20:10 -05:00
parent 67fb349224
commit db02ea3aa6
9 changed files with 18 additions and 14 deletions

View file

@ -37,9 +37,11 @@ import mage.MageInt;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.SacrificeTargetEffect; import mage.abilities.effects.common.SacrificeTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.events.DamagedPlayerEvent; import mage.game.events.DamagedPlayerEvent;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.players.Player;
import mage.target.common.TargetCreaturePermanent; import mage.target.common.TargetCreaturePermanent;
/** /**
@ -91,9 +93,16 @@ class AshlingTheExtinguisherTriggeredAbility extends TriggeredAbilityImpl<Ashlin
if (event instanceof DamagedPlayerEvent) { if (event instanceof DamagedPlayerEvent) {
DamagedPlayerEvent damageEvent = (DamagedPlayerEvent)event; DamagedPlayerEvent damageEvent = (DamagedPlayerEvent)event;
if (damageEvent.isCombatDamage() && event.getSourceId().equals(this.getSourceId())) { if (damageEvent.isCombatDamage() && event.getSourceId().equals(this.getSourceId())) {
Player opponent = game.getPlayer(event.getPlayerId());
if (opponent != null) {
this.getTargets().clear();
FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getName() + " controls");
filter.getControllerId().add(opponent.getId());
this.addTarget(new TargetCreaturePermanent(filter));
return true; return true;
} }
} }
}
return false; return false;
} }

View file

@ -100,6 +100,7 @@ class LightwielderPaladinTriggeredAbility extends TriggeredAbilityImpl<Lightwiel
filter.setScopeColor(ComparisonScope.Any); filter.setScopeColor(ComparisonScope.Any);
filter.getControllerId().add(event.getTargetId()); filter.getControllerId().add(event.getTargetId());
filter.setNotController(false); filter.setNotController(false);
this.getTargets().clear();
this.addTarget(new TargetPermanent(filter)); this.addTarget(new TargetPermanent(filter));
return true; return true;
} }

View file

@ -89,6 +89,7 @@ class ArmWithAEtherTriggeredAbility extends TriggeredAbilityImpl<ArmWithAEtherTr
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
Player opponent = game.getPlayer(event.getPlayerId()); Player opponent = game.getPlayer(event.getPlayerId());
if (opponent != null && event.getType() == GameEvent.EventType.DAMAGED_PLAYER && event.getSourceId().equals(this.sourceId)) { if (opponent != null && event.getType() == GameEvent.EventType.DAMAGED_PLAYER && event.getSourceId().equals(this.sourceId)) {
this.getTargets().clear();
FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getName() + " controls"); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature " + opponent.getName() + " controls");
filter.getControllerId().add(opponent.getId()); filter.getControllerId().add(opponent.getId());
this.addTarget(new TargetCreaturePermanent(filter)); this.addTarget(new TargetCreaturePermanent(filter));

View file

@ -106,6 +106,7 @@ class BlindZealotTriggeredAbility extends TriggeredAbilityImpl<BlindZealotTrigge
sb.append(" to destroy target creature controlled by "); sb.append(" to destroy target creature controlled by ");
sb.append(game.getPlayer(event.getTargetId()).getName()).append("?"); sb.append(game.getPlayer(event.getTargetId()).getName()).append("?");
if (player.chooseUse(Outcome.DestroyPermanent, sb.toString(), game)) { if (player.chooseUse(Outcome.DestroyPermanent, sb.toString(), game)) {
this.getTargets().clear();
FilterCreaturePermanent filter = new FilterCreaturePermanent(); FilterCreaturePermanent filter = new FilterCreaturePermanent();
filter.getControllerId().add(event.getTargetId()); filter.getControllerId().add(event.getTargetId());
filter.setNotController(false); filter.setNotController(false);

View file

@ -100,6 +100,7 @@ class HammerOfRuinTriggeredAbility extends TriggeredAbilityImpl<HammerOfRuinTrig
Permanent p = game.getPermanent(event.getSourceId()); Permanent p = game.getPermanent(event.getSourceId());
if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { if (damageEvent.isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) {
FilterPermanent filter = (FilterPermanent)getTargets().get(0).getFilter(); FilterPermanent filter = (FilterPermanent)getTargets().get(0).getFilter();
filter.getControllerId().clear();
filter.getControllerId().add(event.getPlayerId()); filter.getControllerId().add(event.getPlayerId());
return true; return true;
} }

View file

@ -1,8 +1,6 @@
package org.mage.test.cards; package org.mage.test.cards;
import mage.Constants; import mage.Constants;
import mage.Constants.PhaseStep;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase; import org.mage.test.serverside.base.CardTestPlayerBase;

View file

@ -1,15 +1,6 @@
package org.mage.test.cards; package org.mage.test.cards;
import java.util.ArrayList;
import java.util.List;
import mage.Constants; import mage.Constants;
import mage.Constants.PhaseStep;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.target.common.TargetCreatureOrPlayer;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase; import org.mage.test.serverside.base.CardTestPlayerBase;

View file

@ -325,7 +325,7 @@ public final class Constants {
PutCreatureInPlay(true), PutCreatureInPlay(true),
PutCardInPlay(true), PutCardInPlay(true),
PutLandInPlay(true), PutLandInPlay(true),
GainControl(true), GainControl(false),
DrawCard(true), DrawCard(true),
Discard(false), Discard(false),
Sacrifice(false), Sacrifice(false),

View file

@ -885,8 +885,10 @@ public abstract class GameImpl<T extends GameImpl<T>> implements Game, Serializa
if (attachment != null && !(attachment.getSubtype().contains("Aura") || if (attachment != null && !(attachment.getSubtype().contains("Aura") ||
attachment.getSubtype().contains("Equipment") || attachment.getSubtype().contains("Equipment") ||
attachment.getSubtype().contains("Fortification"))) { attachment.getSubtype().contains("Fortification"))) {
if (perm.removeAttachment(attachment.getId(), this)) if (perm.removeAttachment(attachment.getId(), this)) {
somethingHappened = true; somethingHappened = true;
break;
}
} }
} }
} }