mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
* Fixed a problem with Dash not giving Haste to the creature beginning with the second use of Dash (fixes #4985).
This commit is contained in:
parent
4e862019f6
commit
b6f7efe5e9
3 changed files with 28 additions and 4 deletions
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
package org.mage.test.cards.abilities.keywords;
|
||||
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
|
|
@ -120,4 +121,26 @@ public class DashTest extends CardTestPlayerBase {
|
|||
assertGraveyardCount(playerB, "Geist of the Moors", 1);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the creature got Dash again if cast again
|
||||
*/
|
||||
@Test
|
||||
public void testDashedCreatureDiesInCombatAndIsLaterRecast() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
|
||||
addCard(Zone.HAND, playerA, "Screamreach Brawler"); // 2/3
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
|
||||
setChoice(playerA, "Yes");
|
||||
attack(1, playerA, "Screamreach Brawler");
|
||||
|
||||
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
|
||||
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertLife(playerB, 18);
|
||||
assertPermanentCount(playerA, "Screamreach Brawler", 1);
|
||||
assertHandCount(playerA, "Screamreach Brawler", 0);
|
||||
assertAbility(playerA, "Screamreach Brawler", HasteAbility.getInstance(), true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,8 +145,8 @@ class UnearthLeavesBattlefieldEffect extends ReplacementEffectImpl {
|
|||
if (event.getTargetId().equals(source.getSourceId())) {
|
||||
ZoneChangeEvent zEvent = (ZoneChangeEvent) event;
|
||||
if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() != Zone.EXILED) {
|
||||
// started in graveyard going to battlefield so current zone change counter has to be +1
|
||||
return source.getSourceObjectZoneChangeCounter() + 1 == game.getState().getZoneChangeCounter(source.getSourceId());
|
||||
// Only move it to exile if it was this instance that was moved to battlefield with unearth
|
||||
return source.getSourceObjectZoneChangeCounter() == game.getState().getZoneChangeCounter(source.getSourceId());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1521,8 +1521,9 @@ public abstract class GameImpl implements Game, Serializable {
|
|||
@Override
|
||||
public void addEffect(ContinuousEffect continuousEffect, Ability source) {
|
||||
Ability newAbility = source.copy();
|
||||
|
||||
newAbility.setSourceObject(null, this); // Update the source object to the currently existing Object
|
||||
ContinuousEffect newEffect = continuousEffect.copy();
|
||||
|
||||
newEffect.newId();
|
||||
newEffect.init(newAbility, this);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue