Corrected Mind Funeral. Addad Dovescake and Lurking Informant.

This commit is contained in:
jendave
2011-08-06 02:55:20 +00:00
parent 44f1640b03
commit bc71ecc673
5 changed files with 195 additions and 60 deletions

View File

@@ -18,6 +18,8 @@ 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
dovescape.jpg http://www.wizards.com/global/images/magic/general/dovescape.jpg
lurking_informant.jpg http://www.wizards.com/global/images/magic/general/lurking_informant.jpg
Belligerent_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Belligerent_Hatchling.jpg Belligerent_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Belligerent_Hatchling.jpg
Noxious_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Noxious_Hatchling.jpg Noxious_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Noxious_Hatchling.jpg
Sturdy_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Sturdy_Hatchling.jpg Sturdy_Hatchling.jpg http://www.wizards.com/global/images/magic/general/Sturdy_Hatchling.jpg

View File

@@ -1,3 +1,14 @@
Dovescape
3 WU WU WU
Enchantment
Whenever a player casts a noncreature spell, counter that spell. That player puts X 1/1 white and blue Bird creature tokens with flying onto the battlefield, where X is the spell<6C>s converted mana cost.
Lurking Informant
1 UB
Creature Human Rogue
no text
1/2
Belligerent Hatchling Belligerent Hatchling
3 RW 3 RW
Creature Elemental Creature Elemental

View File

@@ -17452,20 +17452,18 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
int prev = 0 ; int prev = 0 ;
int count = 0; int count = 0;
int total =0; int total =0;
int once = 0;
for (int i=0;i<max;i++) for (int i=0;i<max;i++)
{ {
Card c = libList.get(i); Card c = libList.get(i);
if (c.getType().contains("Land")) if (c.getType().contains("Land"))
{ {
if (prev == 1) count= count + 1; count= count + 1;
else count = 1; if (count == 4 && prev==0) total=i;
prev=1; if (count == 4) prev=1;
} }
else prev=0;
if (count == 4) once = once +1;
if (once == 1 && count == 4) total=i;
} }
for (int i=0;i<total+1;i++) for (int i=0;i<total+1;i++)

View File

@@ -16,30 +16,7 @@ public class CardFactory_Creatures {
public static Card getCard(final Card card, String cardName, String owner, CardFactory cf) public static Card getCard(final Card card, String cardName, String owner, CardFactory cf)
{ {
//*************** START *********** START **************************
else if(cardName.equals("Belligerent Hatchling") || cardName.equals("Noxious Hatchling")
||cardName.equals("Shrewd Hatchling") ||cardName.equals("Sturdy Hatchling")
|| cardName.equals("Voracious Hatchling"))
{
final SpellAbility ability = new Ability(card, "0")
{
public void resolve()
{
card.addCounter(Counters.M1M1, 4);
}//resolve()
};//SpellAbility
Command intoPlay = new Command()
{
private static final long serialVersionUID = 4757054648163014149L;
public void execute()
{
AllZone.Stack.add(ability);
}
};
ability.setStackDescription(cardName + "enters the battlefield with four -1/-1 counters on it.");
card.addComesIntoPlayCommand(intoPlay);
}//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
if(cardName.equals("Filthy Cur")) if(cardName.equals("Filthy Cur"))
@@ -77,7 +54,96 @@ public class CardFactory_Creatures {
return newCard; return newCard;
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Belligerent Hatchling") || cardName.equals("Noxious Hatchling")
||cardName.equals("Shrewd Hatchling") ||cardName.equals("Sturdy Hatchling")
|| cardName.equals("Voracious Hatchling"))
{
final SpellAbility ability = new Ability(card, "0")
{
public void resolve()
{
card.addCounter(Counters.M1M1, 4);
}//resolve()
};//SpellAbility
Command intoPlay = new Command()
{
private static final long serialVersionUID = 4757054648163014149L;
public void execute()
{
AllZone.Stack.add(ability);
}
};
ability.setStackDescription(cardName + "enters the battlefield with four -1/-1 counters on it.");
card.addComesIntoPlayCommand(intoPlay);
}//*************** END ************ END **************************
//*************** START *********** START **************************
else if(cardName.equals("Lurking Informant"))
{
final SpellAbility a1 = new Ability_Tap(card, "2")
{
private static final long serialVersionUID = 1446529067071763245L;
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());
Card c = libList.get(0);
String[] choices = {"Yes", "No"};
if(card.getController().equals(Constant.Player.Human))
{
Object o = AllZone.Display.getChoice("Mill " + c.getName() + " ?" , choices);
if(o.equals("Yes"))
{lib.remove(c);
grave.add(c);
}
}
else {
CardList landlist = new CardList();
landlist.addAll(AllZone.Human_Play.getCards());
// i have no better idea how AI could use it then letting draw unneeded lands
// this part will be good place to use card values lists or card values deck info
if (countLands(card) > 5 && !c.getType().contains("Land"))
{
lib.remove(c);
grave.add(c);
}
if (countLands(card) <= 5)
{
lib.remove(c);
grave.add(c);
}
}
}
private int countLands(Card c)
{
PlayerZone play = AllZone.getZone(Constant.Zone.Play, c
.getController());
CardList lands = new CardList(play.getCards());
lands = lands.getType("Land");
return lands.size();
}
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("2, tap: Look at the top card of target player's library. You may put that card into that player's graveyard.");
a1.setStackDescription("Lurking Informant ability");
a1.setBeforePayMana(new Input_PayManaCost(a1));
a1.setBeforePayMana(CardFactoryUtil.input_targetPlayer(a1));
}//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Shinka Gatekeeper")) else if(cardName.equals("Shinka Gatekeeper"))

View File

@@ -83,6 +83,7 @@ public class GameActionUtil
// card gets played // card gets played
// (called in MagicStack.java) // (called in MagicStack.java)
Card c = sa.getSourceCard(); Card c = sa.getSourceCard();
playCard_Dovescape(c);
playCard_Belligerent_Hatchling(c); playCard_Belligerent_Hatchling(c);
playCard_Voracious_Hatchling(c); playCard_Voracious_Hatchling(c);
playCard_Sturdy_Hatchling(c); playCard_Sturdy_Hatchling(c);
@@ -102,6 +103,63 @@ public class GameActionUtil
playCard_Mold_Adder(c); playCard_Mold_Adder(c);
playCard_Fable_of_Wolf_and_Owl(c); playCard_Fable_of_Wolf_and_Owl(c);
} }
public static void playCard_Dovescape(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());
int cmc = CardUtil.getConvertedManaCost(c.getManaCost());
list = list.getName("Dovescape");
if ( ! c.getType().contains("Creature") && list.size()>0 ) {
final Card card = list.get(0);
Ability ability2 = new Ability(card, "0")
{
public void resolve()
{
SpellAbility sa = AllZone.Stack.pop();
AllZone.GameAction.moveToGraveyard(sa.getSourceCard());
}
}; // ability2
ability2.setStackDescription("Dovescape Ability");
AllZone.Stack.add(ability2);
for (int j = 0; j < list.size()*cmc; j++)
{
Card crd = new Card();
String controller = c.getController();
crd.setOwner(controller);
crd.setController(controller);
crd.setName("Bird");
crd.setImageName("WU 1 1 Bird");
crd.setManaCost("WU");
crd.setToken(true);
crd.addType("Creature");
crd.addType("Bird");
crd.addIntrinsicKeyword("Flying");
crd.setBaseAttack(1);
crd.setBaseDefense(1);
PlayerZone play = AllZone.getZone(Constant.Zone.Play, controller);
play.add(crd);
}
}
} // Dovescape
public static void playCard_Belligerent_Hatchling(Card c) public static void playCard_Belligerent_Hatchling(Card c)
{ {
final String controller = c.getController(); final String controller = c.getController();