Merge pull request #3422 from ingmargoudt/narset

fix issue 3415
This commit is contained in:
ingmargoudt 2017-05-24 12:50:09 +02:00 committed by GitHub
commit c61744d7c2
2 changed files with 37 additions and 2 deletions

View file

@ -33,6 +33,9 @@ import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.Costs;
import mage.abilities.costs.CostsImpl;
import mage.abilities.effects.AsThoughEffectImpl;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.OneShotEffect;
@ -146,7 +149,7 @@ class NarsetEnlightenedMasterCastFromExileEffect extends AsThoughEffectImpl {
if (card != null) {
Player player = game.getPlayer(affectedControllerId);
if (player != null) {
player.setCastSourceIdWithAlternateMana(objectId, null, null);
player.setCastSourceIdWithAlternateMana(objectId, null, card.getSpellAbility().getCosts());
return true;
}
}

View file

@ -33,7 +33,6 @@ import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
/**
*
* @author LevelX2
*/
public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
@ -137,4 +136,37 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
}
@Test
public void testNarsetEnlightenedMasterAdditionalCost() {
// First strike
// Hexproof
// Whenever Narset, Enlightented Master attacks, exile the top four cards of your library. Until end of turn, you may cast noncreature cards exiled with Narset this turn without paying their mana costs.
skipInitShuffling();
addCard(Zone.BATTLEFIELD, playerB, "Narset, Enlightened Master", 1);
addCard(Zone.HAND, playerB, "Swamp");
addCard(Zone.LIBRARY, playerB, "Plains");
addCard(Zone.LIBRARY, playerB, "Plains");
addCard(Zone.LIBRARY, playerB, "Plains");
addCard(Zone.LIBRARY, playerB, "Cathartic Reunion");
addCard(Zone.LIBRARY, playerB, "Forest");
attack(2, playerB, "Narset, Enlightened Master");
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Cathartic Reunion");
setChoice(playerB, "Swamp^Forest");
setStopAt(2, PhaseStep.END_TURN);
execute();
assertHandCount(playerB, 3);
assertGraveyardCount(playerB, "Forest", 1);
assertGraveyardCount(playerB, "Swamp", 1);
assertGraveyardCount(playerB, "Cathartic Reunion", 1);
assertGraveyardCount(playerB, 3);
assertExileCount(playerB, "Plains", 3);
assertExileCount(playerB, 3);
}
}