minor fixes - remove inconsistent test, make isperia ability non-optional

This commit is contained in:
drmDev 2017-03-27 23:36:06 -04:00
parent f6279d1250
commit c25361202a
2 changed files with 2 additions and 85 deletions

View file

@ -66,7 +66,7 @@ public class IsperiaTheInscrutable extends CardImpl {
// Whenever Isperia the Inscrutable deals combat damage to a player, name a card. That player reveals his or her hand. If he or she reveals the named card, search your library for a creature card with flying, reveal it, put it into your hand, then shuffle your library.
Effect effect1 = new NameACardEffect(NameACardEffect.TypeOfName.ALL);
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(effect1, true, true);
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(effect1, false, true);
Effect effect2 = new IsperiaTheInscrutableEffect();
ability.addEffect(effect2);
this.addAbility(ability);
@ -105,7 +105,7 @@ class IsperiaTheInscrutableEffect extends OneShotEffect {
Player player = game.getPlayer(getTargetPointer().getFirst(game, source));
Object object = (String) game.getState().getValue(source.getSourceId().toString() + NameACardEffect.INFO_KEY);
if (player != null && object instanceof String) {
player.revealCards(player.getLogName() + "hand", player.getHand(), game, true);
player.revealCards(player.getLogName() + " hand", player.getHand(), game, true);
String namedCard = (String) object;
for (Card card : player.getHand().getCards(game)) {
if (card != null && card.getName().equals(namedCard)) {

View file

@ -29,8 +29,6 @@ package org.mage.test.cards.requirement;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.game.permanent.Permanent;
import org.junit.Assert;
import org.junit.Test;
import org.mage.test.serverside.base.CardTestPlayerBase;
@ -249,85 +247,4 @@ public class BlockRequirementTest extends CardTestPlayerBase {
assertGraveyardCount(playerB, "Dimensional Infiltrator", 1);
assertGraveyardCount(playerB, "Llanowar Elves", 1);
}
/*
Reported bug: Nacatl War-pride unable to be blocked ?
Basic case: have it be blocked by one creature.
*/
@Test
public void testNacatlWarPrideBlockOneCreature() {
/*
Nacatl War-Pride {3}{G}{G}{G}
Creature - Cat Warrior 3/3
Nacatl War-Pride must be blocked by exactly one creature if able.
Whenever Nacatl War-Pride attacks, create X tokens that are copies of Nacatl War-Pride and that are tapped and attacking,
where X is the number of creatures defending player controls. Exile the tokens at the beginning of the next end step.
*/
addCard(Zone.BATTLEFIELD, playerA, "Nacatl War-Pride");
/*
Primeval Titan {4}{G}{G}
Creature - Giant 6/6
Trample. Whenever Primeval Titan enters the battlefield or attacks, you may search your library for up to two land cards,
put them onto the battlefield tapped, then shuffle your library.
*/
addCard(Zone.BATTLEFIELD, playerB, "Primeval Titan");
attack(1, playerA, "Nacatl War-Pride");
setStopAt(1, PhaseStep.END_COMBAT);
execute();
assertLife(playerB, 17); // one 3/3 tokens attacking got through still, Nacatl forced to be blocked by Primeval
assertGraveyardCount(playerA, "Nacatl War-Pride", 1);
Permanent primetime = getPermanent("Primeval Titan", playerB);
Assert.assertEquals("Damage to Primeval should be 3 not 0", 3, primetime.getDamage());
}
/*
Reported bug: Nacatl War-pride unable to be blocked ?
Give Nacatl unblockable and attempt to block it. Mix the two effects "cannot be blocked" and "must be blocked".
*/
@Test
public void testNacatlWarPrideCannotBeBlocked() {
String nWarPride = "Nacatl War-Pride";
String pTitan = "Primeval Titan";
String aForm = "Aqueous Form";
/*
Nacatl War-Pride {3}{G}{G}{G}
Creature - Cat Warrior 3/3
Nacatl War-Pride must be blocked by exactly one creature if able.
Whenever Nacatl War-Pride attacks, create X tokens that are copies of Nacatl War-Pride and that are tapped and attacking,
where X is the number of creatures defending player controls. Exile the tokens at the beginning of the next end step.
*/
addCard(Zone.BATTLEFIELD, playerA, nWarPride);
/*
Enchantment - Aura {1}{U}
Enchanted creature can't be blocked.
Whenever enchanted creature attacks, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)
*/
addCard(Zone.HAND, playerA, aForm);
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
addCard(Zone.BATTLEFIELD, playerB, pTitan);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aForm, nWarPride);
attack(1, playerA, nWarPride);
block(1, playerB, pTitan, nWarPride); // blocking a token with the same name
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
assertLife(playerB, 17); // Nacatl dealt damage unblocked
assertPermanentCount(playerA, nWarPride, 1);
assertGraveyardCount(playerA, 0);
Permanent primetime = getPermanent(pTitan, playerB);
Assert.assertEquals("Damage to Primeval should be 3 not 0", 3, primetime.getDamage()); // blocked a token
}
}