From f0d9988e9b0d63a501199cf8d19c40d010165b40 Mon Sep 17 00:00:00 2001 From: Jeff <jeff@delmarus.com> Date: Fri, 14 Jul 2017 11:39:11 -0500 Subject: [PATCH] - Fixed bug #3656 --- .../mage/watchers/common/LandfallWatcher.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java b/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java index f006cef8a8..e5b141f2c6 100644 --- a/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java @@ -3,7 +3,6 @@ package mage.watchers.common; import java.util.HashSet; import java.util.Set; import java.util.UUID; -import mage.constants.CardType; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; @@ -16,7 +15,8 @@ import mage.watchers.Watcher; */ public class LandfallWatcher extends Watcher { - final Set<UUID> playerPlayedLand = new HashSet<>(); + final Set<UUID> playerPlayedLand = new HashSet<>(); // player that played land + final Set<UUID> landPlayed = new HashSet<>(); // land played public LandfallWatcher() { super(LandfallWatcher.class.getSimpleName(), WatcherScope.GAME); @@ -25,6 +25,7 @@ public class LandfallWatcher extends Watcher { public LandfallWatcher(final LandfallWatcher watcher) { super(watcher); playerPlayedLand.addAll(watcher.playerPlayedLand); + landPlayed.addAll(watcher.landPlayed); } @Override @@ -34,10 +35,13 @@ public class LandfallWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD) { + if (event.getType() == GameEvent.EventType.LAND_PLAYED) { Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); - if (permanent != null && permanent.isLand() && !playerPlayedLand.contains(event.getPlayerId())) { + if (permanent != null + && permanent.isLand() + && !playerPlayedLand.contains(event.getPlayerId())) { playerPlayedLand.add(event.getPlayerId()); + landPlayed.add(event.getTargetId()); } } } @@ -45,10 +49,15 @@ public class LandfallWatcher extends Watcher { @Override public void reset() { playerPlayedLand.clear(); + landPlayed.clear(); super.reset(); } public boolean landPlayed(UUID playerId) { return playerPlayedLand.contains(playerId); } + + public boolean wasLandPlayed(UUID landId) { + return landPlayed.contains(landId); + } }