- Triadasoul added Moroii, Duskmantle, House of Shadow, Nemesis of Reason, Vampire Lacerator, Ambassador Laquatus, Raven Guild Master, Vedalken Entrancer, Forced Fruition, Memory Erosion, Glimpse the Unthinkable, Tome Scour.

- Changed token image name: br_1_1_demon.jpg => br_1_1_minor_demon.jpg.
This commit is contained in:
jendave
2011-08-06 02:54:54 +00:00
parent 67006bb782
commit 9f8d58e367
7 changed files with 456 additions and 6 deletions

View File

@@ -18,6 +18,17 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg
forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748
forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587
forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586
glimpse_the_unthinkable.jpg http://www.wizards.com/global/images/magic/general/glimpse_the_unthinkable.jpg
tome_scour.jpg http://www.wizards.com/global/images/magic/general/tome_scour.jpg
memory_erosion.jpg http://www.wizards.com/global/images/magic/general/memory_erosion.jpg
forced_fruition.jpg http://www.wizards.com/global/images/magic/general/Forced_Fruition.jpg
vedalken_entrancer.jpg http://www.wizards.com/global/images/magic/general/vedalken_entrancer.jpg
raven_guild_master.jpg http://www.wizards.com/global/images/magic/general/raven_guild_master.jpg
ambassador_laquatus.jpg http://www.wizards.com/global/images/magic/general/ambassador_laquatus.jpg
vampire_lacerator.jpg http://www.wizards.com/global/images/magic/general/vampire_lacerator.jpg
nemesis_of_reason.jpg http://www.wizards.com/global/images/magic/general/nemesis_of_reason.jpg
duskmantle_house_of_shadow.jpg http://www.wizards.com/global/images/magic/general/Duskmantle_House_of_Shadow.jpg
moroii.jpg http://www.wizards.com/global/images/magic/general/moroii.jpg
laquatuss_champion.jpg http://www.wizards.com/global/images/magic/general/laquatuss_champion.jpg
identity_crisis.jpg http://www.wizards.com/global/images/magic/general/identity_crisis.jpg
lobotomy.jpg http://www.wizards.com/global/images/magic/general/lobotomy.jpg

View File

@@ -1,3 +1,67 @@
Glimpse the Unthinkable
U B
Sorcery
Target player puts the top ten cards of his or her library into his or her graveyard.
Tome Scour
U
Sorcery
Target player puts the top five cards of his or her library into his or her graveyard.
Memory Erosion
1 U U
Enchantment
Whenever an opponent casts a spell, that player puts the top two cards of his or her library into his or her graveyard.
Forced Fruition
4 U U
Enchantment
Whenever an opponent casts a spell, that player draws seven cards.
Vedalken Entrancer
3 U
Creature Vedalken Wizard
no text
1/4
Raven Guild Master
1 U U
Creature Wizard Mutant
Whenever Raven Guild Master deals combat damage to a player, that player removes the top ten cards of his or her library from the game.
1/1
Morph:2 U U
Ambassador Laquatus
1 U U
Legendary Creature Merfolk Wizard
no text
1/3
Vampire Lacerator
B
Creature Vampire Warrior
At the beginning of your upkeep, you lose 1 life unless an opponent has 10 or less life.
2/2
Nemesis of Reason
3 U B
Creature Leviathan Horror
Whenever Nemesis of Reason attacks, defending player puts the top ten cards of his or her library into his or her graveyard.
3/7
Duskmantle, House of Shadow
no cost
Land
no text
tap: add 1
Moroii
2 U B
Creature Vampire
At the beginning of your upkeep, you lose 1 life.
4/4
Flying
Identity Crisis
2 W W B B
Sorcery

View File

@@ -1631,7 +1631,6 @@ public class CardFactory implements NewConstants {
}
}
}
if (results.size() > 0)
{
@@ -17345,6 +17344,48 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
}//*************** END ************ END **************************
//*************** START *********** START **************************
if (cardName.equals("Glimpse the Unthinkable") || cardName.equals("Tome Scour"))
{
final SpellAbility spell = new Spell(card)
{
private static final long serialVersionUID = 42470566751344693L;
public boolean canPlayAI()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
return libList.size() > 0;
}
public void resolve()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player);
CardList libList = new CardList(lib.getCards());
int max = 0;
if (cardName.equals("Glimpse the Unthinkable")) max = 10; else max = 5;
if (libList.size() < max)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
};//SpellAbility
spell.setBeforePayMana(CardFactoryUtil.input_targetPlayer(spell));
card.clearSpellAbility();
card.addSpellAbility(spell);
}//*************** END ************ END **************************
//*************** START *********** START **************************
if (cardName.equals("Traumatize"))
{
@@ -17512,7 +17553,8 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
CardList grvList = new CardList(grave.getCards());
CardList fullHand = new CardList(hand.getCards());
Card[] handChoices = removeLand(hand.getCards());
if (fullHand.size() > 0 && card.getController().equals(Constant.Player.Human))
AllZone.Display.getChoice("Revealing hand", fullHand.toArray());
if(card.getController().equals(Constant.Player.Human))
{
choice = (Card) AllZone.Display.getChoice("Choose", handChoices);
@@ -17578,7 +17620,7 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
card.addSpellAbility(spell);
spell.setBeforePayMana(CardFactoryUtil.input_targetPlayer(spell));
}//*************** END ************ END **************************
}//*************** END ************ END **************************
//*************** START *********** START **************************

View File

@@ -10299,7 +10299,7 @@ public class CardFactory_Creatures {
c.setController(card.getController());
c.setName("Minor Demon");
c.setImageName("BR 1 1 Demon");
c.setImageName("BR 1 1 Minor Demon");
c.setManaCost("B R");
c.setToken(true);
@@ -17499,6 +17499,95 @@ public class CardFactory_Creatures {
};
card.addComesIntoPlayCommand(intoPlay);
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Ambassador Laquatus"))
{
final SpellAbility a1 = new Ability(card, "3")
{
public void resolve()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player);
CardList libList = new CardList(lib.getCards());
int max = 3;
if (libList.size() < 3)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
public boolean canPlayAI()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
return libList.size() > 0;
}
};//SpellAbility
card.addSpellAbility(a1);
a1.setDescription("3: Target player puts the top three cards of his or her library into his or her graveyard.");
a1.setStackDescription("Player puts the top three cards of his or her library into his or her graveyard");
a1.setBeforePayMana(new Input_PayManaCost(a1));
a1.setBeforePayMana(CardFactoryUtil.input_targetPlayer(a1));
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Vedalken Entrancer"))
{
final SpellAbility a1 = new Ability_Tap(card, "U")
{
private static final long serialVersionUID = 2359247592519063187L;
public void resolve()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player);
CardList libList = new CardList(lib.getCards());
int max = 2;
if (libList.size() < 2)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
public boolean canPlayAI()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
return libList.size() > 0;
}
};//SpellAbility
card.addSpellAbility(a1);
a1.setDescription("3, tap: Target player puts the top two cards of his or her library into his or her graveyard.");
a1.setStackDescription("Player puts the top two cards of his or her library into his or her graveyard");
a1.setBeforePayMana(new Input_PayManaCost(a1));
a1.setBeforePayMana(CardFactoryUtil.input_targetPlayer(a1));
}//*************** END ************ END **************************
// Cards with Cycling abilities
// -1 means keyword "Cycling" not found

View File

@@ -2620,6 +2620,50 @@ class CardFactory_Lands {
}//*************** END ************ END **************************
//*************** START *********** START **************************
if(cardName.equals("Duskmantle, House of Shadow"))
{
card.clearSpellKeepManaAbility();
Ability_Tap ability = new Ability_Tap(card,"U B")
{
private static final long serialVersionUID = 42470566751344693L;
public boolean canPlayAI()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
return libList.size() > 0;
}
public void resolve()
{
String player = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player);
CardList libList = new CardList(lib.getCards());
int max = 1;
if (libList.size() < 1)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
};
ability.setBeforePayMana(CardFactoryUtil.input_targetPlayer(ability));
ability.setDescription("tap U B: Target player puts the top card of his or her library into his or her graveyard.");
ability.setStackDescription("Target player puts the top card of his or her library into his or her graveyard.");
card.addSpellAbility(ability);
}
//*************** END ************ END **************************
return card;
}

View File

@@ -1122,6 +1122,31 @@ public class CombatUtil
} //if (creatures.size() > 0)
}//Preeminent Captain
else if(c.getName().equals("Nemesis of Reason") && !c.getCreatureAttackedThisTurn())
{
String player = AllZone.GameAction.getOpponent(c.getController());
//if (c.getController().equals(Constant.Player.Human))
//player="Human";
//else if (c.getController().equals(Constant.Player.Computer))
//player="Computer";
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, player);
CardList libList = new CardList(lib.getCards());
int max = 10;
if (libList.size() < 10)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c1 = libList.get(i);
lib.remove(c1);
grave.add(c1);
}
}//Nemesis of Reason
c.setCreatureAttackedThisTurn(true);
}//if Phase = declare attackers

View File

@@ -37,6 +37,8 @@ public class GameActionUtil
upkeep_Fledgling_Djinn();
upkeep_Juzam_Djinn();
upkeep_Grinning_Demon();
upkeep_Moroii();
upkeep_Vampire_Lacerator();
upkeep_Seizan_Perverter_of_Truth();
upkeep_Serendib_Efreet();
upkeep_Sleeper_Agent();
@@ -82,7 +84,9 @@ public class GameActionUtil
// (called in MagicStack.java)
Card c = sa.getSourceCard();
playCard_Forced_Fruition(c);
playCard_Standstill(c);
playCard_Memory_Erosion(c);
playCard_SolKanar(c);
playCard_Gilt_Leaf_Archdruid(c);
playCard_Reki(c);
@@ -95,6 +99,50 @@ public class GameActionUtil
playCard_Mold_Adder(c);
playCard_Fable_of_Wolf_and_Owl(c);
}
public static void playCard_Forced_Fruition(Card c)
{
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
Constant.Player.Human);
PlayerZone cplay = AllZone.getZone(Constant.Zone.Play,
Constant.Player.Computer);
CardList list = new CardList();
list.addAll(hplay.getCards());
list.addAll(cplay.getCards());
list = list.getName("Forced Fruition");
for (int i = 0; i < list.size(); i++)
{
final Card card = list.get(i);
final String drawer = AllZone.GameAction.getOpponent(card
.getController());
Ability ability2 = new Ability(card, "0")
{
public void resolve()
{
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
AllZone.GameAction.drawCard(drawer);
}
}; // ability2
if (!(card.getController() == c.getController())) {
ability2.setStackDescription(card.getName() + " - "
+ c.getController() + " played a spell, " + drawer
+ " draws seven cards.");
AllZone.Stack.add(ability2);
}
}
}
public static void playCard_Standstill(Card c)
{
@@ -136,6 +184,60 @@ public class GameActionUtil
}
}
public static void playCard_Memory_Erosion(Card c)
{
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
Constant.Player.Human);
PlayerZone cplay = AllZone.getZone(Constant.Zone.Play,
Constant.Player.Computer);
CardList list = new CardList();
list.addAll(hplay.getCards());
list.addAll(cplay.getCards());
list = list.getName("Memory Erosion");
for (int i = 0; i < list.size(); i++)
{
final Card card = list.get(i);
final String drawer = AllZone.GameAction.getOpponent(card
.getController());
Ability ability2 = new Ability(card, "0")
{
public void resolve()
{
// sac standstill
// AllZone.GameAction.sacrifice(card);
// player who didn't play spell, draws 3 cards
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, drawer);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, drawer);
CardList libList = new CardList(lib.getCards());
int max = 2;
if (libList.size() < 2)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
}; // ability2
if (!(card.getController() == c.getController())) {
ability2.setStackDescription(card.getName() + " - "
+ c.getController() + " played a spell, " + drawer
+ " puts the top two cards of his or her library into his or her graveyard.");
AllZone.Stack.add(ability2);
}
}
}
public static void playCard_SolKanar(Card c)
{
@@ -1829,6 +1931,8 @@ public class GameActionUtil
playerCombatDamage_Glint_Eye_Nephilim(c);
else if (c.getName().equals("Hystrodon") && !c.isFaceDown())
playerCombatDamage_Hystrodon(c);
else if (c.getName().equals("Raven Guild Master") && !c.isFaceDown())
playerCombatDamage_Raven_Guild_Master(c);
else if (c.getName().equals("Slith Strider") || c.getName().equals("Slith Ascendant") ||
c.getName().equals("Slith Bloodletter") || c.getName().equals("Slith Firewalker") ||
c.getName().equals("Slith Predator"))
@@ -1850,7 +1954,6 @@ public class GameActionUtil
Card jitte = list.get(0);
}
*/
if (c.getNetAttack() > 0)
c.setDealtCombatDmgToOppThisTurn(true);
@@ -1963,6 +2066,45 @@ public class GameActionUtil
} // if
}
private static void playerCombatDamage_Raven_Guild_Master(Card c)
{
final String player = c.getController();
final String opponent = AllZone.GameAction.getOpponent(player);
if (c.getNetAttack() > 0)
{
Ability ability = new Ability(c, "0")
{
public void resolve()
{
AllZone.GameAction.discardRandom(opponent);
////////////
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, opponent);
PlayerZone exiled = AllZone.getZone(Constant.Zone.Removed_From_Play, opponent);
CardList libList = new CardList(lib.getCards());
int max = 10;
if (libList.size() < 10)
max = libList.size();
for (int i=0;i<max;i++)
{
Card c = libList.get(i);
lib.remove(c);
exiled.add(c);
}
}
};// ability
ability.setStackDescription("Raven Guild Master - " + opponent
+ " removes the top ten cards of his or her library from the game");
AllZone.Stack.add(ability);
}
}
private static void playerCombatDamage_Hystrodon(Card c)
{
final String player = c.getController();
@@ -4854,6 +4996,39 @@ public class GameActionUtil
AllZone.GameAction.drawCard(player);
}// upkeep_Seizan_Perverter_of_Truth()
private static void upkeep_Moroii()
{
final String player = AllZone.Phase.getActivePlayer();
PlayerZone play = AllZone.getZone(Constant.Zone.Play, player);
CardList list = new CardList();
list.addAll(play.getCards());
list = list.getName("Moroii");
for (int i = 0; i < list.size(); i++) {
AllZone.GameAction.getPlayerLife(player).subtractLife(1);
}
}// upkeep_Moroii
private static void upkeep_Vampire_Lacerator()
{
final String player = AllZone.Phase.getActivePlayer();
PlayerZone play = AllZone.getZone(Constant.Zone.Play, player);
CardList list = new CardList();
list.addAll(play.getCards());
list = list.getName("Vampire Lacerator");
for (int i = 0; i < list.size(); i++) {
if (player == "Human" && AllZone.Computer_Life.getLife() > 10)
{AllZone.GameAction.getPlayerLife(player).subtractLife(1);}
else{ if (player == "Computer" && AllZone.Computer_Life.getLife() > 10)
{AllZone.GameAction.getPlayerLife(player).subtractLife(1);}}
}
}// upkeep_Vampire_Lacerator
private static void upkeep_Grinning_Demon()
{
final String player = AllZone.Phase.getActivePlayer();
@@ -4879,7 +5054,7 @@ public class GameActionUtil
AllZone.Stack.add(ability);
}
}// for
}// upkeep_Juzam_Djinn()
}// upkeep_Grinning_Demon()
private static void upkeep_Juzam_Djinn()
{