[GTC] small rework of Luminate Primordial (#8798)

This commit is contained in:
Evan Kranzler 2022-03-29 18:43:49 -04:00
parent 254ed6a94e
commit defc1a40b7

View file

@ -13,6 +13,7 @@ import mage.constants.SubType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.filter.predicate.permanent.ControllerIdPredicate;
import mage.game.Controllable;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
@ -98,20 +99,24 @@ class LuminatePrimordialEffect extends OneShotEffect {
Set<Permanent> permanents = source Set<Permanent> permanents = source
.getTargets() .getTargets()
.stream() .stream()
.map(Target::getFirstTarget) .map(Target::getTargets)
.flatMap(Collection::stream)
.map(game::getPermanent) .map(game::getPermanent)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
Map<UUID, Integer> map = new HashMap<>(); Map<UUID, Integer> map = permanents
permanents.stream().map(p -> map.put(p.getControllerId(), p.getPower().getValue())); .stream()
.collect(Collectors.toMap(
Controllable::getControllerId,
permanent -> permanent.getPower().getValue()
));
controller.moveCards(permanents, Zone.EXILED, source, game); controller.moveCards(permanents, Zone.EXILED, source, game);
for (Map.Entry<UUID, Integer> entry : map.entrySet()) { for (Map.Entry<UUID, Integer> entry : map.entrySet()) {
Player player = game.getPlayer(entry.getKey()); Player player = game.getPlayer(entry.getKey());
if (player == null || entry.getValue() < 1) { if (player != null && entry.getValue() > 0) {
continue;
}
player.gainLife(entry.getValue(), game, source); player.gainLife(entry.getValue(), game, source);
} }
}
return true; return true;
} }
} }