From 882f4b85808cfbb2e0bddc962462ed43c835007e Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Tue, 27 Mar 2012 01:46:45 +0000 Subject: [PATCH] - Roaming penalty is separate from twilight cost modifiers and applies after them. --- .../lotro/logic/modifiers/ModifiersLogic.java | 8 ++++++- .../lotro/logic/timing/rules/RoamingRule.java | 23 +++---------------- .../src/main/webapp/includes/changeLog.html | 3 +++ 3 files changed, 13 insertions(+), 21 deletions(-) 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 10b5a5870..ad288765e 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 @@ -406,7 +406,13 @@ public class ModifiersLogic implements ModifiersEnvironment, ModifiersQuerying { for (Modifier modifier : getModifiersAffectingCard(gameState, ModifierEffect.TWILIGHT_COST_MODIFIER, physicalCard)) { result += modifier.getTwilightCostModifier(gameState, this, physicalCard, ignoreRoamingPenalty); } - return Math.max(0, result); + result = Math.max(0, result); + + if (!ignoreRoamingPenalty && hasKeyword(gameState, physicalCard, Keyword.ROAMING)) { + int roamingPenalty = getRoamingPenalty(gameState, physicalCard); + result += Math.max(0, roamingPenalty); + } + return result; } finally { LoggingThreadLocal.logMethodEnd(); } diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RoamingRule.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RoamingRule.java index 117e7c7ec..6891cdb45 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RoamingRule.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/timing/rules/RoamingRule.java @@ -6,7 +6,9 @@ import com.gempukku.lotro.filters.Filter; import com.gempukku.lotro.filters.Filters; import com.gempukku.lotro.game.PhysicalCard; import com.gempukku.lotro.game.state.GameState; -import com.gempukku.lotro.logic.modifiers.*; +import com.gempukku.lotro.logic.modifiers.KeywordModifier; +import com.gempukku.lotro.logic.modifiers.ModifiersLogic; +import com.gempukku.lotro.logic.modifiers.ModifiersQuerying; public class RoamingRule { private ModifiersLogic _modifiersLogic; @@ -25,24 +27,5 @@ public class RoamingRule { _modifiersLogic.addAlwaysOnModifier( new KeywordModifier(null, roamingFilter, Keyword.ROAMING)); - - _modifiersLogic.addAlwaysOnModifier( - new AbstractModifier(null, null, Filters.and(CardType.MINION, Keyword.ROAMING), ModifierEffect.TWILIGHT_COST_MODIFIER) { - @Override - public int getTwilightCostModifier(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard physicalCard, boolean ignoreRoamingPenalty) { - if (ignoreRoamingPenalty) - return 0; - return modifiersQuerying.getRoamingPenalty(gameState, physicalCard); - } - - @Override - public String getText(GameState gameState, ModifiersQuerying modifiersQuerying, PhysicalCard self) { - final int value = modifiersQuerying.getRoamingPenalty(gameState, self); - if (value >= 0) - return "Twilight cost +" + value; - else - return "Twilight cost " + value; - } - }); } } 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 309254ca4..ed0bd9fd8 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 @@
+27 Mar. 2012
+- Roaming penalty is separate from twilight cost modifiers and applies after them.
+
 26 Mar. 2012
 - "Pillage of Rohan" and other similar cards should be active at the right time now (only on your turn).
 - "Let Her Deal With Them" now correctly requires to spot Gollum or Smeagol to be able to play it (both from hand