- Fixed ChangeZone triggers not working on cards moving to hand or library themselves.

This commit is contained in:
Sloth
2012-04-19 15:07:23 +00:00
parent 9d2df7922c
commit c241e93b87
2 changed files with 10 additions and 2 deletions

View File

@@ -605,7 +605,9 @@ public class GameAction {
AllZone.getTriggerHandler().clearSuppression(TriggerType.Transformed);
}
Card lastKnownInfo = c;
if ((p != null) && p.is(ZoneType.Battlefield)) {
lastKnownInfo = CardUtil.getLKICopy(c);
c = AllZone.getCardFactory().copyCard(c);
}
@@ -618,13 +620,13 @@ public class GameAction {
library.add(c, libPosition);
final HashMap<String, Object> runParams = new HashMap<String, Object>();
runParams.put("Card", c);
runParams.put("Card", lastKnownInfo);
if (p != null) {
runParams.put("Origin", p.getZoneType().name());
} else {
runParams.put("Origin", null);
}
runParams.put("Destination", ZoneType.Library);
runParams.put("Destination", ZoneType.Library.name());
AllZone.getTriggerHandler().runTrigger(TriggerType.ChangesZone, runParams);
Player owner = p.getPlayer();

View File

@@ -307,6 +307,12 @@ public class TriggerHandler {
// AP
allCards = playerAP.getCardsIn(ZoneType.StaticAbilitiesSourceZones);
allCards.addAll(AllZoneUtil.getCardsIn(ZoneType.Stack).getController(playerAP));
if (runParams.containsKey("Card")) {
Card card = (Card) runParams.get("Card");
if (!allCards.contains(card)) {
allCards.add(card);
}
}
for (final Card c : allCards) {
for (final Trigger t : c.getTriggers()) {
if (!t.isStatic()) {