Fixed V2 Isengard Grunt not increasing the overwhelm multiplier.

This commit is contained in:
Christian 'ketura' McCarty
2025-04-06 20:49:09 -05:00
parent 3d39aa8309
commit bdc1da9c42
2 changed files with 37 additions and 12 deletions

View File

@@ -50,6 +50,12 @@ public class ResolveSkirmishEffect extends AbstractEffect {
multiplier = game.getModifiersQuerying().getOverwhelmMultiplier(game, fellowshipCharacter);
}
int shadowMult = 2;
for(var minion : skirmish.getShadowCharacters()) {
var mult = game.getModifiersQuerying().getOverwhelmMultiplier(game, minion);
shadowMult = Math.max(shadowMult, mult);
}
if (fpStrength == 0 && shadowStrength == 0) {
return Result.FELLOWSHIP_LOSES;
} else if (multiplier < CantBeOverwhelmedModifier.ImmuneToOverwhelmThreshold
@@ -57,7 +63,7 @@ public class ResolveSkirmishEffect extends AbstractEffect {
return Result.FELLOWSHIP_OVERWHELMED;
} else if (fpStrength <= shadowStrength) {
return Result.FELLOWSHIP_LOSES;
} else if (fpStrength >= 2 * shadowStrength) {
} else if (fpStrength >= shadowMult * shadowStrength) {
return Result.SHADOW_OVERWHELMED;
} else {
return Result.SHADOW_LOSES;

View File

@@ -3,7 +3,6 @@ package com.gempukku.lotro.cards.unofficial.pc.vsets.set_v02;
import com.gempukku.lotro.cards.GenericCardTestHelper;
import com.gempukku.lotro.common.*;
import com.gempukku.lotro.game.CardNotFoundException;
import com.gempukku.lotro.game.PhysicalCardImpl;
import com.gempukku.lotro.logic.decisions.DecisionResultInvalidException;
import org.junit.Test;
@@ -18,8 +17,10 @@ public class Card_V2_026_Tests
return new GenericCardTestHelper(
new HashMap<>()
{{
put("card", "102_26");
// put other cards in here as needed for the test case
put("grunt", "102_26");
put("worker", "3_62");
put("mithrandir", "6_30");
}},
GenericCardTestHelper.FellowshipSites,
GenericCardTestHelper.FOTRFrodo,
@@ -47,7 +48,7 @@ public class Card_V2_026_Tests
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
var card = scn.GetFreepsCard("grunt");
assertEquals("Isengard Grunt", card.getBlueprint().getTitle());
assertNull(card.getBlueprint().getSubtitle());
@@ -62,18 +63,36 @@ public class Card_V2_026_Tests
assertEquals(4, card.getBlueprint().getSiteNumber());
}
// Uncomment any @Test markers below once this is ready to be used
//@Test
public void IsengardGruntTest1() throws DecisionResultInvalidException, CardNotFoundException {
@Test
public void IsengardGruntCanExertToPreventIsenorcOverwhelm() throws DecisionResultInvalidException, CardNotFoundException {
//Pre-game setup
var scn = GetScenario();
var card = scn.GetFreepsCard("card");
scn.FreepsMoveCardToHand(card);
var grunt = scn.GetShadowCard("grunt");
var worker = scn.GetShadowCard("worker");
scn.ShadowMoveCharToTable(grunt, worker);
var mithrandir = scn.GetFreepsCard("mithrandir");
scn.FreepsMoveCharToTable(mithrandir);
scn.StartGame();
scn.FreepsPlayCard(card);
scn.SkipToAssignments();
assertEquals(2, scn.GetTwilight());
scn.FreepsAssignToMinions(mithrandir, worker);
scn.ShadowDeclineAssignments();
scn.FreepsResolveSkirmish(mithrandir);
scn.FreepsPassCurrentPhaseAction();
assertEquals(0, scn.GetWoundsOn(grunt));
assertTrue(scn.ShadowActionAvailable(grunt));
scn.ShadowUseCardAction(grunt);
assertEquals(1, scn.GetWoundsOn(grunt));
assertEquals(0, scn.GetWoundsOn(worker));
assertEquals(Zone.SHADOW_CHARACTERS, worker.getZone());
scn.PassCurrentPhaseActions();
assertEquals(Zone.SHADOW_CHARACTERS, worker.getZone());
assertEquals(2, scn.GetWoundsOn(worker)); //Mithrandir is damage +1
}
}