forked from External/mage
fix The Raven's Warning
This commit is contained in:
parent
d249dcc815
commit
03a83df35a
1 changed files with 12 additions and 17 deletions
|
|
@ -64,7 +64,7 @@ public final class TheRavensWarning extends CardImpl {
|
||||||
|
|
||||||
class TheRavensWarningTriggeredAbility extends DelayedTriggeredAbility {
|
class TheRavensWarningTriggeredAbility extends DelayedTriggeredAbility {
|
||||||
|
|
||||||
public TheRavensWarningTriggeredAbility() {
|
TheRavensWarningTriggeredAbility() {
|
||||||
super(new LookAtTargetPlayerHandEffect(), Duration.EndOfTurn, false);
|
super(new LookAtTargetPlayerHandEffect(), Duration.EndOfTurn, false);
|
||||||
this.addEffect(new DrawCardSourceControllerEffect(1));
|
this.addEffect(new DrawCardSourceControllerEffect(1));
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,6 @@ class TheRavensWarningTriggeredAbility extends DelayedTriggeredAbility {
|
||||||
return new TheRavensWarningTriggeredAbility(this);
|
return new TheRavensWarningTriggeredAbility(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Code based on ControlledCreaturesDealCombatDamagePlayerTriggeredAbility
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkEventType(GameEvent event, Game game) {
|
public boolean checkEventType(GameEvent event, Game game) {
|
||||||
return event.getType() == GameEvent.EventType.DAMAGED_BATCH_FOR_ONE_PLAYER;
|
return event.getType() == GameEvent.EventType.DAMAGED_BATCH_FOR_ONE_PLAYER;
|
||||||
|
|
@ -86,22 +85,18 @@ class TheRavensWarningTriggeredAbility extends DelayedTriggeredAbility {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
|
|
||||||
DamagedBatchForOnePlayerEvent dEvent = (DamagedBatchForOnePlayerEvent) event;
|
DamagedBatchForOnePlayerEvent dEvent = (DamagedBatchForOnePlayerEvent) event;
|
||||||
|
if (!dEvent.isCombatDamage()) {
|
||||||
int flyingDamage = dEvent.getEvents()
|
|
||||||
.stream()
|
|
||||||
.filter(ev -> {
|
|
||||||
if (!ev.getSourceId().equals(controllerId)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Permanent permanent = game.getPermanentOrLKIBattlefield(ev.getSourceId());
|
return dEvent.getEvents().stream()
|
||||||
return permanent != null && permanent.isCreature() && permanent.hasAbility(FlyingAbility.getInstance(), game);
|
.anyMatch(e -> {
|
||||||
})
|
Permanent permanent = game.getPermanentOrLKIBattlefield(e.getSourceId());
|
||||||
.mapToInt(GameEvent::getAmount)
|
return permanent != null
|
||||||
.sum();
|
&& permanent.isCreature(game)
|
||||||
|
&& permanent.isControlledBy(this.getControllerId())
|
||||||
return flyingDamage > 0 && dEvent.isCombatDamage();
|
&& permanent.hasAbility(FlyingAbility.getInstance(), game);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue