fix #13060 (Popular Entertainer)

wrong compare logic in trigger check
This commit is contained in:
xenohedron 2024-11-12 00:03:47 -05:00
parent f5468fe7ce
commit e952e83e18

View file

@ -14,6 +14,7 @@ import mage.filter.predicate.permanent.ControllerIdPredicate;
import mage.game.Game; import mage.game.Game;
import mage.game.events.DamagedBatchForOnePlayerEvent; import mage.game.events.DamagedBatchForOnePlayerEvent;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.target.TargetPermanent; import mage.target.TargetPermanent;
import java.util.UUID; import java.util.UUID;
@ -69,14 +70,16 @@ class PopularEntertainerAbility extends TriggeredAbilityImpl {
@Override @Override
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
DamagedBatchForOnePlayerEvent dEvent = (DamagedBatchForOnePlayerEvent) event; DamagedBatchForOnePlayerEvent dEvent = (DamagedBatchForOnePlayerEvent) event;
int damage = dEvent.getEvents() int damage = dEvent.getEvents()
.stream() .stream()
.filter(ev -> ev.getSourceId().equals(controllerId)) .filter(e -> {
Permanent permanent = game.getPermanentOrLKIBattlefield(e.getSourceId());
return permanent != null && permanent.isControlledBy(getControllerId());
})
.mapToInt(GameEvent::getAmount) .mapToInt(GameEvent::getAmount)
.sum(); .sum();
if (!dEvent.isCombatDamage() || damage < 1){ if (!dEvent.isCombatDamage() || damage < 1) {
return false; return false;
} }
FilterPermanent filter = new FilterCreaturePermanent( FilterPermanent filter = new FilterCreaturePermanent(