mirror of
https://github.com/magefree/mage.git
synced 2026-01-09 12:22:10 -08:00
* AI: improved support of "as though mana" abilities (now computer can choose correct mana ability to pay, example: Draugr Necromancer);
* Dev: added card's LKI support of multi part cards (mdf/split/adventure); * Dev: improved support of adding/removing counters from mdf cards; * Draugr Necromancer - fixed support of mdf/split/adventure cards (#7620);
This commit is contained in:
parent
adc945748b
commit
dda69cd009
12 changed files with 227 additions and 65 deletions
|
|
@ -0,0 +1,34 @@
|
|||
package org.mage.test.cards.asthough;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public class AsThoughManaAndAITest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void test_AutoPaymentMustUseAsThoughMana() {
|
||||
// possible bug: AI auto-payment uses first mana ability from the mana source, so multi-colored lands can be broken
|
||||
|
||||
// You may spend white mana as though it were red mana.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Sunglasses of Urza", 1);
|
||||
//
|
||||
// {T}: Add {U} or {W}.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Sea of Clouds", 1);
|
||||
addCard(Zone.HAND, playerA, "Lightning Bolt", 1); // {R}
|
||||
|
||||
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Lightning Bolt", true);
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
||||
assertLife(playerB, 20 - 3);
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package org.mage.test.cards.single.khm;
|
|||
import mage.constants.PhaseStep;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
|
|
@ -186,16 +185,16 @@ public class DraugrNecromancerTest extends CardTestPlayerBase {
|
|||
@Test
|
||||
public void testCastMDFCFrontFromExile() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, necromancer);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Badlands", 6);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Badlands", 6); // {B} or {R}
|
||||
addCard(Zone.HAND, playerA, murder);
|
||||
addCard(Zone.HAND, playerB, birgi);
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 3);
|
||||
|
||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, birgi);
|
||||
|
||||
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, murder, birgi);
|
||||
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, murder, birgi); // {1}{B}{B}
|
||||
|
||||
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, birgi);
|
||||
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, birgi); // {2}{R}
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(3, PhaseStep.END_TURN);
|
||||
|
|
@ -232,7 +231,6 @@ public class DraugrNecromancerTest extends CardTestPlayerBase {
|
|||
assertExileCount(playerB, birgi, 0);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void testCastMDFCFrontFromExileWithSnow() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, necromancer);
|
||||
|
|
@ -257,7 +255,6 @@ public class DraugrNecromancerTest extends CardTestPlayerBase {
|
|||
assertExileCount(playerB, birgi, 0);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@Test
|
||||
public void testCastMDFCBackFromExileWithSnow() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, necromancer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue