This commit is contained in:
Jeff Wadsworth 2022-05-20 15:38:08 -05:00
parent b62c569549
commit fcde81b597

View file

@ -89,7 +89,10 @@ class VoltaicVisionaryTriggeredAbility extends TriggeredAbilityImpl {
if (!this.isControlledBy(event.getPlayerId())) {
return false;
}
Card card = game.getCard(event.getTargetId());
Card card = game.getCard(event.getSourceId());
if (card == null) {
return false;
}
return VoltaicVisionaryWatcher.checkCard(card, this, game);
}
@ -111,14 +114,18 @@ class VoltaicVisionaryWatcher extends Watcher {
@Override
public void watch(GameEvent event, Game game) {
if (event.getType() != GameEvent.EventType.ZONE_CHANGE
|| ((ZoneChangeEvent) event).getToZone() != Zone.EXILED) {
|| ((ZoneChangeEvent) event).getToZone() != Zone.EXILED
|| ((ZoneChangeEvent) event).getFromZone() != Zone.LIBRARY) {
return;
}
Card card = game.getCard(event.getTargetId());
if (card == null) {
return;
}
UUID exileId = game
.getExile()
.getExileZones()
.stream().filter(exileZone -> exileZone.contains(card))
.stream().filter(exileZone -> exileZone.contains(card.getId()))
.map(ExileZone::getId)
.findFirst()
.orElse(null);
@ -137,9 +144,8 @@ class VoltaicVisionaryWatcher extends Watcher {
static boolean checkCard(Card card, Ability source, Game game) {
return card != null
&& game.getState()
.getWatcher(VoltaicVisionaryWatcher.class)
.map
.getOrDefault(CardUtil.getCardExileZoneId(game, source), emptySet)
.contains(new MageObjectReference(card, game, -1));
.getWatcher(VoltaicVisionaryWatcher.class).map
.getOrDefault(CardUtil.getCardExileZoneId(game, source), emptySet)
.contains(new MageObjectReference(card, game, -1));
}
}