mirror of
https://github.com/correl/mage.git
synced 2025-04-05 09:12:29 -09:00
added cardutil method for incrementing map values
This commit is contained in:
parent
90ae244fa5
commit
e3b2ac15ba
28 changed files with 57 additions and 30 deletions
Mage.Sets/src/mage/cards
c
d
e
g
h
i
k
l
m
r
s
t
v
w
Mage/src/main/java/mage
abilities/dynamicvalue/common
choices
util
watchers/common
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue