- Fixed some bug I introduced by fixing Phyrexian Arena.

- Fixed the way Meloku the Clouded Mirror works (can choose a land to return now - even though it's still done during resolution of the spell), won't be able to play the ability if there are no controlled lands in play.
This commit is contained in:
jendave
2011-08-06 03:19:23 +00:00
parent c808ef0c64
commit 339bb6e9c9
3 changed files with 26 additions and 107 deletions

View File

@@ -5036,8 +5036,6 @@ public class CardFactory implements NewConstants {
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Ashes to Ashes")) else if(cardName.equals("Ashes to Ashes"))
{ {

View File

@@ -9383,7 +9383,6 @@ public class CardFactory_Creatures {
}//*************** END ************ END ************************** }//*************** END ************ END **************************
//*************** START *********** START ************************** //*************** START *********** START **************************
else if(cardName.equals("Meloku the Clouded Mirror")) else if(cardName.equals("Meloku the Clouded Mirror"))
{ {
@@ -9394,22 +9393,38 @@ public class CardFactory_Creatures {
CardFactoryUtil.makeToken("Illusion", "U 1 1 Illusion", card, "U", new String[]{"Creature", "Illusion"}, 1, 1, new String[] {"Flying"}); CardFactoryUtil.makeToken("Illusion", "U 1 1 Illusion", card, "U", new String[]{"Creature", "Illusion"}, 1, 1, new String[] {"Flying"});
PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController()); PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController());
//TODO: the "bounced" land should be chosen by the user CardList land = new CardList(play.getCards());
//instead of "automatically" done for him land = land.filter(new CardListFilter()
CardList island = new CardList(play.getCards());
island = island.filter(new CardListFilter()
{ {
public boolean addCard(Card c) public boolean addCard(Card c)
{ {
return c.getType().contains("Land") && c.isTapped(); return c.getType().contains("Land");
} }
}); });
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController()); PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, card.getController());
if(! island.isEmpty()) if(! land.isEmpty()) {
AllZone.GameAction.moveTo(hand, island.get(0)); Object o = AllZone.Display.getChoiceOptional("Select target Land", land.toArray());
Card l = (Card)o;
AllZone.GameAction.moveTo(hand, l);
}
}//resolve() }//resolve()
public boolean canPlay()
{
PlayerZone play = AllZone.getZone(Constant.Zone.Play, card.getController());
CardList land = new CardList(play.getCards());
land = land.filter(new CardListFilter()
{
public boolean addCard(Card c)
{
return c.getType().contains("Land");
}
});
return land.size() > 0;
}
};//SpellAbility };//SpellAbility
card.addSpellAbility(ability); card.addSpellAbility(ability);
ability.setDescription("1, Return a land you control to its owner's hand: Put a 1/1 blue Illusion creature token with flying into play."); ability.setDescription("1, Return a land you control to its owner's hand: Put a 1/1 blue Illusion creature token with flying into play.");

View File

@@ -4120,15 +4120,7 @@ public class GameActionUtil
playerCombatDamage_Rith(c); playerCombatDamage_Rith(c);
else if (c.getName().equals("Vorosh, the Hunter")) else if (c.getName().equals("Vorosh, the Hunter"))
playerCombatDamage_Vorosh(c); playerCombatDamage_Vorosh(c);
/*
if(CardFactoryUtil.hasNumberEquipments(c, "Umezawa's Jitte") == 1)
{
PlayerZone play = AllZone.getZone(c);
CardList list = new CardList(play.getCards());
list = list.getName("Umezawa's Jitte");
Card jitte = list.get(0);
}
*/
if (c.getNetAttack() > 0) if (c.getNetAttack() > 0)
c.setDealtCombatDmgToOppThisTurn(true); c.setDealtCombatDmgToOppThisTurn(true);
@@ -5004,7 +4996,6 @@ public class GameActionUtil
{ {
Ability ability = new Ability(list.get(i), "0") Ability ability = new Ability(list.get(i), "0")
{ {
public void resolve() public void resolve()
{ {
PlayerZone graveyard = AllZone.getZone( PlayerZone graveyard = AllZone.getZone(
@@ -5089,7 +5080,6 @@ public class GameActionUtil
AllZone.Stack.add(ability); AllZone.Stack.add(ability);
}//for }//for
} }
} }
private static void upkeep_Scute_Mob() private static void upkeep_Scute_Mob()
@@ -5155,9 +5145,7 @@ public class GameActionUtil
Card c = fungi.get(j); Card c = fungi.get(j);
c.addCounter(Counters.SPORE, 1); c.addCounter(Counters.SPORE, 1);
} }
} }
};// Ability };// Ability
ability ability
.setStackDescription("Sporesower - put a spore counter on each fungus you control."); .setStackDescription("Sporesower - put a spore counter on each fungus you control.");
@@ -5378,89 +5366,6 @@ public class GameActionUtil
AllZone.Stack.add(ability); AllZone.Stack.add(ability);
} }
} }
/*
private static void upkeep_Sensation_Gorger()
{
final String player = AllZone.Phase.getActivePlayer();
final String opponent = AllZone.GameAction.getOpponent(player);
PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player);
PlayerZone library = AllZone.getZone(Constant.Zone.Library, player);
CardList list = new CardList(playZone.getCards());
list = list.getName("Sensation Gorger");
Ability ability;
for (int i = 0; i < list.size(); i++)
{
if (library.size() <= 0)
{
return;
}
if (list.get(i).getController().equals("Human"))
{
String[] choices = { "Yes", "No" };
Object o = AllZone.Display.getChoiceOptional("Use " + list.get(i).getName() + "'s ability this turn?", choices);
if (o.equals("No"))
return;
}
// System.out.println("top of deck: " + library.get(i).getName());
String creatureType = library.get(i).getType().toString();
String cardName = library.get(i).getName();
ability = new Ability(list.get(i), "0")
{
public void resolve()
{
PlayerZone library = AllZone.getZone(Constant.Zone.Library,
player);
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand,
player);
// PlayerZone oppLibrary =
// AllZone.getZone(Constant.Zone.Library, opponent);
PlayerZone oppHand = AllZone.getZone(Constant.Zone.Hand,
opponent);
String creatureType = library.get(0).getType().toString();
if (creatureType.contains("Goblin")
|| creatureType.contains("Shaman"))
{
Card[] c = hand.getCards();
for(int q = 0; q < c.length; q++)
AllZone.GameAction.discard(c[q]);
Card[] oc = oppHand.getCards();
for(int j = 0; j < oc.length; j++)
AllZone.GameAction.discard(oc[j]);
for(int z = 0; z < 4; z++)
{
AllZone.GameAction.drawCard(Constant.Player.Computer);
AllZone.GameAction.drawCard(Constant.Player.Human);
}
}
}// resolve()
};// Ability
if (creatureType.contains("Goblin")
|| creatureType.contains("Shaman"))
ability.setStackDescription("Sensation Gorger - " + player
+ " reveals: " + cardName
+ ", everyone discards their hands and draws 4 cards.");
else
ability.setStackDescription("Sensation Gorger - " + player
+ " reveals top card: " + cardName + ".");
AllZone.Stack.add(ability);
}// for
}// upkeep_Sensation_Gorger()
*/
private static void upkeep_Sensation_Gorger() private static void upkeep_Sensation_Gorger()
{ {
@@ -7485,8 +7390,9 @@ public class GameActionUtil
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
AllZone.GameAction.drawCard(player); AllZone.GameAction.drawCard(player);
AllZone.GameAction.getPlayerLife(player).subtractLife(1); AllZone.GameAction.getPlayerLife(player).subtractLife(1);
}
AllZone.GameAction.checkStateEffects(); AllZone.GameAction.checkStateEffects();
}
}// upkeep_Phyrexian_Arena }// upkeep_Phyrexian_Arena
private static void upkeep_Honden_of_Seeing_Winds() private static void upkeep_Honden_of_Seeing_Winds()