mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
[GTC] small rework of Luminate Primordial (#8798)
This commit is contained in:
parent
254ed6a94e
commit
defc1a40b7
1 changed files with 11 additions and 6 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue