mirror of
https://github.com/correl/mage.git
synced 2025-01-12 19:25:44 +00:00
changed how effects are applied for triggered abilities, added test (fixes #7083)
This commit is contained in:
parent
27a4f27727
commit
827ffb5fb2
3 changed files with 26 additions and 1 deletions
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,7 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
|
||||||
super(ability);
|
super(ability);
|
||||||
this.filter = ability.filter;
|
this.filter = ability.filter;
|
||||||
this.setTargetPointer = ability.setTargetPointer;
|
this.setTargetPointer = ability.setTargetPointer;
|
||||||
|
this.once = ability.once;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnce(boolean once) {
|
public void setOnce(boolean once) {
|
||||||
|
@ -57,7 +58,6 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkTrigger(GameEvent event, Game game) {
|
public boolean checkTrigger(GameEvent event, Game game) {
|
||||||
game.applyEffects(); // Hooded Blightfang
|
|
||||||
Permanent sourcePermanent = game.getPermanent(event.getSourceId());
|
Permanent sourcePermanent = game.getPermanent(event.getSourceId());
|
||||||
if (sourcePermanent != null && filter.match(sourcePermanent, sourceId, controllerId, game)) {
|
if (sourcePermanent != null && filter.match(sourcePermanent, sourceId, controllerId, game)) {
|
||||||
if (setTargetPointer) {
|
if (setTargetPointer) {
|
||||||
|
|
|
@ -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
|
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);
|
handleBanding(attacker, game);
|
||||||
// This can only be used to modify the event, the attack can't be replaced here
|
// 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));
|
game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.ATTACKER_DECLARED, group.defenderId, attacker, attackingPlayerId));
|
||||||
|
|
Loading…
Reference in a new issue