From 17a8e73c8c876a8fe1ed56f733e980e8e70ce7da Mon Sep 17 00:00:00 2001 From: "marcin.sciesinski" Date: Sun, 21 Mar 2021 19:02:44 -0700 Subject: [PATCH] Fixed Berserker Torch (Toil on Shadow attachments) --- .../com/gempukku/lotro/logic/PlayUtils.java | 3 ++- .../com/gempukku/lotro/at/ToilAtTest.java | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java index 61bd6b63e..7f91e5c59 100644 --- a/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java +++ b/gemp-lotr/gemp-lotr-logic/src/main/java/com/gempukku/lotro/logic/PlayUtils.java @@ -43,7 +43,8 @@ public class PlayUtils { public boolean accepts(LotroGame game, PhysicalCard physicalCard) { if (card.getBlueprint().getSide() == Side.SHADOW) { final int twilightCostOnTarget = game.getModifiersQuerying().getTwilightCost(game, card, physicalCard, twilightModifier, false); - return twilightCostOnTarget <= game.getGameState().getTwilightPool() - withTwilightRemoved; + int potentialDiscount = game.getModifiersQuerying().getPotentialDiscount(game, card); + return twilightCostOnTarget - potentialDiscount <= game.getGameState().getTwilightPool() - withTwilightRemoved; } else { return true; } diff --git a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/ToilAtTest.java b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/ToilAtTest.java index 876a94537..0837dba47 100644 --- a/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/ToilAtTest.java +++ b/gemp-lotr/gemp-lotr-server/src/test/java/com/gempukku/lotro/at/ToilAtTest.java @@ -1,5 +1,6 @@ package com.gempukku.lotro.at; +import com.gempukku.lotro.common.Token; import com.gempukku.lotro.common.Zone; import com.gempukku.lotro.game.CardNotFoundException; import com.gempukku.lotro.game.PhysicalCard; @@ -332,4 +333,27 @@ public class ToilAtTest extends AbstractAtTest { // It's 6 not 8, because of roaming penalty assertEquals(6, _game.getGameState().getTwilightPool()); } + + @Test + public void berserkerTorchPlaysCorrectly() throws DecisionResultInvalidException, CardNotFoundException { + initializeSimplestGame(); + + PhysicalCardImpl urukDominator = createCard(P2, "12_152"); + PhysicalCardImpl berserkerTorch = createCard(P2, "12_136"); + + skipMulligans(); + + moveCardToZone(urukDominator, Zone.HAND); + moveCardToZone(berserkerTorch, Zone.HAND); + + _game.getGameState().setTwilight(6); + + playerDecided(P1, ""); + + playerDecided(P2, getCardActionId(P2, "Play")); + playerDecided(P2, getCardActionId(P2, "Play")); + assertEquals(Zone.ATTACHED, berserkerTorch.getZone()); + assertEquals(1, _game.getGameState().getTokenCount(urukDominator, Token.WOUND)); + assertEquals(0, _game.getGameState().getTwilightPool()); + } }