diff --git a/Mage.Sets/src/mage/cards/a/AlelaCunningConqueror.java b/Mage.Sets/src/mage/cards/a/AlelaCunningConqueror.java index ba8ec03702a..e2c86502c59 100644 --- a/Mage.Sets/src/mage/cards/a/AlelaCunningConqueror.java +++ b/Mage.Sets/src/mage/cards/a/AlelaCunningConqueror.java @@ -89,14 +89,12 @@ class AlelaCunningConquerorTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { DamagedBatchEvent dEvent = (DamagedBatchEvent) event; - if (dEvent == null) { + if (!dEvent.isCombatDamage()) { return false; } - List events = dEvent .getEvents() .stream() - .filter(DamagedEvent::isCombatDamage) .filter(e -> { Permanent permanent = game.getPermanentOrLKIBattlefield(e.getSourceId()); return permanent != null diff --git a/Mage.Sets/src/mage/cards/c/ContestedGameBall.java b/Mage.Sets/src/mage/cards/c/ContestedGameBall.java index 8fb609ac523..9f1f5ea487b 100644 --- a/Mage.Sets/src/mage/cards/c/ContestedGameBall.java +++ b/Mage.Sets/src/mage/cards/c/ContestedGameBall.java @@ -22,7 +22,7 @@ import mage.constants.Outcome; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.Game; -import mage.game.events.DamagedEvent; +import mage.game.events.DamagedBatchEvent; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.permanent.token.TreasureToken; @@ -79,15 +79,12 @@ class ContestedGameBallTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.DAMAGED_PLAYER; + return event.getType() == GameEvent.EventType.DAMAGED_BATCH_FOR_ONE_PLAYER; } @Override public boolean checkTrigger(GameEvent event, Game game) { - if (event.getTargetId() != this.getControllerId()) { - return false; - } - if (((DamagedEvent) event).isCombatDamage()) { + if (((DamagedBatchEvent) event).isCombatDamage() && event.getPlayerId().equals(this.getControllerId())) { this.getAllEffects().setTargetPointer(new FixedTarget(game.getActivePlayerId())); // attacking player is active player return true; diff --git a/Mage/src/main/java/mage/game/events/DamagedBatchEvent.java b/Mage/src/main/java/mage/game/events/DamagedBatchEvent.java index d363c7fe11d..584ce2ac794 100644 --- a/Mage/src/main/java/mage/game/events/DamagedBatchEvent.java +++ b/Mage/src/main/java/mage/game/events/DamagedBatchEvent.java @@ -14,7 +14,7 @@ public abstract class DamagedBatchEvent extends GameEvent implements BatchGameEv private final Class damageClazz; private final Set events = new HashSet<>(); - public DamagedBatchEvent(EventType type, Class damageClazz) { + protected DamagedBatchEvent(EventType type, Class damageClazz) { super(type, null, null, null); this.damageClazz = damageClazz; } @@ -40,6 +40,10 @@ public abstract class DamagedBatchEvent extends GameEvent implements BatchGameEv .sum(); } + public boolean isCombatDamage() { + return events.stream().anyMatch(DamagedEvent::isCombatDamage); + } + @Override @Deprecated // events can store a diff value, so search it from events list instead public UUID getTargetId() {