From e952e83e1801af7ec2f85dddcfb804873121232c Mon Sep 17 00:00:00 2001 From: xenohedron Date: Tue, 12 Nov 2024 00:03:47 -0500 Subject: [PATCH] fix #13060 (Popular Entertainer) wrong compare logic in trigger check --- Mage.Sets/src/mage/cards/p/PopularEntertainer.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Mage.Sets/src/mage/cards/p/PopularEntertainer.java b/Mage.Sets/src/mage/cards/p/PopularEntertainer.java index 3ff04e51477..fa5afd36317 100644 --- a/Mage.Sets/src/mage/cards/p/PopularEntertainer.java +++ b/Mage.Sets/src/mage/cards/p/PopularEntertainer.java @@ -14,6 +14,7 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.game.events.DamagedBatchForOnePlayerEvent; import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; import mage.target.TargetPermanent; import java.util.UUID; @@ -69,14 +70,16 @@ class PopularEntertainerAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { DamagedBatchForOnePlayerEvent dEvent = (DamagedBatchForOnePlayerEvent) event; - int damage = dEvent.getEvents() .stream() - .filter(ev -> ev.getSourceId().equals(controllerId)) + .filter(e -> { + Permanent permanent = game.getPermanentOrLKIBattlefield(e.getSourceId()); + return permanent != null && permanent.isControlledBy(getControllerId()); + }) .mapToInt(GameEvent::getAmount) .sum(); - if (!dEvent.isCombatDamage() || damage < 1){ + if (!dEvent.isCombatDamage() || damage < 1) { return false; } FilterPermanent filter = new FilterCreaturePermanent(