diff --git a/Mage/src/main/java/mage/game/GameImpl.java b/Mage/src/main/java/mage/game/GameImpl.java index 3594cf3062f..7c6fb4370fc 100644 --- a/Mage/src/main/java/mage/game/GameImpl.java +++ b/Mage/src/main/java/mage/game/GameImpl.java @@ -1025,8 +1025,14 @@ public abstract class GameImpl implements Game, Serializable { } public void initPlayerDefaultWatchers(UUID playerId) { - getState().addWatcher(new PlayerDamagedBySourceWatcher(playerId)); - getState().addWatcher(new BloodthirstWatcher(playerId)); + PlayerDamagedBySourceWatcher playerDamagedBySourceWatcher = new PlayerDamagedBySourceWatcher(); + playerDamagedBySourceWatcher.setControllerId(playerId); + + getState().addWatcher(playerDamagedBySourceWatcher); + + BloodthirstWatcher bloodthirstWatcher = new BloodthirstWatcher(); + bloodthirstWatcher.setControllerId(playerId); + getState().addWatcher(bloodthirstWatcher); } protected void sendStartMessage(Player choosingPlayer, Player startingPlayer) { diff --git a/Mage/src/main/java/mage/watchers/Watcher.java b/Mage/src/main/java/mage/watchers/Watcher.java index af3ceddd727..f954166119e 100644 --- a/Mage/src/main/java/mage/watchers/Watcher.java +++ b/Mage/src/main/java/mage/watchers/Watcher.java @@ -1,17 +1,20 @@ package mage.watchers; -import java.io.Serializable; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.util.UUID; +import mage.Mana; import mage.constants.WatcherScope; import mage.game.Game; +import mage.game.turn.Step; import mage.game.events.GameEvent; import org.apache.log4j.Logger; +import java.io.Serializable; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.util.*; + /** - * * watches for certain game events to occur and flags condition * * @author BetaSteward_at_googlemail.com @@ -26,7 +29,6 @@ public abstract class Watcher implements Serializable { protected final WatcherScope scope; - public Watcher(WatcherScope scope) { this.scope = scope; } @@ -62,8 +64,8 @@ public abstract class Watcher implements Serializable { return controllerId + getBasicKey(); case CARD: return sourceId + getBasicKey(); - default: - return getBasicKey(); + default: + return getBasicKey(); } } @@ -75,18 +77,61 @@ public abstract class Watcher implements Serializable { condition = false; } - protected String getBasicKey(){ + protected String getBasicKey() { return getClass().getSimpleName(); } public abstract void watch(GameEvent event, Game game); - public T copy(){ + public T copy() { try { - Constructor constructor = this.getClass().getDeclaredConstructor(getClass()); + List constructors = Arrays.asList(this.getClass().getConstructors()); + if (constructors.size() > 1) { + logger.error(getClass().getSimpleName() + " has multiple constructors"); + return null; + } + + Constructor constructor = (Constructor) constructors.get(0); + if (constructor.getParameterCount() > 0) { + logger.error(getClass().getSimpleName() + " constructor has arguments, should be 0 and inject the parameters by setters"); + return null; + } constructor.setAccessible(true); - return (T) constructor.newInstance(this); - } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { + T watcher = (T) constructor.newInstance(); + List allFields = new ArrayList<>(); + allFields.addAll(Arrays.asList(getClass().getDeclaredFields())); + allFields.addAll(Arrays.asList(getClass().getSuperclass().getDeclaredFields())); + for (Field field : allFields) { + field.setAccessible(true); + if (field.getType().isPrimitive()) { + field.set(watcher, field.get(this)); + } + else if(field.getType() == Step.class){ + field.set(watcher, field.get(this)); + } + else if (field.getType() == Mana.class) { + field.set(watcher, field.get(this)); + } else if (field.getType() == UUID.class) { + field.set(watcher, field.get(this)); + } else if (field.getType().isEnum()) { + field.set(watcher, field.get(this)); + } else if (field.getType() == Set.class) { + ((Set) field.get(watcher)).clear(); + ((Set) field.get(watcher)).addAll((Set) field.get(this)); + } else if (field.getType() == Map.class) { + ((Map) field.get(watcher)).clear(); + ((Map) field.get(watcher)).putAll((Map) field.get(this)); + } else if (field.getType() == List.class) { + ((List) field.get(watcher)).clear(); + ((List) field.get(watcher)).addAll((List) field.get(this)); + } else { + if (field.getType() != Logger.class) { + logger.error(field.getType() + " can not be copied"); + } + } + } + return watcher; + } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { logger.error("Can't copy watcher: " + e.getMessage(), e); } return null; diff --git a/Mage/src/main/java/mage/watchers/common/AmountOfDamageAPlayerReceivedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/AmountOfDamageAPlayerReceivedThisTurnWatcher.java index c7e63fc85fe..26dda05ed90 100644 --- a/Mage/src/main/java/mage/watchers/common/AmountOfDamageAPlayerReceivedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AmountOfDamageAPlayerReceivedThisTurnWatcher.java @@ -24,13 +24,6 @@ public class AmountOfDamageAPlayerReceivedThisTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public AmountOfDamageAPlayerReceivedThisTurnWatcher(final AmountOfDamageAPlayerReceivedThisTurnWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfDamageReceivedThisTurn.entrySet()) { - amountOfDamageReceivedThisTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.DAMAGED_PLAYER) { @@ -50,9 +43,4 @@ public class AmountOfDamageAPlayerReceivedThisTurnWatcher extends Watcher { public void reset() { amountOfDamageReceivedThisTurn.clear(); } - - @Override - public AmountOfDamageAPlayerReceivedThisTurnWatcher copy() { - return new AmountOfDamageAPlayerReceivedThisTurnWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/AttackedLastTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/AttackedLastTurnWatcher.java index c6af696380d..93a26edd102 100644 --- a/Mage/src/main/java/mage/watchers/common/AttackedLastTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AttackedLastTurnWatcher.java @@ -27,18 +27,6 @@ public class AttackedLastTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public AttackedLastTurnWatcher(final AttackedLastTurnWatcher watcher) { - super(watcher); - for (Entry> entry : watcher.attackedLastTurnCreatures.entrySet()) { - Set allAttackersCopy = new HashSet<>(entry.getValue()); - attackedLastTurnCreatures.put(entry.getKey(), allAttackersCopy); - } - for (Entry> entry : watcher.attackedThisTurnCreatures.entrySet()) { - Set allAttackersCopy = new HashSet<>(entry.getValue()); - attackedThisTurnCreatures.put(entry.getKey(), allAttackersCopy); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGINNING_PHASE_PRE) { @@ -79,9 +67,4 @@ public class AttackedLastTurnWatcher extends Watcher { return new HashSet<>(); } - @Override - public AttackedLastTurnWatcher copy() { - return new AttackedLastTurnWatcher(this); - } - } diff --git a/Mage/src/main/java/mage/watchers/common/AttackedOrBlockedThisCombatWatcher.java b/Mage/src/main/java/mage/watchers/common/AttackedOrBlockedThisCombatWatcher.java index 0af8f15aa7a..7a9bf240a90 100644 --- a/Mage/src/main/java/mage/watchers/common/AttackedOrBlockedThisCombatWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AttackedOrBlockedThisCombatWatcher.java @@ -26,12 +26,6 @@ public class AttackedOrBlockedThisCombatWatcher extends Watcher { super(WatcherScope.GAME); } - public AttackedOrBlockedThisCombatWatcher(final AttackedOrBlockedThisCombatWatcher watcher) { - super(watcher); - this.getAttackedThisTurnCreatures().addAll(watcher.getAttackedThisTurnCreatures()); - this.getBlockedThisTurnCreatures().addAll(watcher.getBlockedThisTurnCreatures()); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGIN_COMBAT_STEP_PRE) { @@ -53,9 +47,4 @@ public class AttackedOrBlockedThisCombatWatcher extends Watcher { return this.blockedThisTurnCreatures; } - @Override - public AttackedOrBlockedThisCombatWatcher copy() { - return new AttackedOrBlockedThisCombatWatcher(this); - } - } diff --git a/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java index adedcff2cc5..72ea6cfae37 100644 --- a/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/AttackedThisTurnWatcher.java @@ -25,12 +25,6 @@ public class AttackedThisTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public AttackedThisTurnWatcher(final AttackedThisTurnWatcher watcher) { - super(watcher); - this.attackedThisTurnCreatures.addAll(watcher.attackedThisTurnCreatures); - this.attackedThisTurnCreaturesCounts.putAll(watcher.attackedThisTurnCreaturesCounts); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED) { @@ -58,11 +52,6 @@ public class AttackedThisTurnWatcher extends Watcher { return false; } - @Override - public AttackedThisTurnWatcher copy() { - return new AttackedThisTurnWatcher(this); - } - @Override public void reset() { super.reset(); diff --git a/Mage/src/main/java/mage/watchers/common/BlockedAttackerWatcher.java b/Mage/src/main/java/mage/watchers/common/BlockedAttackerWatcher.java index 57506bf6832..7d70b8f10ed 100644 --- a/Mage/src/main/java/mage/watchers/common/BlockedAttackerWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/BlockedAttackerWatcher.java @@ -25,20 +25,6 @@ public class BlockedAttackerWatcher extends Watcher { super(WatcherScope.GAME); } - public BlockedAttackerWatcher(final BlockedAttackerWatcher watcher) { - super(watcher); - for (MageObjectReference mageObjectReference : watcher.blockData.keySet()) { - Set blockedAttackers = new HashSet<>(); - blockedAttackers.addAll(watcher.blockData.get(mageObjectReference)); - blockData.put(mageObjectReference, blockedAttackers); - } - } - -// @Override -// public BlockedAttackerWatcher copy() { -// return new BlockedAttackerWatcher(this); -// } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.BLOCKER_DECLARED) { diff --git a/Mage/src/main/java/mage/watchers/common/BlockedByOnlyOneCreatureThisCombatWatcher.java b/Mage/src/main/java/mage/watchers/common/BlockedByOnlyOneCreatureThisCombatWatcher.java index b058d6136ea..901ef40009e 100644 --- a/Mage/src/main/java/mage/watchers/common/BlockedByOnlyOneCreatureThisCombatWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/BlockedByOnlyOneCreatureThisCombatWatcher.java @@ -21,11 +21,6 @@ public class BlockedByOnlyOneCreatureThisCombatWatcher extends Watcher { super(WatcherScope.GAME); } - public BlockedByOnlyOneCreatureThisCombatWatcher(final BlockedByOnlyOneCreatureThisCombatWatcher watcher) { - super(watcher); - this.blockedByOneCreature.putAll(watcher.blockedByOneCreature); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGIN_COMBAT_STEP_PRE) { @@ -64,8 +59,4 @@ public class BlockedByOnlyOneCreatureThisCombatWatcher extends Watcher { return null; } - @Override - public BlockedByOnlyOneCreatureThisCombatWatcher copy() { - return new BlockedByOnlyOneCreatureThisCombatWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/BlockedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/BlockedThisTurnWatcher.java index 6d8b27ad052..70b08e29c3d 100644 --- a/Mage/src/main/java/mage/watchers/common/BlockedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/BlockedThisTurnWatcher.java @@ -16,21 +16,10 @@ import java.util.Set; */ public class BlockedThisTurnWatcher extends Watcher { - private final Set blockedThisTurnCreatures; + private final Set blockedThisTurnCreatures = new HashSet<>(); public BlockedThisTurnWatcher() { super(WatcherScope.GAME); - blockedThisTurnCreatures = new HashSet<>(); - } - - public BlockedThisTurnWatcher(final BlockedThisTurnWatcher watcher) { - super(watcher); - blockedThisTurnCreatures = new HashSet<>(watcher.blockedThisTurnCreatures); - } - - @Override - public Watcher copy() { - return new BlockedThisTurnWatcher(this); } @Override diff --git a/Mage/src/main/java/mage/watchers/common/BloodthirstWatcher.java b/Mage/src/main/java/mage/watchers/common/BloodthirstWatcher.java index b27a6a62473..b70f17779b0 100644 --- a/Mage/src/main/java/mage/watchers/common/BloodthirstWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/BloodthirstWatcher.java @@ -15,14 +15,10 @@ import java.util.UUID; * @author Loki */ public class BloodthirstWatcher extends Watcher { - public BloodthirstWatcher(UUID controllerId) { + public BloodthirstWatcher() { super(WatcherScope.PLAYER); - this.controllerId = controllerId; } - public BloodthirstWatcher(final BloodthirstWatcher watcher) { - super(watcher); - } @Override public void watch(GameEvent event, Game game) { diff --git a/Mage/src/main/java/mage/watchers/common/CardsAmountDrawnThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsAmountDrawnThisTurnWatcher.java index 71c1a703060..60be9cbbbe7 100644 --- a/Mage/src/main/java/mage/watchers/common/CardsAmountDrawnThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CardsAmountDrawnThisTurnWatcher.java @@ -25,10 +25,6 @@ public class CardsAmountDrawnThisTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public CardsAmountDrawnThisTurnWatcher(final CardsAmountDrawnThisTurnWatcher watcher) { - super(watcher); - amountOfCardsDrawnThisTurn.putAll(watcher.amountOfCardsDrawnThisTurn); - } @Override public void watch(GameEvent event, Game game) { @@ -61,9 +57,4 @@ public class CardsAmountDrawnThisTurnWatcher extends Watcher { public int getAmountCardsDrawn(UUID playerId) { return amountOfCardsDrawnThisTurn.getOrDefault(playerId, 0); } - - @Override - public CardsAmountDrawnThisTurnWatcher copy() { - return new CardsAmountDrawnThisTurnWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CardsDrawnDuringDrawStepWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsDrawnDuringDrawStepWatcher.java index 60cc296e91f..c416860cc8e 100644 --- a/Mage/src/main/java/mage/watchers/common/CardsDrawnDuringDrawStepWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CardsDrawnDuringDrawStepWatcher.java @@ -27,13 +27,6 @@ public class CardsDrawnDuringDrawStepWatcher extends Watcher { super(WatcherScope.GAME); } - public CardsDrawnDuringDrawStepWatcher(final CardsDrawnDuringDrawStepWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfCardsDrawnThisTurn.entrySet()) { - amountOfCardsDrawnThisTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.DREW_CARD @@ -57,8 +50,4 @@ public class CardsDrawnDuringDrawStepWatcher extends Watcher { amountOfCardsDrawnThisTurn.clear(); } - @Override - public CardsDrawnDuringDrawStepWatcher copy() { - return new CardsDrawnDuringDrawStepWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CardsPutIntoGraveyardWatcher.java b/Mage/src/main/java/mage/watchers/common/CardsPutIntoGraveyardWatcher.java index 004019037d5..6ab8c8a9528 100644 --- a/Mage/src/main/java/mage/watchers/common/CardsPutIntoGraveyardWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CardsPutIntoGraveyardWatcher.java @@ -32,14 +32,6 @@ public class CardsPutIntoGraveyardWatcher extends Watcher { super(WatcherScope.GAME); } - public CardsPutIntoGraveyardWatcher(final CardsPutIntoGraveyardWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfCardsThisTurn.entrySet()) { - amountOfCardsThisTurn.put(entry.getKey(), entry.getValue()); - } - this.cardsPutToGraveyardFromBattlefield.addAll(watcher.cardsPutToGraveyardFromBattlefield); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.UNTAP_STEP_PRE) { @@ -73,8 +65,4 @@ public class CardsPutIntoGraveyardWatcher extends Watcher { cardsPutToGraveyardFromBattlefield.clear(); } - @Override - public CardsPutIntoGraveyardWatcher copy() { - return new CardsPutIntoGraveyardWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CastFromGraveyardWatcher.java b/Mage/src/main/java/mage/watchers/common/CastFromGraveyardWatcher.java index 2950ef15b03..3391c0bf9fb 100644 --- a/Mage/src/main/java/mage/watchers/common/CastFromGraveyardWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CastFromGraveyardWatcher.java @@ -23,10 +23,6 @@ public class CastFromGraveyardWatcher extends Watcher { super(WatcherScope.GAME); } - public CastFromGraveyardWatcher(final CastFromGraveyardWatcher watcher) { - super(watcher); - } - @Override public void watch(GameEvent event, Game game) { /** @@ -55,9 +51,4 @@ public class CastFromGraveyardWatcher extends Watcher { super.reset(); spellsCastFromGraveyard.clear(); } - - @Override - public CastFromGraveyardWatcher copy() { - return new CastFromGraveyardWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CastFromHandWatcher.java b/Mage/src/main/java/mage/watchers/common/CastFromHandWatcher.java index 58983d93bf7..5fbaebb330d 100644 --- a/Mage/src/main/java/mage/watchers/common/CastFromHandWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CastFromHandWatcher.java @@ -21,9 +21,6 @@ public class CastFromHandWatcher extends Watcher { super(WatcherScope.GAME); } - public CastFromHandWatcher(final CastFromHandWatcher watcher) { - super(watcher); - } @Override public void watch(GameEvent event, Game game) { @@ -58,8 +55,4 @@ public class CastFromHandWatcher extends Watcher { spellsCastFromHand.clear(); } - @Override - public CastFromHandWatcher copy() { - return new CastFromHandWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CastSpellLastTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CastSpellLastTurnWatcher.java index 7f30b3b5ca4..718f7bc56a3 100644 --- a/Mage/src/main/java/mage/watchers/common/CastSpellLastTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CastSpellLastTurnWatcher.java @@ -23,17 +23,6 @@ public class CastSpellLastTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public CastSpellLastTurnWatcher(final CastSpellLastTurnWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfSpellsCastOnCurrentTurn.entrySet()) { - amountOfSpellsCastOnCurrentTurn.put(entry.getKey(), entry.getValue()); - } - for (Entry entry : watcher.amountOfSpellsCastOnPrevTurn.entrySet()) { - amountOfSpellsCastOnPrevTurn.put(entry.getKey(), entry.getValue()); - } - this.spellsCastThisTurnInOrder.addAll(watcher.spellsCastThisTurnInOrder); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { @@ -81,10 +70,4 @@ public class CastSpellLastTurnWatcher extends Watcher { } return 0; } -// -// @Override -// public CastSpellLastTurnWatcher copy() { -// return new CastSpellLastTurnWatcher(this); -// } - } diff --git a/Mage/src/main/java/mage/watchers/common/CastSpellYourLastTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/CastSpellYourLastTurnWatcher.java index f99ca683b4d..b13b6858382 100644 --- a/Mage/src/main/java/mage/watchers/common/CastSpellYourLastTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CastSpellYourLastTurnWatcher.java @@ -22,16 +22,6 @@ public class CastSpellYourLastTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public CastSpellYourLastTurnWatcher(final CastSpellYourLastTurnWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfSpellsCastOnCurrentTurn.entrySet()) { - amountOfSpellsCastOnCurrentTurn.put(entry.getKey(), entry.getValue()); - } - for (Entry entry : watcher.amountOfSpellsCastOnPrevTurn.entrySet()) { - amountOfSpellsCastOnPrevTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { lastActivePlayer = game.getActivePlayerId(); diff --git a/Mage/src/main/java/mage/watchers/common/ChooseBlockersRedundancyWatcher.java b/Mage/src/main/java/mage/watchers/common/ChooseBlockersRedundancyWatcher.java index 4d8fceaef50..c93ed3b0a67 100644 --- a/Mage/src/main/java/mage/watchers/common/ChooseBlockersRedundancyWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/ChooseBlockersRedundancyWatcher.java @@ -20,23 +20,12 @@ public class ChooseBlockersRedundancyWatcher extends Watcher { // workaround for super(WatcherScope.GAME); } - public ChooseBlockersRedundancyWatcher(final ChooseBlockersRedundancyWatcher watcher) { - super(watcher); - this.copyCount = watcher.copyCount; - this.copyCountApply = watcher.copyCountApply; - } - @Override public void reset() { copyCount = 0; copyCountApply = 0; } - @Override - public ChooseBlockersRedundancyWatcher copy() { - return new ChooseBlockersRedundancyWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { } diff --git a/Mage/src/main/java/mage/watchers/common/CreatureAttackedWhichPlayerWatcher.java b/Mage/src/main/java/mage/watchers/common/CreatureAttackedWhichPlayerWatcher.java index 6ebaee8ee60..f9d647a932e 100644 --- a/Mage/src/main/java/mage/watchers/common/CreatureAttackedWhichPlayerWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CreatureAttackedWhichPlayerWatcher.java @@ -23,13 +23,6 @@ public class CreatureAttackedWhichPlayerWatcher extends Watcher { super(WatcherScope.GAME); } - public CreatureAttackedWhichPlayerWatcher(final CreatureAttackedWhichPlayerWatcher watcher) { - super(watcher); - for (Entry entry : watcher.getPlayerAttackedThisTurnByCreature.entrySet()) { - getPlayerAttackedThisTurnByCreature.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED) { @@ -50,9 +43,4 @@ public class CreatureAttackedWhichPlayerWatcher extends Watcher { public void reset() { getPlayerAttackedThisTurnByCreature.clear(); } - - @Override - public CreatureAttackedWhichPlayerWatcher copy() { - return new CreatureAttackedWhichPlayerWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CreatureWasCastWatcher.java b/Mage/src/main/java/mage/watchers/common/CreatureWasCastWatcher.java index 11f1fbf5b9f..79da22b221e 100644 --- a/Mage/src/main/java/mage/watchers/common/CreatureWasCastWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CreatureWasCastWatcher.java @@ -25,10 +25,6 @@ public class CreatureWasCastWatcher extends Watcher { super(WatcherScope.GAME); } - public CreatureWasCastWatcher(final CreatureWasCastWatcher watcher) { - super(watcher); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { @@ -58,9 +54,4 @@ public class CreatureWasCastWatcher extends Watcher { super.reset(); creaturesCasted.clear(); } - - @Override - public CreatureWasCastWatcher copy() { - return new CreatureWasCastWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java b/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java index cf30c774900..f48166180e4 100644 --- a/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/CreaturesDiedWatcher.java @@ -22,12 +22,6 @@ public class CreaturesDiedWatcher extends Watcher { super(WatcherScope.GAME); } - public CreaturesDiedWatcher(final CreaturesDiedWatcher watcher) { - super(watcher); - this.amountOfCreaturesThatDiedByController.putAll(watcher.amountOfCreaturesThatDiedByController); - this.amountOfCreaturesThatDiedByOwner.putAll(watcher.amountOfCreaturesThatDiedByOwner); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ZONE_CHANGE) { @@ -57,11 +51,6 @@ public class CreaturesDiedWatcher extends Watcher { return amountOfCreaturesThatDiedByOwner.getOrDefault(playerId, 0); } - @Override - public CreaturesDiedWatcher copy() { - return new CreaturesDiedWatcher(this); - } - public int getAmountOfCreaturesDiedThisTurn() { return amountOfCreaturesThatDiedByController.values().stream().mapToInt(x -> x).sum(); } diff --git a/Mage/src/main/java/mage/watchers/common/DamageDoneWatcher.java b/Mage/src/main/java/mage/watchers/common/DamageDoneWatcher.java index 0f28c0a3966..6e4008ab16a 100644 --- a/Mage/src/main/java/mage/watchers/common/DamageDoneWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/DamageDoneWatcher.java @@ -40,12 +40,6 @@ public class DamageDoneWatcher extends Watcher { this.damagedObjects = new HashMap<>(); } - private DamageDoneWatcher(final DamageDoneWatcher watcher) { - super(watcher); - this.damagingObjects = new HashMap<>(watcher.damagingObjects); - this.damagedObjects = new HashMap<>(watcher.damagedObjects); - } - @Override public void watch(GameEvent event, Game game) { switch (event.getType()) { diff --git a/Mage/src/main/java/mage/watchers/common/DragonOnTheBattlefieldWhileSpellWasCastWatcher.java b/Mage/src/main/java/mage/watchers/common/DragonOnTheBattlefieldWhileSpellWasCastWatcher.java index 46266a82184..66a0b24ce0c 100644 --- a/Mage/src/main/java/mage/watchers/common/DragonOnTheBattlefieldWhileSpellWasCastWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/DragonOnTheBattlefieldWhileSpellWasCastWatcher.java @@ -29,11 +29,6 @@ public class DragonOnTheBattlefieldWhileSpellWasCastWatcher extends Watcher { super(WatcherScope.GAME); } - public DragonOnTheBattlefieldWhileSpellWasCastWatcher(final DragonOnTheBattlefieldWhileSpellWasCastWatcher watcher) { - super(watcher); - this.castWithDragonOnTheBattlefield.addAll(watcher.castWithDragonOnTheBattlefield); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { @@ -67,9 +62,4 @@ public class DragonOnTheBattlefieldWhileSpellWasCastWatcher extends Watcher { public boolean castWithConditionTrue(UUID spellId) { return castWithDragonOnTheBattlefield.contains(spellId); } - - @Override - public DragonOnTheBattlefieldWhileSpellWasCastWatcher copy() { - return new DragonOnTheBattlefieldWhileSpellWasCastWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/FirstSpellCastThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/FirstSpellCastThisTurnWatcher.java index c60052f27dd..80a1a329ee2 100644 --- a/Mage/src/main/java/mage/watchers/common/FirstSpellCastThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/FirstSpellCastThisTurnWatcher.java @@ -22,12 +22,6 @@ public class FirstSpellCastThisTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public FirstSpellCastThisTurnWatcher(final FirstSpellCastThisTurnWatcher watcher) { - super(watcher); - playerFirstSpellCast.putAll(watcher.playerFirstSpellCast); - playerFirstCastSpell.putAll(watcher.playerFirstCastSpell); - } - @Override public void watch(GameEvent event, Game game) { switch (event.getType()) { @@ -44,11 +38,6 @@ public class FirstSpellCastThisTurnWatcher extends Watcher { } } - @Override - public FirstSpellCastThisTurnWatcher copy() { - return new FirstSpellCastThisTurnWatcher(this); - } - @Override public void reset() { super.reset(); diff --git a/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java b/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java index 3b9afad51f9..86f25b35f89 100644 --- a/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/GravestormWatcher.java @@ -22,11 +22,6 @@ public class GravestormWatcher extends Watcher { super(WatcherScope.GAME); } - public GravestormWatcher(final GravestormWatcher watcher) { - super(watcher); - this.gravestormCount = watcher.gravestormCount; - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE) { @@ -46,9 +41,4 @@ public class GravestormWatcher extends Watcher { public int getGravestormCount() { return this.gravestormCount; } - - @Override - public GravestormWatcher copy() { - return new GravestormWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java b/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java index ce1827b8c38..36e1293c5ef 100644 --- a/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/LandfallWatcher.java @@ -22,17 +22,6 @@ public class LandfallWatcher extends Watcher { super(WatcherScope.GAME); } - private LandfallWatcher(final LandfallWatcher watcher) { - super(watcher); - playerPlayedLand.addAll(watcher.playerPlayedLand); - landEnteredBattlefield.addAll(watcher.landEnteredBattlefield); - } - - @Override - public LandfallWatcher copy() { - return new LandfallWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD) { diff --git a/Mage/src/main/java/mage/watchers/common/LifeLossOtherFromCombatWatcher.java b/Mage/src/main/java/mage/watchers/common/LifeLossOtherFromCombatWatcher.java index d35a740342f..71790be2359 100644 --- a/Mage/src/main/java/mage/watchers/common/LifeLossOtherFromCombatWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/LifeLossOtherFromCombatWatcher.java @@ -22,11 +22,6 @@ public class LifeLossOtherFromCombatWatcher extends Watcher { super(WatcherScope.GAME); } - public LifeLossOtherFromCombatWatcher(final LifeLossOtherFromCombatWatcher watcher) { - super(watcher); - this.players.addAll(watcher.players); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.LOST_LIFE && !event.getFlag()) { @@ -52,9 +47,4 @@ public class LifeLossOtherFromCombatWatcher extends Watcher { super.reset(); players.clear(); } - - @Override - public LifeLossOtherFromCombatWatcher copy() { - return new LifeLossOtherFromCombatWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/ManaSpentToCastWatcher.java b/Mage/src/main/java/mage/watchers/common/ManaSpentToCastWatcher.java index 127574ca081..797640be338 100644 --- a/Mage/src/main/java/mage/watchers/common/ManaSpentToCastWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/ManaSpentToCastWatcher.java @@ -23,11 +23,6 @@ public class ManaSpentToCastWatcher extends Watcher { super(WatcherScope.CARD); } - public ManaSpentToCastWatcher(final ManaSpentToCastWatcher watcher) { - super(watcher); - this.payment = watcher.payment; - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST && event.getZone() == Zone.HAND) { @@ -43,11 +38,6 @@ public class ManaSpentToCastWatcher extends Watcher { } } - @Override - public ManaSpentToCastWatcher copy() { - return new ManaSpentToCastWatcher(this); - } - public Mana getAndResetLastPayment() { Mana returnPayment = null; if (payment != null) { diff --git a/Mage/src/main/java/mage/watchers/common/MiracleWatcher.java b/Mage/src/main/java/mage/watchers/common/MiracleWatcher.java index 325b958d594..555afc47f44 100644 --- a/Mage/src/main/java/mage/watchers/common/MiracleWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/MiracleWatcher.java @@ -32,13 +32,6 @@ public class MiracleWatcher extends Watcher { super(WatcherScope.GAME); } - public MiracleWatcher(final MiracleWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfCardsDrawnThisTurn.entrySet()) { - amountOfCardsDrawnThisTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.UNTAP_STEP_PRE) { @@ -82,9 +75,4 @@ public class MiracleWatcher extends Watcher { public void reset() { amountOfCardsDrawnThisTurn.clear(); } - - @Override - public MiracleWatcher copy() { - return new MiracleWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/MorbidWatcher.java b/Mage/src/main/java/mage/watchers/common/MorbidWatcher.java index 349c6ce5332..0b7fb9ac7a5 100644 --- a/Mage/src/main/java/mage/watchers/common/MorbidWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/MorbidWatcher.java @@ -17,10 +17,6 @@ public class MorbidWatcher extends Watcher { super(WatcherScope.GAME); } - public MorbidWatcher(final MorbidWatcher watcher) { - super(watcher); - } - @Override public void watch(GameEvent event, Game game) { if (condition) { @@ -32,10 +28,4 @@ public class MorbidWatcher extends Watcher { condition = true; } } - -// @Override -// public MorbidWatcher copy() { -// return new MorbidWatcher(this); -// } - } diff --git a/Mage/src/main/java/mage/watchers/common/NumberOfTimesPermanentTargetedATurnWatcher.java b/Mage/src/main/java/mage/watchers/common/NumberOfTimesPermanentTargetedATurnWatcher.java index fa14361fd55..e71a844b28d 100644 --- a/Mage/src/main/java/mage/watchers/common/NumberOfTimesPermanentTargetedATurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/NumberOfTimesPermanentTargetedATurnWatcher.java @@ -23,11 +23,6 @@ public class NumberOfTimesPermanentTargetedATurnWatcher extends Watcher { super(WatcherScope.GAME); } - public NumberOfTimesPermanentTargetedATurnWatcher(final NumberOfTimesPermanentTargetedATurnWatcher watcher) { - super(watcher); - this.permanentsTargeted.putAll(watcher.permanentsTargeted); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.TARGETED) { @@ -55,9 +50,4 @@ public class NumberOfTimesPermanentTargetedATurnWatcher extends Watcher { super.reset(); permanentsTargeted.clear(); } - - @Override - public NumberOfTimesPermanentTargetedATurnWatcher copy() { - return new NumberOfTimesPermanentTargetedATurnWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java index b4bc3df198e..9e74b0bae7b 100644 --- a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldWatcher.java @@ -26,17 +26,6 @@ public class PermanentsEnteredBattlefieldWatcher extends Watcher { super(WatcherScope.GAME); } - public PermanentsEnteredBattlefieldWatcher(final PermanentsEnteredBattlefieldWatcher watcher) { - super(watcher); - this.enteringBattlefield.putAll(watcher.enteringBattlefield); - this.enteringBattlefieldLastTurn.putAll(watcher.enteringBattlefieldLastTurn); - } - - @Override - public PermanentsEnteredBattlefieldWatcher copy() { - return new PermanentsEnteredBattlefieldWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD) { diff --git a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldYourLastTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldYourLastTurnWatcher.java index 2c52ef3ed81..5e71320ed1c 100644 --- a/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldYourLastTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PermanentsEnteredBattlefieldYourLastTurnWatcher.java @@ -27,17 +27,6 @@ public class PermanentsEnteredBattlefieldYourLastTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public PermanentsEnteredBattlefieldYourLastTurnWatcher(final PermanentsEnteredBattlefieldYourLastTurnWatcher watcher) { - super(watcher); - this.enteringBattlefield.putAll(watcher.enteringBattlefield); - this.enteringBattlefieldLastTurn.putAll(watcher.enteringBattlefieldLastTurn); - } - - @Override - public PermanentsEnteredBattlefieldYourLastTurnWatcher copy() { - return new PermanentsEnteredBattlefieldYourLastTurnWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { lastActivePlayer = game.getActivePlayerId(); diff --git a/Mage/src/main/java/mage/watchers/common/PermanentsSacrificedWatcher.java b/Mage/src/main/java/mage/watchers/common/PermanentsSacrificedWatcher.java index 9db7329017a..c157be5f23c 100644 --- a/Mage/src/main/java/mage/watchers/common/PermanentsSacrificedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PermanentsSacrificedWatcher.java @@ -25,15 +25,6 @@ public class PermanentsSacrificedWatcher extends Watcher { super(WatcherScope.GAME); } - public PermanentsSacrificedWatcher(final PermanentsSacrificedWatcher watcher) { - super(watcher); - } - - @Override - public PermanentsSacrificedWatcher copy() { - return new PermanentsSacrificedWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SACRIFICED_PERMANENT) { diff --git a/Mage/src/main/java/mage/watchers/common/PlanarRollWatcher.java b/Mage/src/main/java/mage/watchers/common/PlanarRollWatcher.java index 21ab1cc6a1f..b373d3c73c8 100644 --- a/Mage/src/main/java/mage/watchers/common/PlanarRollWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlanarRollWatcher.java @@ -24,13 +24,6 @@ public class PlanarRollWatcher extends Watcher { super(WatcherScope.GAME); } - public PlanarRollWatcher(final PlanarRollWatcher watcher) { - super(watcher); - for (Entry entry : watcher.numberTimesPlanarDieRolled.entrySet()) { - numberTimesPlanarDieRolled.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.PLANAR_DIE_ROLLED) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayLandWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayLandWatcher.java index bc6769e219e..f8b1ba53173 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayLandWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayLandWatcher.java @@ -21,17 +21,6 @@ public class PlayLandWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayLandWatcher(final PlayLandWatcher watcher) { - super(watcher); - playerPlayedLand.addAll(watcher.playerPlayedLand); - landPlayed.addAll(watcher.landPlayed); - } - - @Override - public PlayLandWatcher copy() { - return new PlayLandWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.LAND_PLAYED) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayerAttackedStepWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerAttackedStepWatcher.java index 57e37025870..a710a145fa5 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerAttackedStepWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerAttackedStepWatcher.java @@ -21,18 +21,6 @@ public class PlayerAttackedStepWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayerAttackedStepWatcher(final PlayerAttackedStepWatcher watcher) { - super(watcher); - for (Map.Entry entry : watcher.playerAttacked.entrySet()) { - this.playerAttacked.put(entry.getKey(), entry.getValue()); - } - } - - @Override - public PlayerAttackedStepWatcher copy() { - return new PlayerAttackedStepWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.DECLARE_ATTACKERS_STEP_POST) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayerAttackedWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerAttackedWatcher.java index be67da9b4f2..c806e4d68cb 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerAttackedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerAttackedWatcher.java @@ -24,19 +24,6 @@ public class PlayerAttackedWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayerAttackedWatcher(final PlayerAttackedWatcher watcher) { - super(watcher); - for (Map.Entry entry : watcher.playerAttacked.entrySet()) { - this.playerAttacked.put(entry.getKey(), entry.getValue()); - - } - } - - @Override - public PlayerAttackedWatcher copy() { - return new PlayerAttackedWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayerCastCreatureWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerCastCreatureWatcher.java index 420a019923a..591731ca84c 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerCastCreatureWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerCastCreatureWatcher.java @@ -22,11 +22,6 @@ public class PlayerCastCreatureWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayerCastCreatureWatcher(final PlayerCastCreatureWatcher watcher) { - super(watcher); - this.playerIds.addAll(watcher.playerIds); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.SPELL_CAST) { @@ -37,11 +32,6 @@ public class PlayerCastCreatureWatcher extends Watcher { } } - @Override - public PlayerCastCreatureWatcher copy() { - return new PlayerCastCreatureWatcher(this); - } - @Override public void reset() { super.reset(); diff --git a/Mage/src/main/java/mage/watchers/common/PlayerDamagedBySourceWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerDamagedBySourceWatcher.java index d3e26cfa744..c30c552ec41 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerDamagedBySourceWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerDamagedBySourceWatcher.java @@ -20,17 +20,10 @@ public class PlayerDamagedBySourceWatcher extends Watcher { private final Set damageSourceIds = new HashSet<>(); - public PlayerDamagedBySourceWatcher(UUID playerId) { + public PlayerDamagedBySourceWatcher() { super(WatcherScope.PLAYER); - setControllerId(playerId); } - public PlayerDamagedBySourceWatcher(final PlayerDamagedBySourceWatcher watcher) { - super(watcher); - this.damageSourceIds.addAll(watcher.damageSourceIds); - } - - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.DAMAGED_PLAYER) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayerGainedLifeWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerGainedLifeWatcher.java index e067a5fb905..4c24cc1d226 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerGainedLifeWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerGainedLifeWatcher.java @@ -24,12 +24,6 @@ public class PlayerGainedLifeWatcher extends Watcher { super(WatcherScope.GAME); } - private PlayerGainedLifeWatcher(final PlayerGainedLifeWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfLifeGainedThisTurn.entrySet()) { - amountOfLifeGainedThisTurn.put(entry.getKey(), entry.getValue()); - } - } @Override public void watch(GameEvent event, Game game) { @@ -54,9 +48,4 @@ public class PlayerGainedLifeWatcher extends Watcher { super.reset(); amountOfLifeGainedThisTurn.clear(); } - - @Override - public PlayerGainedLifeWatcher copy() { - return new PlayerGainedLifeWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/PlayerLostLifeNonCombatWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerLostLifeNonCombatWatcher.java index d6a28c4d396..785cb528af3 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerLostLifeNonCombatWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerLostLifeNonCombatWatcher.java @@ -28,13 +28,6 @@ public class PlayerLostLifeNonCombatWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayerLostLifeNonCombatWatcher(final PlayerLostLifeNonCombatWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfLifeLostThisTurn.entrySet()) { - amountOfLifeLostThisTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.LOST_LIFE && !event.getFlag()) { @@ -76,9 +69,4 @@ public class PlayerLostLifeNonCombatWatcher extends Watcher { amountOfLifeLostLastTurn.putAll(amountOfLifeLostThisTurn); amountOfLifeLostThisTurn.clear(); } - -// @Override -// public PlayerLostLifeNonCombatWatcher copy() { -// return new PlayerLostLifeNonCombatWatcher(this); -// } } diff --git a/Mage/src/main/java/mage/watchers/common/PlayerLostLifeWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayerLostLifeWatcher.java index b90a4e44578..40a233421be 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayerLostLifeWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayerLostLifeWatcher.java @@ -26,13 +26,6 @@ public class PlayerLostLifeWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayerLostLifeWatcher(final PlayerLostLifeWatcher watcher) { - super(watcher); - for (Entry entry : watcher.amountOfLifeLostThisTurn.entrySet()) { - amountOfLifeLostThisTurn.put(entry.getKey(), entry.getValue()); - } - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.LOST_LIFE) { @@ -74,9 +67,4 @@ public class PlayerLostLifeWatcher extends Watcher { amountOfLifeLostLastTurn.putAll(amountOfLifeLostThisTurn); amountOfLifeLostThisTurn.clear(); } - -// @Override -// public PlayerLostLifeWatcher copy() { -// return new PlayerLostLifeWatcher(this); -// } } diff --git a/Mage/src/main/java/mage/watchers/common/PlayersAttackedLastTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayersAttackedLastTurnWatcher.java index 2416759fb63..2b5f73c08a4 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayersAttackedLastTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayersAttackedLastTurnWatcher.java @@ -23,18 +23,6 @@ public class PlayersAttackedLastTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayersAttackedLastTurnWatcher(final PlayersAttackedLastTurnWatcher watcher) { - super(watcher); - for (Map.Entry entry : watcher.playersAttackedInLastTurn.entrySet()) { - this.playersAttackedInLastTurn.put(entry.getKey(), entry.getValue()); - } - } - - @Override - public PlayersAttackedLastTurnWatcher copy() { - return new PlayersAttackedLastTurnWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGINNING_PHASE_PRE) { diff --git a/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java index b10eb74ab6b..fe39ea98e88 100644 --- a/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/PlayersAttackedThisTurnWatcher.java @@ -23,19 +23,6 @@ public class PlayersAttackedThisTurnWatcher extends Watcher { super(WatcherScope.GAME); } - public PlayersAttackedThisTurnWatcher(final PlayersAttackedThisTurnWatcher watcher) { - super(watcher); - - for (Map.Entry entry : watcher.playersAttackedThisTurn.entrySet()) { - this.playersAttackedThisTurn.putIfAbsent(entry.getKey(), entry.getValue()); - } - - for (Map.Entry entry : watcher.opponentsAttackedThisTurn.entrySet()) { - this.opponentsAttackedThisTurn.putIfAbsent(entry.getKey(), entry.getValue()); - } - } - - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BEGINNING_PHASE_PRE) { diff --git a/Mage/src/main/java/mage/watchers/common/ProwlWatcher.java b/Mage/src/main/java/mage/watchers/common/ProwlWatcher.java index 33573832651..f7c13409049 100644 --- a/Mage/src/main/java/mage/watchers/common/ProwlWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/ProwlWatcher.java @@ -29,18 +29,6 @@ public class ProwlWatcher extends Watcher { super(WatcherScope.GAME); } - private ProwlWatcher(final ProwlWatcher watcher) { - super(watcher); - for (Entry> entry : watcher.damagingSubtypes.entrySet()) { - damagingSubtypes.put(entry.getKey(), entry.getValue()); - } - } - - @Override - public ProwlWatcher copy() { - return new ProwlWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.DAMAGED_PLAYER) { diff --git a/Mage/src/main/java/mage/watchers/common/RevoltWatcher.java b/Mage/src/main/java/mage/watchers/common/RevoltWatcher.java index 65084d84cd8..8007ef86fee 100644 --- a/Mage/src/main/java/mage/watchers/common/RevoltWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/RevoltWatcher.java @@ -25,11 +25,6 @@ public class RevoltWatcher extends Watcher { super(WatcherScope.GAME); } - public RevoltWatcher(final RevoltWatcher watcher) { - super(watcher); - this.revoltActivePlayerIds.addAll(watcher.revoltActivePlayerIds); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.ZONE_CHANGE && event instanceof ZoneChangeEvent) { @@ -51,9 +46,4 @@ public class RevoltWatcher extends Watcher { public void reset() { revoltActivePlayerIds.clear(); } - - @Override - public RevoltWatcher copy() { - return new RevoltWatcher(this); - } } diff --git a/Mage/src/main/java/mage/watchers/common/SourceDidDamageWatcher.java b/Mage/src/main/java/mage/watchers/common/SourceDidDamageWatcher.java index e790aee96b8..f338ea1cb02 100644 --- a/Mage/src/main/java/mage/watchers/common/SourceDidDamageWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/SourceDidDamageWatcher.java @@ -22,16 +22,6 @@ public class SourceDidDamageWatcher extends Watcher { super(WatcherScope.GAME); } - public SourceDidDamageWatcher(final SourceDidDamageWatcher watcher) { - super(watcher); - this.damageSources.addAll(watcher.damageSources); - } - - @Override - public SourceDidDamageWatcher copy() { - return new SourceDidDamageWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == EventType.DAMAGED_CREATURE diff --git a/Mage/src/main/java/mage/watchers/common/SpellsCastWatcher.java b/Mage/src/main/java/mage/watchers/common/SpellsCastWatcher.java index 64fe3db2d6b..883ab6f9ef6 100644 --- a/Mage/src/main/java/mage/watchers/common/SpellsCastWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/SpellsCastWatcher.java @@ -30,16 +30,6 @@ public class SpellsCastWatcher extends Watcher { super(WatcherScope.GAME); } - public SpellsCastWatcher(final SpellsCastWatcher watcher) { - super(watcher); - this.spellsCast.putAll(watcher.spellsCast); - } - - @Override - public SpellsCastWatcher copy() { - return new SpellsCastWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (EventType.SPELL_CAST == event.getType()) { diff --git a/Mage/src/main/java/mage/watchers/common/WasBlockedThisTurnWatcher.java b/Mage/src/main/java/mage/watchers/common/WasBlockedThisTurnWatcher.java index c142833210f..89ad6edb0dd 100644 --- a/Mage/src/main/java/mage/watchers/common/WasBlockedThisTurnWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/WasBlockedThisTurnWatcher.java @@ -23,16 +23,6 @@ public class WasBlockedThisTurnWatcher extends Watcher { wasBlockedThisTurnCreatures = new HashSet<>(); } - private WasBlockedThisTurnWatcher(final WasBlockedThisTurnWatcher watcher) { - super(watcher); - wasBlockedThisTurnCreatures = new HashSet<>(watcher.wasBlockedThisTurnCreatures); - } - - @Override - public Watcher copy() { - return new WasBlockedThisTurnWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.BLOCKER_DECLARED) { diff --git a/Mage/src/main/java/mage/watchers/common/ZuberasDiedWatcher.java b/Mage/src/main/java/mage/watchers/common/ZuberasDiedWatcher.java index 61c555cffe0..840b428da39 100644 --- a/Mage/src/main/java/mage/watchers/common/ZuberasDiedWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/ZuberasDiedWatcher.java @@ -24,16 +24,6 @@ public class ZuberasDiedWatcher extends Watcher { super(WatcherScope.GAME); } - public ZuberasDiedWatcher(final ZuberasDiedWatcher watcher) { - super(watcher); - this.zuberasDiedThisTurn = watcher.zuberasDiedThisTurn; - } - - @Override - public ZuberasDiedWatcher copy() { - return new ZuberasDiedWatcher(this); - } - @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ZONE_CHANGE && ((ZoneChangeEvent) event).isDiesEvent()) { diff --git a/Mage/src/test/java/mage/WatcherTest.java b/Mage/src/test/java/mage/WatcherTest.java new file mode 100644 index 00000000000..8b8c44b160e --- /dev/null +++ b/Mage/src/test/java/mage/WatcherTest.java @@ -0,0 +1,4 @@ +package mage; + +public class WatcherTest { +}