changed how effects are applied for triggered abilities, added test (fixes #7083)

This commit is contained in:
Evan Kranzler 2020-09-29 18:55:51 -04:00
parent 27a4f27727
commit 827ffb5fb2
3 changed files with 26 additions and 1 deletions

View file

@ -0,0 +1,24 @@
package org.mage.test.cards.single.m21;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
public class HoodedBlightfangTest extends CardTestPlayerBase {
@Test
public void testBowOfNylea() {
addCard(Zone.BATTLEFIELD, playerA, "Hooded Blightfang");
addCard(Zone.BATTLEFIELD, playerA, "Raging Goblin");
addCard(Zone.BATTLEFIELD, playerA, "Bow of Nylea");
attack(1, playerA, "Raging Goblin");
setStopAt(2, PhaseStep.END_TURN);
execute();
assertAllCommandsUsed();
assertLife(playerA, 20 + 1);
assertLife(playerB, 20 - 1 - 1);
}
}

View file

@ -44,6 +44,7 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
super(ability);
this.filter = ability.filter;
this.setTargetPointer = ability.setTargetPointer;
this.once = ability.once;
}
public void setOnce(boolean once) {
@ -57,7 +58,6 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
@Override
public boolean checkTrigger(GameEvent event, Game game) {
game.applyEffects(); // Hooded Blightfang
Permanent sourcePermanent = game.getPermanent(event.getSourceId());
if (sourcePermanent != null && filter.match(sourcePermanent, sourceId, controllerId, game)) {
if (setTargetPointer) {

View file

@ -275,6 +275,7 @@ public class Combat implements Serializable, Copyable<Combat> {
attackingPermanent.tap(true, game); // to tap with event finally here is needed to prevent abusing of Vampire Envoy like cards
}
}
game.applyEffects();
handleBanding(attacker, game);
// This can only be used to modify the event, the attack can't be replaced here
game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.ATTACKER_DECLARED, group.defenderId, attacker, attackingPlayerId));