From 332e404f6d5a155d423445af4ad5bff39d1c4e53 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Fri, 6 Jul 2012 10:18:36 +0000 Subject: [PATCH] - "Harrowdale" now works only until the regroup phase, but both if you moved to and moved out of "Harrowdale". --- .../lotro/cards/set11/site/Card11_243.java | 6 ++-- .../lotro/logic/modifiers/ModifiersLogic.java | 33 ++++++++++++++++--- .../logic/modifiers/ModifiersQuerying.java | 4 +++ .../src/main/webapp/includes/changeLog.html | 3 ++ 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java index 5b79fb75f..ca2b26af4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set11/site/Card11_243.java @@ -35,8 +35,8 @@ public class Card11_243 extends AbstractNewSite { @Override public List getRequiredAfterTriggers(LotroGame game, EffectResult effectResult, final PhysicalCard self) { - if (game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).getUsedLimit() < 1) { - game.getActionsEnvironment().addUntilEndOfTurnActionProxy( + if (game.getModifiersQuerying().getUntilStartOfPhaseLimitCounter(self, Phase.REGROUP).getUsedLimit() < 1) { + game.getActionsEnvironment().addUntilStartOfPhaseActionProxy( new AbstractActionProxy() { private Set _minionsMarked = new HashSet(); @@ -67,7 +67,7 @@ public class Card11_243 extends AbstractNewSite { } return null; } - }); + }, Phase.REGROUP); game.getModifiersQuerying().getUntilEndOfTurnLimitCounter(self).incrementToLimit(1, 1); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java index 652ca5c9d..5ce60c7c2 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersLogic.java @@ -18,7 +18,8 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { private Set _skipSet = new HashSet(); - private Map> _phaseLimitCounters = new HashMap>(); + private Map> _endOfPhaseLimitCounters = new HashMap>(); + private Map> _startOfPhaseLimitCounters = new HashMap>(); private Map _turnLimitCounters = new HashMap(); private int _drawnThisPhaseCount = 0; @@ -29,12 +30,32 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { return getUntilEndOfPhaseLimitCounter(card, "", phase); } + @Override + public LimitCounter getUntilStartOfPhaseLimitCounter(PhysicalCard card, Phase phase) { + return getUntilEndOfPhaseLimitCounter(card, "", phase); + } + @Override public LimitCounter getUntilEndOfPhaseLimitCounter(PhysicalCard card, String prefix, Phase phase) { - Map limitCounterMap = _phaseLimitCounters.get(phase); + Map limitCounterMap = _endOfPhaseLimitCounters.get(phase); if (limitCounterMap == null) { limitCounterMap = new HashMap(); - _phaseLimitCounters.put(phase, limitCounterMap); + _endOfPhaseLimitCounters.put(phase, limitCounterMap); + } + LimitCounter limitCounter = limitCounterMap.get(prefix + card.getCardId()); + if (limitCounter == null) { + limitCounter = new DefaultLimitCounter(); + limitCounterMap.put(prefix + card.getCardId(), limitCounter); + } + return limitCounter; + } + + @Override + public LimitCounter getUntilStartOfPhaseLimitCounter(PhysicalCard card, String prefix, Phase phase) { + Map limitCounterMap = _startOfPhaseLimitCounters.get(phase); + if (limitCounterMap == null) { + limitCounterMap = new HashMap(); + _startOfPhaseLimitCounters.put(phase, limitCounterMap); } LimitCounter limitCounter = limitCounterMap.get(prefix + card.getCardId()); if (limitCounter == null) { @@ -133,7 +154,7 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { removeModifiers(list); list.clear(); } - Map counterMap = _phaseLimitCounters.get(phase); + Map counterMap = _endOfPhaseLimitCounters.get(phase); if (counterMap != null) counterMap.clear(); @@ -147,6 +168,10 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { removeModifiers(list); list.clear(); } + + Map counterMap = _startOfPhaseLimitCounters.get(phase); + if (counterMap != null) + counterMap.clear(); } public void removeEndOfTurn() { diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersQuerying.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersQuerying.java index 00812cd76..f13b2da0c 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersQuerying.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/modifiers/ModifiersQuerying.java @@ -17,6 +17,10 @@ public interface ModifiersQuerying { public LimitCounter getUntilEndOfPhaseLimitCounter(PhysicalCard card, String prefix, Phase phase); + public LimitCounter getUntilStartOfPhaseLimitCounter(PhysicalCard card, Phase phase); + + public LimitCounter getUntilStartOfPhaseLimitCounter(PhysicalCard card, String prefix, Phase phase); + public LimitCounter getUntilEndOfTurnLimitCounter(PhysicalCard card); public Collection getModifiersAffecting(GameState gameState, PhysicalCard card); diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html index f0b329a29..3c3ebdc3c 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/includes/changeLog.html @@ -1,4 +1,7 @@
+6 Jul. 2012
+- "Harrowdale" now works only until the regroup phase, but both if you moved to and moved out of "Harrowdale".
+
 3 Jul. 2012
 - "Gorgoroth Officer" no longer allows to not discard cards from hand to play the minion.