Honden of Cleansing Fire, Honden of Infinite Rage, Honden of Life's Web, Honden of Night's Reach, Honden of Seeing Winds added.

Conspiracy exclusion for "Shrine" creature type added.
This commit is contained in:
jendave
2011-08-06 02:57:40 +00:00
parent 0bb21c198d
commit 6ef5388c2b
4 changed files with 268 additions and 1 deletions

View File

@@ -18,6 +18,11 @@ 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
honden_of_cleansing_fire.jpg http://www.wizards.com/global/images/magic/general/honden_of_cleansing_fire.jpg
honden_of_infinite_rage.jpg http://www.wizards.com/global/images/magic/general/honden_of_infinite_rage.jpg
honden_of_lifes_web.jpg http://www.wizards.com/global/images/magic/general/honden_of_lifes_web.jpg
honden_of_seeing_winds.jpg http://www.wizards.com/global/images/magic/general/honden_of_seeing_winds.jpg
honden_of_nights_reach.jpg http://www.wizards.com/global/images/magic/general/honden_of_nights_reach.jpg
thoughtcutter_agent.jpg http://magic.tcgplayer.com/db/cards/16857.jpg
singe_mind_ogre.jpg http://magic.tcgplayer.com/db/cards/17138.jpg
chainer_dementia_master.jpg http://www.wizards.com/global/images/magic/general/chainer_dementia_master.jpg

View File

@@ -1,3 +1,28 @@
Honden of Infinite Rage
2 R
Legendary Enchantment Shrine
At the beginning of your upkeep, Honden of Infinite Rage deals damage to target creature or player equal to the number of Shrines you control.
Honden of Night's Reach
3 B
Legendary Enchantment Shrine
At the beginning of your upkeep, target opponent discards a card for each Shrine you control.
Honden of Cleansing Fire
3 W
Legendary Enchantment Shrine
At the beginning of your upkeep, you gain 2 life for each Shrine you control.
Honden of Life's Web
4 G
Legendary Enchantment Shrine
At the beginning of your upkeep, put a 1/1 colorless Spirit creature token into play for each Shrine you control.
Honden of Seeing Winds
4 U
Legendary Enchantment Shrine
At the beginning of your upkeep, draw a card for each Shrine you control.
Singe-Mind Ogre
2 B R
Creature Ogre Mutant

View File

@@ -3119,7 +3119,7 @@ public class CardFactory implements NewConstants {
{
input[0] = (String)JOptionPane.showInputDialog(null, "Which creature type?", "Pick type", JOptionPane.QUESTION_MESSAGE);
if (input[0].equals("Legendary") || input[0].equals("Artifact") || input[0].equals("Enchantment") || input[0].equals("Creature"))
if (input[0].equals("Legendary") || input[0].equals("Artifact") || input[0].equals("Enchantment") || input[0].equals("Shrine") || input[0].equals("Creature"))
input[0] = "";
//TODO: some more input validation, case-sensitivity, etc.

View File

@@ -11,6 +11,11 @@ public class GameActionUtil
//upkeep_Echo();
// upkeep_CheckEmptyDeck_Lose(); //still a little buggy
upkeep_Phyrexian_Arena();
upkeep_Honden_of_Cleansing_Fire();
upkeep_Honden_of_Seeing_Winds();
upkeep_Honden_of_Lifes_Web();
upkeep_Honden_of_Nights_Reach();
upkeep_Honden_of_Infinite_Rage();
upkeep_Land_Tax();
upkeep_Greener_Pastures();
upkeep_Squee();
@@ -6042,6 +6047,238 @@ public class GameActionUtil
}
}// upkeep_Phyrexian_Arena
private static void upkeep_Honden_of_Seeing_Winds()
{
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("Honden of Seeing Winds");
for (int i = 0; i < list.size(); i++) {
// final Ability ability2 = new Ability(list.get(i), "0")
// {
// public void resolve() {
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, player);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
for (int j = 0; j < hondlist.size() ; j++)
{
AllZone.GameAction.drawCard(player);
}//}
// };
// ability2.setStackDescription(list.get(i)+" - " + list.get(i).getController() + " draws a card for each Shrine he controls.");
// AllZone.Stack.add(ability2);
}
}// upkeep_Honden_of_Seeing_Winds
private static void upkeep_Honden_of_Cleansing_Fire()
{
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("Honden of Cleansing Fire");
for (int i = 0; i < list.size(); i++) {
final Ability ability = new Ability(list.get(i), "0")
{
public void resolve() {
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, player);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
for (int j = 0; j < hondlist.size() ; j++)
{
AllZone.GameAction.getPlayerLife(player).addLife(2);
}}
};
ability.setStackDescription(list.get(i)+" - " + list.get(i).getController() + " gains 2 life for each Shrine he controls.");
AllZone.Stack.add(ability);
}
}// upkeep_Honden_of_Cleansing_Fire
private static void upkeep_Honden_of_Nights_Reach()
{
final String player = AllZone.Phase.getActivePlayer();
final String opponent = AllZone.GameAction.getOpponent(player);
PlayerZone play = AllZone.getZone(Constant.Zone.Play, player);
CardList list = new CardList();
list.addAll(play.getCards());
list = list.getName("Honden of Night's Reach");
for (int i = 0; i < list.size(); i++) {
final Ability ability = new Ability(list.get(i), "0")
{
public void resolve() {
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, player);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
for (int j = 0; j < hondlist.size() ; j++)
{
if(opponent.equals(Constant.Player.Human))
AllZone.InputControl.setInput(CardFactoryUtil.input_discard());
else
{
AllZone.GameAction.discardRandom(Constant.Player.Computer);
}
}
}
};
ability.setStackDescription(list.get(i)+" - " + AllZone.GameAction.getOpponent(list.get(i).getController()) + " discards a card for each Shrine "+ list.get(i).getController() + " controls.");
AllZone.Stack.add(ability);
}
}
// upkeep_Honden_of_Nights_Reach()
private static void upkeep_Honden_of_Infinite_Rage()
{
final String controller = AllZone.Phase.getActivePlayer();
//final String opponent = AllZone.GameAction.getOpponent(player);
PlayerZone play = AllZone.getZone(Constant.Zone.Play, controller);
CardList list = new CardList();
list.addAll(play.getCards());
list = list.getName("Honden of Infinite Rage");
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, controller);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
for (int i = 0; i < list.size(); i++) {
final Card card = list.get(i);
final Ability ability = new Ability(list.get(i), "0")
{
public void resolve()
{
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, controller);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
if(controller.equals("Human"))
{
String opp = AllZone.GameAction.getOpponent(controller);
PlayerZone oppPlay = AllZone.getZone(Constant.Zone.Play, opp);
String[] choices = { "Yes", "No, target a creature instead" };
Object q = AllZone.Display.getChoiceOptional("Select computer as target?", choices);
if (q.equals("Yes"))
AllZone.GameAction.getPlayerLife(Constant.Player.Computer).subtractLife(hondlist.size());
else
{
CardList cards = new CardList(oppPlay.getCards());
CardList oppCreatures = new CardList();
for (int i=0;i<cards.size();i++)
{
if (cards.get(i).isPlaneswalker() || cards.get(i).isCreature())
{
oppCreatures.add(cards.get(i));
}
}
if (oppCreatures.size() > 0)
{
Object o = AllZone.Display.getChoiceOptional("Pick target creature", oppCreatures.toArray());
Card c = (Card)o;
c.addDamage(hondlist.size());
}
}
}
else
{
Card targetc = null;
CardList flying = CardFactoryUtil.AI_getHumanCreature("Flying", card, true);
if(AllZone.Human_Life.getLife() > hondlist.size()*2) {
for(int i = 0; i < flying.size(); i++){
if(flying.get(i).getNetDefense() <= hondlist.size()){targetc = flying.get(i);}
}}
if(targetc != null)
{
if(AllZone.GameAction.isCardInPlay(targetc))
targetc.addDamage(hondlist.size());
}
else
AllZone.GameAction.getPlayerLife(Constant.Player.Human).subtractLife(hondlist.size());
}
}//resolve()
};//SpellAbility
ability.setStackDescription(list.get(i) + " - Deals " + hondlist.size() + " damage to target creature or player");
AllZone.Stack.add(ability);
}
}// upkeep_Honden_of_Infinite_Rage
private static void upkeep_Honden_of_Lifes_Web()
{
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("Honden of Life's Web");
for (int i = 0; i < list.size(); i++) {
final Ability ability = new Ability(list.get(i), "0")
{
public void resolve() {
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, player);
CardList hondlist = new CardList();
hondlist.addAll(Play.getCards());
hondlist = hondlist.getType("Shrine");
for (int j = 0; j < hondlist.size() ; j++)
{
Card crd = new Card();
crd.setOwner(player);
crd.setController(player);
crd.setName("Spirit");
crd.setImageName("C 1 1 Spirit");
crd.setManaCost("");
crd.setToken(true);
crd.addType("Creature");
crd.addType("Spirit");
crd.setBaseAttack(1);
crd.setBaseDefense(1);
PlayerZone addplay = AllZone.getZone(Constant.Zone.Play, player);
addplay.add(crd);
}
}
};
ability.setStackDescription(list.get(i)+" - " + list.get(i).getController() + " puts a 1/1 colorless Spirit creature token into play for each Shrine he controls.");
AllZone.Stack.add(ability);
}
}// upkeep_Honden_of_Lifes_Web
private static void upkeep_Seizan_Perverter_of_Truth()
{
final String player = AllZone.Phase.getActivePlayer();