From bac1e6618d7f75f768e555001322c5004e100ee4 Mon Sep 17 00:00:00 2001 From: FenrisulfrX Date: Tue, 24 Mar 2015 23:05:09 -0300 Subject: [PATCH] Fixes Phyrexian Totem I thought phyrexian totem's ability should only trigger if what dealt damage to it was a creature however that's not the case, it should trigger only if Phyrexian Totem itself is a creature when it's dealt damage to. Also fix it to use checkInterveningIfClause() (please review this if it was done correctly) so it checks on resolution as well. Also fixes to wrongly credited cards. --- .../sets/invasion/PhyrexianBattleflies.java | 2 +- .../PhyrexianColossus.java | 2 +- .../PhyrexianProcessor.java | 2 +- .../PhyrexianTotem.java | 34 +++++++++++-------- .../seventhedition/PhyrexianColossus.java | 2 +- .../mage/sets/stronghold/HornetCannon.java | 2 +- .../mage/sets/timespiral/PhyrexianTotem.java | 2 +- .../sets/urzassaga/PhyrexianColossus.java | 2 +- 8 files changed, 27 insertions(+), 21 deletions(-) diff --git a/Mage.Sets/src/mage/sets/invasion/PhyrexianBattleflies.java b/Mage.Sets/src/mage/sets/invasion/PhyrexianBattleflies.java index 01eb3ec782a..05da6a066eb 100644 --- a/Mage.Sets/src/mage/sets/invasion/PhyrexianBattleflies.java +++ b/Mage.Sets/src/mage/sets/invasion/PhyrexianBattleflies.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianBattleflies extends mage.sets.phyrexiavsthecoalition.PhyrexianBattleflies { diff --git a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianColossus.java b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianColossus.java index 5a1c4447f58..3b2bf38102b 100644 --- a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianColossus.java +++ b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianColossus.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianColossus extends mage.sets.eighthedition.PhyrexianColossus { diff --git a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianProcessor.java b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianProcessor.java index 8ebbc69a09f..fccc17c09df 100644 --- a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianProcessor.java +++ b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianProcessor.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianProcessor extends mage.sets.urzassaga.PhyrexianProcessor { diff --git a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianTotem.java b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianTotem.java index b13f36a982a..eda48854570 100644 --- a/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianTotem.java +++ b/Mage.Sets/src/mage/sets/phyrexiavsthecoalition/PhyrexianTotem.java @@ -37,7 +37,6 @@ import mage.abilities.effects.common.SacrificeEffect; import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; import mage.abilities.keyword.TrampleAbility; import mage.abilities.mana.BlackManaAbility; -import mage.cards.Card; import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; @@ -46,8 +45,8 @@ import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; import mage.game.Game; import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; import mage.game.permanent.token.Token; -import mage.players.Player; import mage.target.targetpointer.FixedTarget; /** @@ -80,7 +79,7 @@ public class PhyrexianTotem extends CardImpl { private class PhyrexianTotemToken extends Token { PhyrexianTotemToken() { - super("", "a 5/5 black Horror artifact creature with trample"); + super("Horror", "a 5/5 black Horror artifact creature with trample"); cardType.add(CardType.ARTIFACT); cardType.add(CardType.CREATURE); color.setBlack(true); @@ -107,19 +106,26 @@ class PhyrexianTotemTriggeredAbility extends TriggeredAbilityImpl { return new PhyrexianTotemTriggeredAbility(this); } + @Override + public boolean checkInterveningIfClause(Game game) { + Permanent permanent = game.getPermanentOrLKIBattlefield(getSourceId()); + if (permanent != null) { + return permanent.getCardType().contains(CardType.CREATURE); + } + return false; + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.DAMAGED_CREATURE; + } + @Override public boolean checkTrigger(GameEvent event, Game game) { - if(event.getType() == GameEvent.EventType.DAMAGED_CREATURE && event.getTargetId().equals(this.sourceId)) { - UUID controller = game.getControllerId(event.getTargetId()); - if(controller != null) { - Player player = game.getPlayer(controller); - Card card = game.getCard(event.getSourceId()); - if(player != null && card.getCardType().contains(CardType.CREATURE)) { - getEffects().get(0).setTargetPointer(new FixedTarget(player.getId())); - ((SacrificeEffect) getEffects().get(0)).setAmount(new StaticValue(event.getAmount())); - return true; - } - } + if (event.getTargetId().equals(getSourceId())) { + getEffects().get(0).setTargetPointer(new FixedTarget(getControllerId())); + ((SacrificeEffect) getEffects().get(0)).setAmount(new StaticValue(event.getAmount())); + return true; } return false; } diff --git a/Mage.Sets/src/mage/sets/seventhedition/PhyrexianColossus.java b/Mage.Sets/src/mage/sets/seventhedition/PhyrexianColossus.java index 9addc69e441..94600aa1c7f 100644 --- a/Mage.Sets/src/mage/sets/seventhedition/PhyrexianColossus.java +++ b/Mage.Sets/src/mage/sets/seventhedition/PhyrexianColossus.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianColossus extends mage.sets.eighthedition.PhyrexianColossus { diff --git a/Mage.Sets/src/mage/sets/stronghold/HornetCannon.java b/Mage.Sets/src/mage/sets/stronghold/HornetCannon.java index d3cd1f90260..93bb1c1ab05 100644 --- a/Mage.Sets/src/mage/sets/stronghold/HornetCannon.java +++ b/Mage.Sets/src/mage/sets/stronghold/HornetCannon.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class HornetCannon extends mage.sets.phyrexiavsthecoalition.HornetCannon { diff --git a/Mage.Sets/src/mage/sets/timespiral/PhyrexianTotem.java b/Mage.Sets/src/mage/sets/timespiral/PhyrexianTotem.java index 0685233ff2e..9231c2a809b 100644 --- a/Mage.Sets/src/mage/sets/timespiral/PhyrexianTotem.java +++ b/Mage.Sets/src/mage/sets/timespiral/PhyrexianTotem.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianTotem extends mage.sets.phyrexiavsthecoalition.PhyrexianTotem { diff --git a/Mage.Sets/src/mage/sets/urzassaga/PhyrexianColossus.java b/Mage.Sets/src/mage/sets/urzassaga/PhyrexianColossus.java index 62dbf449733..90f42eab4ab 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/PhyrexianColossus.java +++ b/Mage.Sets/src/mage/sets/urzassaga/PhyrexianColossus.java @@ -31,7 +31,7 @@ import java.util.UUID; /** * - * @author anonymous + * @author FenrisulfrX */ public class PhyrexianColossus extends mage.sets.eighthedition.PhyrexianColossus {