mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
- 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:
@@ -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
|
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
|
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
|
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
|
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
|
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
|
lobotomy.jpg http://www.wizards.com/global/images/magic/general/lobotomy.jpg
|
||||||
|
|||||||
@@ -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
|
Identity Crisis
|
||||||
2 W W B B
|
2 W W B B
|
||||||
Sorcery
|
Sorcery
|
||||||
|
|||||||
@@ -1632,7 +1632,6 @@ public class CardFactory implements NewConstants {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (results.size() > 0)
|
if (results.size() > 0)
|
||||||
{
|
{
|
||||||
results.shuffle();
|
results.shuffle();
|
||||||
@@ -17345,6 +17344,48 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
|||||||
}//*************** END ************ END **************************
|
}//*************** 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 **************************
|
//*************** START *********** START **************************
|
||||||
if (cardName.equals("Traumatize"))
|
if (cardName.equals("Traumatize"))
|
||||||
{
|
{
|
||||||
@@ -17512,7 +17553,8 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
|||||||
CardList grvList = new CardList(grave.getCards());
|
CardList grvList = new CardList(grave.getCards());
|
||||||
CardList fullHand = new CardList(hand.getCards());
|
CardList fullHand = new CardList(hand.getCards());
|
||||||
Card[] handChoices = removeLand(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))
|
if(card.getController().equals(Constant.Player.Human))
|
||||||
{
|
{
|
||||||
choice = (Card) AllZone.Display.getChoice("Choose", handChoices);
|
choice = (Card) AllZone.Display.getChoice("Choose", handChoices);
|
||||||
|
|||||||
@@ -10299,7 +10299,7 @@ public class CardFactory_Creatures {
|
|||||||
c.setController(card.getController());
|
c.setController(card.getController());
|
||||||
|
|
||||||
c.setName("Minor Demon");
|
c.setName("Minor Demon");
|
||||||
c.setImageName("BR 1 1 Demon");
|
c.setImageName("BR 1 1 Minor Demon");
|
||||||
c.setManaCost("B R");
|
c.setManaCost("B R");
|
||||||
c.setToken(true);
|
c.setToken(true);
|
||||||
|
|
||||||
@@ -17500,6 +17500,95 @@ public class CardFactory_Creatures {
|
|||||||
card.addComesIntoPlayCommand(intoPlay);
|
card.addComesIntoPlayCommand(intoPlay);
|
||||||
}//*************** END ************ END **************************
|
}//*************** 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
|
// Cards with Cycling abilities
|
||||||
// -1 means keyword "Cycling" not found
|
// -1 means keyword "Cycling" not found
|
||||||
if (shouldCycle(card) != -1)
|
if (shouldCycle(card) != -1)
|
||||||
|
|||||||
@@ -2620,6 +2620,50 @@ class CardFactory_Lands {
|
|||||||
|
|
||||||
}//*************** END ************ END **************************
|
}//*************** 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;
|
return card;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1122,6 +1122,31 @@ public class CombatUtil
|
|||||||
} //if (creatures.size() > 0)
|
} //if (creatures.size() > 0)
|
||||||
}//Preeminent Captain
|
}//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);
|
c.setCreatureAttackedThisTurn(true);
|
||||||
|
|
||||||
}//if Phase = declare attackers
|
}//if Phase = declare attackers
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ public class GameActionUtil
|
|||||||
upkeep_Fledgling_Djinn();
|
upkeep_Fledgling_Djinn();
|
||||||
upkeep_Juzam_Djinn();
|
upkeep_Juzam_Djinn();
|
||||||
upkeep_Grinning_Demon();
|
upkeep_Grinning_Demon();
|
||||||
|
upkeep_Moroii();
|
||||||
|
upkeep_Vampire_Lacerator();
|
||||||
upkeep_Seizan_Perverter_of_Truth();
|
upkeep_Seizan_Perverter_of_Truth();
|
||||||
upkeep_Serendib_Efreet();
|
upkeep_Serendib_Efreet();
|
||||||
upkeep_Sleeper_Agent();
|
upkeep_Sleeper_Agent();
|
||||||
@@ -82,7 +84,9 @@ public class GameActionUtil
|
|||||||
// (called in MagicStack.java)
|
// (called in MagicStack.java)
|
||||||
Card c = sa.getSourceCard();
|
Card c = sa.getSourceCard();
|
||||||
|
|
||||||
|
playCard_Forced_Fruition(c);
|
||||||
playCard_Standstill(c);
|
playCard_Standstill(c);
|
||||||
|
playCard_Memory_Erosion(c);
|
||||||
playCard_SolKanar(c);
|
playCard_SolKanar(c);
|
||||||
playCard_Gilt_Leaf_Archdruid(c);
|
playCard_Gilt_Leaf_Archdruid(c);
|
||||||
playCard_Reki(c);
|
playCard_Reki(c);
|
||||||
@@ -96,6 +100,50 @@ public class GameActionUtil
|
|||||||
playCard_Fable_of_Wolf_and_Owl(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)
|
public static void playCard_Standstill(Card c)
|
||||||
{
|
{
|
||||||
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
|
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
|
||||||
@@ -137,6 +185,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)
|
public static void playCard_SolKanar(Card c)
|
||||||
{
|
{
|
||||||
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
|
PlayerZone hplay = AllZone.getZone(Constant.Zone.Play,
|
||||||
@@ -1829,6 +1931,8 @@ public class GameActionUtil
|
|||||||
playerCombatDamage_Glint_Eye_Nephilim(c);
|
playerCombatDamage_Glint_Eye_Nephilim(c);
|
||||||
else if (c.getName().equals("Hystrodon") && !c.isFaceDown())
|
else if (c.getName().equals("Hystrodon") && !c.isFaceDown())
|
||||||
playerCombatDamage_Hystrodon(c);
|
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") ||
|
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 Bloodletter") || c.getName().equals("Slith Firewalker") ||
|
||||||
c.getName().equals("Slith Predator"))
|
c.getName().equals("Slith Predator"))
|
||||||
@@ -1850,7 +1954,6 @@ public class GameActionUtil
|
|||||||
Card jitte = list.get(0);
|
Card jitte = list.get(0);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (c.getNetAttack() > 0)
|
if (c.getNetAttack() > 0)
|
||||||
c.setDealtCombatDmgToOppThisTurn(true);
|
c.setDealtCombatDmgToOppThisTurn(true);
|
||||||
|
|
||||||
@@ -1963,6 +2066,45 @@ public class GameActionUtil
|
|||||||
} // if
|
} // 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)
|
private static void playerCombatDamage_Hystrodon(Card c)
|
||||||
{
|
{
|
||||||
final String player = c.getController();
|
final String player = c.getController();
|
||||||
@@ -4854,6 +4996,39 @@ public class GameActionUtil
|
|||||||
AllZone.GameAction.drawCard(player);
|
AllZone.GameAction.drawCard(player);
|
||||||
}// upkeep_Seizan_Perverter_of_Truth()
|
}// 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()
|
private static void upkeep_Grinning_Demon()
|
||||||
{
|
{
|
||||||
final String player = AllZone.Phase.getActivePlayer();
|
final String player = AllZone.Phase.getActivePlayer();
|
||||||
@@ -4879,7 +5054,7 @@ public class GameActionUtil
|
|||||||
AllZone.Stack.add(ability);
|
AllZone.Stack.add(ability);
|
||||||
}
|
}
|
||||||
}// for
|
}// for
|
||||||
}// upkeep_Juzam_Djinn()
|
}// upkeep_Grinning_Demon()
|
||||||
|
|
||||||
private static void upkeep_Juzam_Djinn()
|
private static void upkeep_Juzam_Djinn()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user