mirror of
https://github.com/magefree/mage.git
synced 2025-12-28 06:22:01 -08:00
* Blatant Thievery - Fixed a problem of AI target handling.
This commit is contained in:
parent
1d2132648b
commit
ac7e6e0f86
2 changed files with 111 additions and 113 deletions
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* 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.multiplayer;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import mage.constants.MultiplayerAttackOption;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.RangeOfInfluence;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.FreeForAll;
|
||||
import mage.game.Game;
|
||||
import mage.game.GameException;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestMultiPlayerBase;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public class BlatantThieveryTest extends CardTestMultiPlayerBase {
|
||||
|
||||
@Override
|
||||
protected Game createNewGameAndPlayers() throws GameException, FileNotFoundException {
|
||||
Game game = new FreeForAll(MultiplayerAttackOption.MULTIPLE, RangeOfInfluence.ALL, 0, 20);
|
||||
// Player order: A -> D -> C -> B
|
||||
playerA = createPlayer(game, playerA, "PlayerA");
|
||||
playerB = createPlayer(game, playerB, "PlayerB");
|
||||
playerC = createPlayer(game, playerC, "PlayerC");
|
||||
playerD = createPlayer(game, playerD, "PlayerD");
|
||||
return game;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void NormalTest() {
|
||||
// For each opponent, gain control of target permanent that player controls.
|
||||
addCard(Zone.HAND, playerA, "Blatant Thievery"); // Sorcery {4}{U}{U}{U}
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 7);
|
||||
|
||||
// Player order: A -> D -> C -> B
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 2);
|
||||
addCard(Zone.BATTLEFIELD, playerC, "Walking Corpse", 2);
|
||||
addCard(Zone.BATTLEFIELD, playerD, "Pillarfield Ox", 2);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Blatant Thievery");
|
||||
addTarget(playerA, "Silvercoat Lion");
|
||||
addTarget(playerA, "Walking Corpse");
|
||||
addTarget(playerA, "Pillarfield Ox");
|
||||
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||
assertPermanentCount(playerA, "Walking Corpse", 1);
|
||||
assertPermanentCount(playerA, "Pillarfield Ox", 1);
|
||||
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
||||
assertPermanentCount(playerC, "Walking Corpse", 1);
|
||||
assertPermanentCount(playerD, "Pillarfield Ox", 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ControlChangeTest() {
|
||||
// For each opponent, gain control of target permanent that player controls.
|
||||
addCard(Zone.HAND, playerA, "Blatant Thievery"); // Sorcery {4}{U}{U}{U}
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 7);
|
||||
|
||||
addCard(Zone.HAND, playerB, "Act of Aggression"); // Instant {3}{M}{M}
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 5);
|
||||
|
||||
// Player order: A -> D -> C -> B
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1);
|
||||
addCard(Zone.BATTLEFIELD, playerC, "Walking Corpse", 1);
|
||||
addCard(Zone.BATTLEFIELD, playerD, "Pillarfield Ox", 1);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Blatant Thievery");
|
||||
addTarget(playerA, "Silvercoat Lion");
|
||||
addTarget(playerA, "Walking Corpse");
|
||||
addTarget(playerA, "Pillarfield Ox");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Act of Aggression", "Pillarfield Ox", "Blatant Thievery");
|
||||
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertGraveyardCount(playerA, "Blatant Thievery", 1);
|
||||
assertGraveyardCount(playerB, "Act of Aggression", 1);
|
||||
|
||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||
assertPermanentCount(playerA, "Walking Corpse", 1);
|
||||
assertPermanentCount(playerB, "Pillarfield Ox", 1);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue