From 3ef4a94481457752f91984bee6ec7c671598bd62 Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Mon, 16 Feb 2026 12:16:09 +0100 Subject: [PATCH] Remove a Guava call --- .../forge/game/combat/AttackConstraints.java | 21 ++++++++++--------- .../forge/game/trigger/TriggerRolledDie.java | 2 +- .../res/cardsfolder/b/baron_helmut_zemo.txt | 2 +- .../main/java/forge/gui/events/UiEvent.java | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/forge-game/src/main/java/forge/game/combat/AttackConstraints.java b/forge-game/src/main/java/forge/game/combat/AttackConstraints.java index 155fdadcbd3..2ee6a81b3ad 100644 --- a/forge-game/src/main/java/forge/game/combat/AttackConstraints.java +++ b/forge-game/src/main/java/forge/game/combat/AttackConstraints.java @@ -15,6 +15,7 @@ import java.util.stream.Collectors; import com.google.common.collect.*; +import forge.util.IterableUtil; import org.apache.commons.lang3.tuple.Pair; import forge.game.GameEntity; @@ -95,7 +96,7 @@ public Pair, Integer> getLegalAttackers() { ) || ( types.contains(AttackRestrictionType.NEED_GREATER_POWER) && myMax <= 1 )) { - reqs.removeAll(findAll(reqs, attacker)); + reqs.removeIf(findAll(attacker)); attackersToRemove.add(attacker); } } @@ -117,7 +118,7 @@ public Pair, Integer> getLegalAttackers() { } myPossibleAttackers.removeAll(attackersToRemove); for (final Card toRemove : attackersToRemove) { - reqs.removeAll(findAll(reqs, toRemove)); + reqs.removeIf(findAll(toRemove)); } // First, successively try each creature that must attack alone. @@ -134,7 +135,7 @@ public Pair, Integer> getLegalAttackers() { possible.put(attackMap, violations); } // remove them from the requirements, as they'll not be relevant to this calculation any more - reqs.removeAll(findAll(reqs, attacker)); + reqs.removeIf(findAll(attacker)); } } @@ -211,14 +212,14 @@ private List> collectLegalAttackers(final Map clonedReqs = deepClone(reqs); for (final Entry> causesToAttack : requirement.getCausesToAttack().asMap().entrySet()) { - for (final Attack a : findAll(reqs, causesToAttack.getKey())) { + for (final Attack a : IterableUtil.filter(reqs, findAll(causesToAttack.getKey()))) { a.requirements += causesToAttack.getValue().size(); } } // if maximum < no of possible attackers, try both with and without this creature if (isLimited) { // try without - clonedReqs.removeAll(findAll(clonedReqs, req.attacker)); + clonedReqs.removeIf(findAll(req.attacker)); final CardCollection clonedReserved = new CardCollection(reserved); result.addAll(collectLegalAttackers(myAttackers, clonedReqs, clonedReserved, localMaximum)); haveTriedWithout = true; @@ -234,7 +235,7 @@ private List> collectLegalAttackers(final Map> collectLegalAttackers(final Map clonedReqs = deepClone(reqs); - clonedReqs.removeAll(findAll(clonedReqs, req.attacker)); + clonedReqs.removeIf(findAll(req.attacker)); final CardCollection clonedReserved = new CardCollection(reserved); result.addAll(collectLegalAttackers(myAttackers, clonedReqs, clonedReserved, localMaximum)); haveTriedWithout = true; @@ -255,7 +256,7 @@ private List> collectLegalAttackers(final Map reqs, final Predicate p private static Attack findFirst(final List reqs, final Card attacker) { return findFirst(reqs, attacker::equals); } - private static Collection findAll(final List reqs, final Card attacker) { - return Collections2.filter(reqs, input -> input.attacker.equals(attacker)); + private static Predicate findAll(final Card attacker) { + return input -> input.attacker.equals(attacker); } /** diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java b/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java index a01e8d0c67d..f425dfb2a4f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRolledDie.java @@ -31,7 +31,7 @@ public final boolean performTest(final Map runParams) { if (hasParam("ValidResult")) { String[] params = getParam("ValidResult").split(","); int result = (int) runParams.get(AbilityKey.Result); - if (hasParam("Natural")) { + if (hasParam("Natural") && runParams.containsKey(AbilityKey.NaturalResult)) { result = (int) runParams.get(AbilityKey.NaturalResult); } for (String param : params) { diff --git a/forge-gui/res/cardsfolder/b/baron_helmut_zemo.txt b/forge-gui/res/cardsfolder/b/baron_helmut_zemo.txt index 34513fc6a29..99509cfa146 100644 --- a/forge-gui/res/cardsfolder/b/baron_helmut_zemo.txt +++ b/forge-gui/res/cardsfolder/b/baron_helmut_zemo.txt @@ -2,7 +2,7 @@ Name:Baron Helmut Zemo ManaCost:B B B Types:Legendary Creature Human Noble Villain PT:3/3 -T:Mode$ SpellCast | ValidCard$ Card.Black+wasCastFromYourHand | Execute$ TrigConnive | TriggerDescription$ Whenever you cast a black spell from your hand, CARDNAME connives. +T:Mode$ SpellCast | ValidCard$ Card.Black+wasCastFromYourHand | TriggerZones$ Battlefield | Execute$ TrigConnive | TriggerDescription$ Whenever you cast a black spell from your hand, CARDNAME connives. SVar:TrigConnive:DB$ Connive A:AB$ Play | Cost$ ExileFromGrave<1+/Card.Black+withTotalManaSymbols_Black_GE15> | CostDesc$ Exile any number of black cards from your graveyard with fifteen or more black mana symbols among their mana costs: | Boast$ True | Defined$ ExiledWith | ValidSA$ Spell | WithoutManaCost$ True | CopyCard$ True | Amount$ 3 | Optional$ True | SpellDescription$ Copy those exiled cards. You may cast up to three of the copies without paying their mana costs. (Activate only if this creature attacked this turn and only once each turn.) DeckHas:Ability$Graveyard diff --git a/forge-gui/src/main/java/forge/gui/events/UiEvent.java b/forge-gui/src/main/java/forge/gui/events/UiEvent.java index b3ece37a1be..2b2c5287a1c 100644 --- a/forge-gui/src/main/java/forge/gui/events/UiEvent.java +++ b/forge-gui/src/main/java/forge/gui/events/UiEvent.java @@ -4,5 +4,5 @@ public interface UiEvent extends Event { - public abstract T visit(IUiEventVisitor visitor); + T visit(IUiEventVisitor visitor); } \ No newline at end of file