diff --git a/Mage.Sets/src/mage/cards/c/ChainerNightmareAdept.java b/Mage.Sets/src/mage/cards/c/ChainerNightmareAdept.java index ee2627a482..e478aca417 100644 --- a/Mage.Sets/src/mage/cards/c/ChainerNightmareAdept.java +++ b/Mage.Sets/src/mage/cards/c/ChainerNightmareAdept.java @@ -18,6 +18,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.events.GameEvent; +import mage.util.CardUtil; import mage.watchers.Watcher; import mage.watchers.common.CastFromHandWatcher; @@ -147,7 +148,7 @@ class ChainerNightmareAdeptWatcher extends Watcher { source.getSourceId(), source.getSourceObjectZoneChangeCounter(), game ); morMap.computeIfAbsent(mor, m -> new HashMap<>()) - .compute(source.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + .compute(source.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/c/ChromeReplicator.java b/Mage.Sets/src/mage/cards/c/ChromeReplicator.java index cc05f6e7bd..3bfecae7b0 100644 --- a/Mage.Sets/src/mage/cards/c/ChromeReplicator.java +++ b/Mage.Sets/src/mage/cards/c/ChromeReplicator.java @@ -17,6 +17,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.permanent.TokenPredicate; import mage.game.Game; import mage.game.permanent.token.Construct4Token; +import mage.util.CardUtil; import java.util.HashMap; import java.util.Map; @@ -75,6 +76,6 @@ enum ChromeReplicatorCondition implements Condition { .map(MageObject::getName) .filter(Objects::nonNull) .filter(s -> !s.isEmpty()) - .anyMatch(s -> nameMap.compute(s, (x, i) -> i == null ? 1 : Integer.sum(i, 1)) >= 2); + .anyMatch(s -> nameMap.compute(s, CardUtil::setOrIncrementValue) >= 2); } } diff --git a/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java b/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java index 40b2188487..53c5deacce 100644 --- a/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java +++ b/Mage.Sets/src/mage/cards/c/ClarionUltimatum.java @@ -16,6 +16,7 @@ import mage.players.Player; import mage.target.TargetPermanent; import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetControlledPermanent; +import mage.util.CardUtil; import java.util.*; import java.util.stream.Collectors; @@ -115,7 +116,7 @@ class ClarionUltimatumTarget extends TargetCardInLibrary { } private void populateNameMap(Set<String> names) { - names.stream().forEach(name -> this.nameMap.compute(name, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + names.stream().forEach(name -> this.nameMap.compute(name, CardUtil::setOrIncrementValue)); } @Override @@ -133,7 +134,7 @@ class ClarionUltimatumTarget extends TargetCardInLibrary { .map(game::getCard) .filter(Objects::nonNull) .map(MageObject::getName) - .forEach(name -> alreadyChosen.compute(name, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(name -> alreadyChosen.compute(name, CardUtil::setOrIncrementValue)); return nameMap.getOrDefault(card.getName(), 0) > alreadyChosen.getOrDefault(card.getName(), 0); } diff --git a/Mage.Sets/src/mage/cards/c/ConfoundingConundrum.java b/Mage.Sets/src/mage/cards/c/ConfoundingConundrum.java index 3747315305..f393c1e6cd 100644 --- a/Mage.Sets/src/mage/cards/c/ConfoundingConundrum.java +++ b/Mage.Sets/src/mage/cards/c/ConfoundingConundrum.java @@ -19,6 +19,7 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPermanent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -128,7 +129,7 @@ class ConfoundingConundrumWatcher extends Watcher { } Permanent permanent = game.getPermanent(event.getTargetId()); if (permanent != null && permanent.isLand(game)) { - playerMap.compute(permanent.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(permanent.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/d/DargoTheShipwrecker.java b/Mage.Sets/src/mage/cards/d/DargoTheShipwrecker.java index 745f8fd3eb..8e36d81518 100644 --- a/Mage.Sets/src/mage/cards/d/DargoTheShipwrecker.java +++ b/Mage.Sets/src/mage/cards/d/DargoTheShipwrecker.java @@ -126,7 +126,7 @@ class DargoTheShipwreckerWatcher extends Watcher { } Permanent permanent = game.getPermanentOrLKIBattlefield(event.getTargetId()); if (permanent != null && (permanent.isCreature(game) || permanent.isArtifact(game))) { - sacMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + sacMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/d/DoublingChant.java b/Mage.Sets/src/mage/cards/d/DoublingChant.java index 1b12baf233..9607085e06 100644 --- a/Mage.Sets/src/mage/cards/d/DoublingChant.java +++ b/Mage.Sets/src/mage/cards/d/DoublingChant.java @@ -15,6 +15,7 @@ import mage.filter.predicate.mageobject.NamePredicate; import mage.game.Game; import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import mage.util.CardUtil; import java.util.*; import java.util.stream.Collectors; @@ -109,7 +110,7 @@ class DoublingChantTarget extends TargetCardInLibrary { } private void populateNameMap(Set<String> names) { - names.stream().forEach(name -> this.nameMap.compute(name, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + names.stream().forEach(name -> this.nameMap.compute(name, CardUtil::setOrIncrementValue)); } @Override @@ -127,7 +128,7 @@ class DoublingChantTarget extends TargetCardInLibrary { .map(game::getCard) .filter(Objects::nonNull) .map(MageObject::getName) - .forEach(name -> alreadyChosen.compute(name, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(name -> alreadyChosen.compute(name, CardUtil::setOrIncrementValue)); return nameMap.getOrDefault(card.getName(), 0) > alreadyChosen.getOrDefault(card.getName(), 0); } diff --git a/Mage.Sets/src/mage/cards/e/EmergentSequence.java b/Mage.Sets/src/mage/cards/e/EmergentSequence.java index 6d24719b88..a4016017b4 100644 --- a/Mage.Sets/src/mage/cards/e/EmergentSequence.java +++ b/Mage.Sets/src/mage/cards/e/EmergentSequence.java @@ -18,6 +18,7 @@ import mage.game.permanent.token.FractalToken; import mage.players.Player; import mage.target.common.TargetCardInLibrary; import mage.target.targetpointer.FixedTarget; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -114,7 +115,7 @@ class EmergentSequenceWatcher extends Watcher { public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD && ((EntersTheBattlefieldEvent) event).getTarget().isLand(game)) { - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/g/GorMuldrakAmphinologist.java b/Mage.Sets/src/mage/cards/g/GorMuldrakAmphinologist.java index 3a018582a8..ca7194ecd0 100644 --- a/Mage.Sets/src/mage/cards/g/GorMuldrakAmphinologist.java +++ b/Mage.Sets/src/mage/cards/g/GorMuldrakAmphinologist.java @@ -17,6 +17,7 @@ import mage.game.Controllable; import mage.game.Game; import mage.game.permanent.token.SalamnderWarriorToken; import mage.game.permanent.token.Token; +import mage.util.CardUtil; import java.util.HashMap; import java.util.Map; @@ -95,7 +96,7 @@ class GorMuldrakAmphinologistEffect extends OneShotEffect { ).stream() .filter(Objects::nonNull) .map(Controllable::getControllerId) - .forEach(uuid -> creatureMap.compute(uuid, (u, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(uuid -> creatureMap.compute(uuid, CardUtil::setOrIncrementValue)); int minValue = creatureMap.values().stream().mapToInt(x -> x).min().orElse(0); minValue = Math.max(minValue, 0); Token token = new SalamnderWarriorToken(); diff --git a/Mage.Sets/src/mage/cards/g/GyomeMasterChef.java b/Mage.Sets/src/mage/cards/g/GyomeMasterChef.java index eb9764ca01..0fa4e6d4c0 100644 --- a/Mage.Sets/src/mage/cards/g/GyomeMasterChef.java +++ b/Mage.Sets/src/mage/cards/g/GyomeMasterChef.java @@ -27,6 +27,7 @@ import mage.game.permanent.PermanentToken; import mage.game.permanent.token.FoodToken; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -118,7 +119,7 @@ class GyomeMasterChefWatcher extends Watcher { if (permanent == null || permanent instanceof PermanentToken || !permanent.isCreature(game)) { return; } - playerMap.compute(event.getPlayerId(), (u, i) -> i != null ? Integer.sum(i, 1) : 1); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } @Override diff --git a/Mage.Sets/src/mage/cards/h/HawkinsNationalLaboratory.java b/Mage.Sets/src/mage/cards/h/HawkinsNationalLaboratory.java index 614a9b2263..caa4a6ecc6 100644 --- a/Mage.Sets/src/mage/cards/h/HawkinsNationalLaboratory.java +++ b/Mage.Sets/src/mage/cards/h/HawkinsNationalLaboratory.java @@ -16,6 +16,7 @@ import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -90,7 +91,7 @@ class HawkinsNationalLaboratoryWatcher extends Watcher { if (permanent == null || !permanent.hasSubtype(SubType.CLUE, game)) { return; } - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } @Override diff --git a/Mage.Sets/src/mage/cards/h/HintOfInsanity.java b/Mage.Sets/src/mage/cards/h/HintOfInsanity.java index e236b81163..5d8af4de02 100644 --- a/Mage.Sets/src/mage/cards/h/HintOfInsanity.java +++ b/Mage.Sets/src/mage/cards/h/HintOfInsanity.java @@ -12,6 +12,7 @@ import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; +import mage.util.CardUtil; import java.util.HashMap; import java.util.Map; @@ -70,7 +71,7 @@ class HintOfInsanityEffect extends OneShotEffect { .getCards(game) .stream() .map(MageObject::getName) - .forEach(s -> nameCounts.compute(s, (u, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(s -> nameCounts.compute(s, CardUtil::setOrIncrementValue)); Cards cards = new CardsImpl( player.getHand() .getCards(game) diff --git a/Mage.Sets/src/mage/cards/i/IdolOfEndurance.java b/Mage.Sets/src/mage/cards/i/IdolOfEndurance.java index e23c609a88..8bf959f357 100644 --- a/Mage.Sets/src/mage/cards/i/IdolOfEndurance.java +++ b/Mage.Sets/src/mage/cards/i/IdolOfEndurance.java @@ -19,6 +19,7 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.*; @@ -275,6 +276,6 @@ class IdolOfEnduranceWatcher extends Watcher { source.getSourceId(), source.getSourceObjectZoneChangeCounter(), game ); morMap.computeIfAbsent(mor, m -> new HashMap<>()) - .compute(source.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + .compute(source.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/i/InvasionOfTheGiants.java b/Mage.Sets/src/mage/cards/i/InvasionOfTheGiants.java index dbbe8f22a4..3bdf237636 100644 --- a/Mage.Sets/src/mage/cards/i/InvasionOfTheGiants.java +++ b/Mage.Sets/src/mage/cards/i/InvasionOfTheGiants.java @@ -149,7 +149,7 @@ class InvasionOfTheGiantsWatcher extends Watcher { } Spell spell = game.getSpell(event.getSourceId()); if (spell != null && spell.hasSubtype(SubType.GIANT, game)) { - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/i/IridescentHornbeetle.java b/Mage.Sets/src/mage/cards/i/IridescentHornbeetle.java index 7f5cfa5852..bc0f62c5ee 100644 --- a/Mage.Sets/src/mage/cards/i/IridescentHornbeetle.java +++ b/Mage.Sets/src/mage/cards/i/IridescentHornbeetle.java @@ -16,6 +16,7 @@ import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.token.InsectToken; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -92,7 +93,7 @@ class IridescentHornbeetleWatcher extends Watcher { || !event.getData().equals(CounterType.P1P1.getName())) { return; } - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } @Override diff --git a/Mage.Sets/src/mage/cards/k/KazaRoilChaser.java b/Mage.Sets/src/mage/cards/k/KazaRoilChaser.java index 1beb5ca09d..af14498a2c 100644 --- a/Mage.Sets/src/mage/cards/k/KazaRoilChaser.java +++ b/Mage.Sets/src/mage/cards/k/KazaRoilChaser.java @@ -141,7 +141,7 @@ class KazaRoilChaserWatcher extends Watcher { } Spell spell = game.getSpell(event.getSourceId()); if (spell != null && spell.isInstantOrSorcery(game)) { - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/l/LilianasStandardBearer.java b/Mage.Sets/src/mage/cards/l/LilianasStandardBearer.java index af65fc92e7..f505ea1140 100644 --- a/Mage.Sets/src/mage/cards/l/LilianasStandardBearer.java +++ b/Mage.Sets/src/mage/cards/l/LilianasStandardBearer.java @@ -15,6 +15,7 @@ import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -89,7 +90,7 @@ class LilianasStandardBearerWatcher extends Watcher { } ZoneChangeEvent zEvent = (ZoneChangeEvent) event; if (zEvent.isDiesEvent() && zEvent.getTarget().isCreature(game)) { - playerMap.compute(zEvent.getTarget().getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(zEvent.getTarget().getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/m/MaelstromMuse.java b/Mage.Sets/src/mage/cards/m/MaelstromMuse.java index cdb2b60064..fbff34b067 100644 --- a/Mage.Sets/src/mage/cards/m/MaelstromMuse.java +++ b/Mage.Sets/src/mage/cards/m/MaelstromMuse.java @@ -126,7 +126,7 @@ class MaelstromMuseWatcher extends Watcher { } Spell spell = game.getSpell(event.getSourceId()); if (spell != null && spell.isInstantOrSorcery(game)) { - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java b/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java index 4d0ab71efc..65f3990d29 100644 --- a/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java +++ b/Mage.Sets/src/mage/cards/r/RionyaFireDancer.java @@ -16,6 +16,7 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.target.TargetPermanent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -121,7 +122,7 @@ class RionyaFireDancerWatcher extends Watcher { } Spell spell = game.getSpell(event.getTargetId()); if (spell != null && spell.isInstantOrSorcery(game)) { - playerMap.compute(spell.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(spell.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/s/SerpentsSoulJar.java b/Mage.Sets/src/mage/cards/s/SerpentsSoulJar.java index e5a3f7c327..53de04b455 100644 --- a/Mage.Sets/src/mage/cards/s/SerpentsSoulJar.java +++ b/Mage.Sets/src/mage/cards/s/SerpentsSoulJar.java @@ -18,6 +18,7 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.*; @@ -185,6 +186,6 @@ class SerpentsSoulJarWatcher extends Watcher { source.getSourceId(), source.getSourceObjectZoneChangeCounter(), game ); morMap.computeIfAbsent(mor, m -> new HashMap<>()) - .compute(source.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + .compute(source.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/s/SorcererClass.java b/Mage.Sets/src/mage/cards/s/SorcererClass.java index 54ce5a2226..98ae21ab21 100644 --- a/Mage.Sets/src/mage/cards/s/SorcererClass.java +++ b/Mage.Sets/src/mage/cards/s/SorcererClass.java @@ -27,6 +27,7 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; import mage.players.Player; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -182,7 +183,7 @@ class SorcererClassWatcher extends Watcher { if (spell == null || !spell.isInstantOrSorcery(game)) { return; } - spellMap.compute(spell.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + spellMap.compute(spell.getControllerId(), CardUtil::setOrIncrementValue); } @Override diff --git a/Mage.Sets/src/mage/cards/t/ThalisseReverentMedium.java b/Mage.Sets/src/mage/cards/t/ThalisseReverentMedium.java index 8b984e5734..b45ef79bbb 100644 --- a/Mage.Sets/src/mage/cards/t/ThalisseReverentMedium.java +++ b/Mage.Sets/src/mage/cards/t/ThalisseReverentMedium.java @@ -14,6 +14,7 @@ import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.token.SpiritWhiteToken; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -93,7 +94,7 @@ class ThalisseReverentMediumWatcher extends Watcher { if (event.getType() != GameEvent.EventType.CREATED_TOKEN) { return; } - tokenMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + tokenMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } @Override diff --git a/Mage.Sets/src/mage/cards/t/TheSpaceFamilyGoblinson.java b/Mage.Sets/src/mage/cards/t/TheSpaceFamilyGoblinson.java index 3a20bc148f..dc9b65d9aa 100644 --- a/Mage.Sets/src/mage/cards/t/TheSpaceFamilyGoblinson.java +++ b/Mage.Sets/src/mage/cards/t/TheSpaceFamilyGoblinson.java @@ -19,6 +19,7 @@ import mage.constants.*; import mage.counters.CounterType; import mage.game.Game; import mage.game.events.GameEvent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -103,7 +104,7 @@ class TheSpaceFamilyGoblinsonWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.DIE_ROLLED) { - map.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + map.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage.Sets/src/mage/cards/v/ValiantRescuer.java b/Mage.Sets/src/mage/cards/v/ValiantRescuer.java index 52df6596b7..3014e4aad7 100644 --- a/Mage.Sets/src/mage/cards/v/ValiantRescuer.java +++ b/Mage.Sets/src/mage/cards/v/ValiantRescuer.java @@ -16,6 +16,7 @@ import mage.game.events.GameEvent; import mage.game.permanent.token.HumanSoldierToken; import mage.game.stack.StackAbility; import mage.game.stack.StackObject; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -114,7 +115,7 @@ class ValiantRescuerWatcher extends Watcher { && item.getStackAbility() instanceof CyclingAbility) { playerMap.computeIfAbsent(event.getPlayerId(), u -> new HashMap<>()); playerMap.get(event.getPlayerId()).compute( - event.getSourceId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1) + event.getSourceId(), CardUtil::setOrIncrementValue ); } } diff --git a/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java b/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java index ee3e33bb52..7937707bcd 100644 --- a/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java +++ b/Mage.Sets/src/mage/cards/w/WhispersteelDagger.java @@ -15,6 +15,7 @@ import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.players.ManaPoolItem; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -189,6 +190,6 @@ class WhispersteelDaggerWatcher extends Watcher { ); morMap.computeIfAbsent(mor, m -> new HashMap<>()) .computeIfAbsent(ownerId, m -> new HashMap<>()) - .compute(source.getControllerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + .compute(source.getControllerId(), CardUtil::setOrIncrementValue); } } diff --git a/Mage/src/main/java/mage/abilities/dynamicvalue/common/GreatestSharedCreatureTypeCount.java b/Mage/src/main/java/mage/abilities/dynamicvalue/common/GreatestSharedCreatureTypeCount.java index 3c830fc666..493df46a47 100644 --- a/Mage/src/main/java/mage/abilities/dynamicvalue/common/GreatestSharedCreatureTypeCount.java +++ b/Mage/src/main/java/mage/abilities/dynamicvalue/common/GreatestSharedCreatureTypeCount.java @@ -10,6 +10,7 @@ import mage.constants.SubTypeSet; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.Permanent; +import mage.util.CardUtil; import java.util.*; @@ -43,7 +44,7 @@ public enum GreatestSharedCreatureTypeCount implements DynamicValue { .map(permanent -> permanent.getSubtype(game)) .flatMap(Collection::stream) .filter(subType -> subType.getSubTypeSet() == SubTypeSet.CreatureType) - .forEach(subType -> typeMap.compute(subType, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(subType -> typeMap.compute(subType, CardUtil::setOrIncrementValue)); return changelings + typeMap .values() diff --git a/Mage/src/main/java/mage/choices/VoteHandler.java b/Mage/src/main/java/mage/choices/VoteHandler.java index ba561d770f..dffd2f41f5 100644 --- a/Mage/src/main/java/mage/choices/VoteHandler.java +++ b/Mage/src/main/java/mage/choices/VoteHandler.java @@ -6,6 +6,7 @@ import mage.game.Game; import mage.game.events.VoteEvent; import mage.game.events.VotedEvent; import mage.players.Player; +import mage.util.CardUtil; import java.util.*; import java.util.stream.Collectors; @@ -86,7 +87,7 @@ public abstract class VoteHandler<T> { .stream() .flatMap(votesList -> votesList.getValue().stream()) .forEach(vote -> { - totalVotes.compute(vote, (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + totalVotes.compute(vote, CardUtil::setOrIncrementValue); }); Set<T> winners = this.getMostVoted(); @@ -157,7 +158,7 @@ public abstract class VoteHandler<T> { .values() .stream() .flatMap(Collection::stream) - .forEach(t -> map.compute(t, (s, i) -> i == null ? 1 : Integer.sum(i, 1))); + .forEach(t -> map.compute(t, CardUtil::setOrIncrementValue)); int max = map.values().stream().mapToInt(x -> x).max().orElse(0); return map .entrySet() diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java index d1bd3a5375..d997530266 100644 --- a/Mage/src/main/java/mage/util/CardUtil.java +++ b/Mage/src/main/java/mage/util/CardUtil.java @@ -1452,4 +1452,8 @@ public final class CardUtil { effect.apply(game, source); return true; } + + public static <T> int setOrIncrementValue(T u, Integer i) { + return i == null ? 1 : Integer.sum(i, 1); + } } diff --git a/Mage/src/main/java/mage/watchers/common/DiscardedCardWatcher.java b/Mage/src/main/java/mage/watchers/common/DiscardedCardWatcher.java index a6483f6781..692295b655 100644 --- a/Mage/src/main/java/mage/watchers/common/DiscardedCardWatcher.java +++ b/Mage/src/main/java/mage/watchers/common/DiscardedCardWatcher.java @@ -3,6 +3,7 @@ package mage.watchers.common; import mage.constants.WatcherScope; import mage.game.Game; import mage.game.events.GameEvent; +import mage.util.CardUtil; import mage.watchers.Watcher; import java.util.HashMap; @@ -23,7 +24,7 @@ public class DiscardedCardWatcher extends Watcher { @Override public void watch(GameEvent event, Game game) { if (event.getType() == GameEvent.EventType.DISCARDED_CARD) { - playerMap.compute(event.getPlayerId(), (u, i) -> i == null ? 1 : Integer.sum(i, 1)); + playerMap.compute(event.getPlayerId(), CardUtil::setOrIncrementValue); } }