added cardutil method for incrementing map values

This commit is contained in:
Evan Kranzler 2021-11-29 21:34:04 -05:00
parent 90ae244fa5
commit e3b2ac15ba
28 changed files with 57 additions and 30 deletions

View file

@ -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()

View file

@ -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()

View file

@ -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);
}
}

View file

@ -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);
}
}