mirror of
https://github.com/correl/mage.git
synced 2024-11-15 03:00:16 +00:00
Added test for casting Force of Will using alternate casting costs.
This commit is contained in:
parent
a15deab99d
commit
2910274174
1 changed files with 88 additions and 0 deletions
|
@ -0,0 +1,88 @@
|
|||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package org.mage.test.cards.abilities.oneshot.counterspell;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
/**
|
||||
* Force of Will
|
||||
* Instant, 3UUU
|
||||
* You may pay 1 life and exile a blue card from your hand rather than pay Force of Will's mana cost.
|
||||
* Counter target spell.
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class ForceOfWillTest extends CardTestPlayerBase {
|
||||
|
||||
/**
|
||||
* Test that Force of Will can be played with alternate casting costs
|
||||
*
|
||||
*/
|
||||
@Test
|
||||
public void testWithBlueCardsInHand() {
|
||||
addCard(Zone.HAND, playerA, "Thoughtseize");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1);
|
||||
|
||||
addCard(Zone.HAND, playerB, "Force of Will");
|
||||
addCard(Zone.HAND, playerB, "Remand", 2); // blue cards to pay force of will
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thoughtseize", playerB);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Force of Will", "Thoughtseize");
|
||||
playerB.addChoice("Yes"); // use alternate costs
|
||||
|
||||
setStopAt(1, PhaseStep.CLEANUP);
|
||||
execute();
|
||||
|
||||
assertLife(playerA, 20);
|
||||
assertLife(playerB, 19); // losing 1 from Force of Will
|
||||
|
||||
assertHandCount(playerA, 0);
|
||||
assertGraveyardCount(playerA, 1);
|
||||
assertHandCount(playerB, 1); // One Remand left
|
||||
assertGraveyardCount(playerB, 1); // Force of Will
|
||||
assertExileCount("Remand", 1); // one Remand (cost from Force of Will)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that Force of Will can'be played with alternate casting costs
|
||||
* if no blue card is in hand and not enough mana available
|
||||
*
|
||||
*/
|
||||
@Test
|
||||
public void testWithRedCardsInHand() {
|
||||
addCard(Zone.HAND, playerA, "Thoughtseize");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1);
|
||||
|
||||
//
|
||||
addCard(Zone.HAND, playerB, "Force of Will");
|
||||
addCard(Zone.HAND, playerB, "Fireball", 2); // blue card to pay force of will
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thoughtseize", playerB);
|
||||
playerB.addChoice("Fireball");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Force of Will", "Thoughtseize");
|
||||
|
||||
setStopAt(1, PhaseStep.CLEANUP);
|
||||
execute();
|
||||
|
||||
assertLife(playerA, 18);
|
||||
assertLife(playerB, 20); // losing 1 from Force of Will
|
||||
|
||||
assertHandCount(playerA, 0);
|
||||
assertGraveyardCount(playerA, 1);
|
||||
assertHandCount(playerB, 2); // 1 Fireball 1 Force of Will
|
||||
assertGraveyardCount(playerB, 1); // 1 Fireball discarded because of Thoughseize
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue