- Added Madness keyword

- Updated Reckless Wurm, Ichor Slick
- Added Basking Rootwalla, Arrogant Wurm

Notes: Madness 0 cards are autocast when discarded. This probably should be more delicate. AI needs to be smarter when using Madness with spells that target.
This commit is contained in:
jendave
2011-08-06 05:28:03 +00:00
parent 8a0762aaa9
commit 5afb9965ab
5 changed files with 24297 additions and 24204 deletions

View File

@@ -38,6 +38,8 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
arrogant_wurm.jpg http://www.wizards.com/global/images/magic/general/arrogant_wurm.jpg
basking_rootwalla.jpg http://www.wizards.com/global/images/magic/general/basking_rootwalla.jpg
vedalken_heretic.jpg http://www.wizards.com/global/images/magic/general/vedalken_heretic.jpg vedalken_heretic.jpg http://www.wizards.com/global/images/magic/general/vedalken_heretic.jpg
juniper_order_ranger.jpg http://www.wizards.com/global/images/magic/general/juniper_order_ranger.jpg juniper_order_ranger.jpg http://www.wizards.com/global/images/magic/general/juniper_order_ranger.jpg
fungal_shambler.jpg http://www.wizards.com/global/images/magic/general/fungal_shambler.jpg fungal_shambler.jpg http://www.wizards.com/global/images/magic/general/fungal_shambler.jpg

View File

@@ -1,3 +1,33 @@
Arrogant Wurm
3 G G
Creature Wurm
no text
4/4
Trample
Madness:2 G
Basking Rootwalla
G
Creature Lizard
Play this ability only once each turn.
1/1
abPump 1 G:+2/+2
Madness:0
Ichor Slick
2 B
Sorcery
no text
Madness:3 B
Reckless Wurm
3 R R
Creature Wurm
no text
4/4
Trample
Madness:2 R
Vedalken Heretic Vedalken Heretic
U G U G
Creature Vedalken Rogue Creature Vedalken Rogue
@@ -21339,13 +21369,6 @@ Trample
Haste Haste
At the beginning of the end step, sacrifice CARDNAME. At the beginning of the end step, sacrifice CARDNAME.
Reckless Wurm
3 R R
Creature Wurm
(NOTE: "Madness" not implemented.)
4/4
Trample
Force of Savagery Force of Savagery
2 G 2 G
Creature Elemental Creature Elemental
@@ -21462,11 +21485,6 @@ no text
spDamageTgtC:X:Drawback$YouGainLife/X:Tendrils of Corruption deals X damage to target creature and you gain X life, where X is the number of Swamps you control.:Tendrils of Corruption - deals damage and you gain life. spDamageTgtC:X:Drawback$YouGainLife/X:Tendrils of Corruption deals X damage to target creature and you gain X life, where X is the number of Swamps you control.:Tendrils of Corruption - deals damage and you gain life.
SVar:X:Count$TypeYouCtrl.Swamp SVar:X:Count$TypeYouCtrl.Swamp
Ichor Slick
2 B
Sorcery
(NOTE: "Madness" is not implemented.)
Lucent Liminid Lucent Liminid
3 W W 3 W W
Enchantment Creature Elemental Enchantment Creature Elemental

View File

@@ -73,6 +73,8 @@ public class Card extends MyObservable {
private boolean unearth = false; private boolean unearth = false;
private boolean unearthed; private boolean unearthed;
private boolean madness = false;
private int exaltedMagnitude = 0; private int exaltedMagnitude = 0;
private int baseAttack; private int baseAttack;
@@ -113,6 +115,7 @@ public class Card extends MyObservable {
private String tabernacleUpkeepCost = ""; private String tabernacleUpkeepCost = "";
private String magusTabernacleUpkeepCost = ""; private String magusTabernacleUpkeepCost = "";
private String echoCost = ""; private String echoCost = "";
private String madnessCost = "";
private String chosenType = ""; private String chosenType = "";
private String chosenColor = ""; private String chosenColor = "";
private String namedCard = ""; private String namedCard = "";
@@ -1781,6 +1784,22 @@ public class Card extends MyObservable {
unearthed = b; unearthed = b;
} }
public boolean hasMadness() {
return madness;
}
public void setMadness(boolean b) {
madness = b;
}
public String getMadnessCost() {
return madnessCost;
}
public void setMadnessCost(String cost) {
madnessCost = cost;
}
public void setKicked(boolean b) { public void setKicked(boolean b) {
kicked = b; kicked = b;
} }

File diff suppressed because it is too large Load Diff

View File

@@ -134,9 +134,12 @@ public class GameAction {
AllZone.GameAction.CheckWheneverKeyword(c,"DiscardsCard",null); AllZone.GameAction.CheckWheneverKeyword(c,"DiscardsCard",null);
discard_nath(c); discard_nath(c);
discard_megrim(c); discard_megrim(c);
moveToGraveyard(c); if(CardFactoryUtil.getCards("Necropotence", c.getOwner()).size() > 0){ // necro disrupts madness
if(CardFactoryUtil.getCards("Necropotence", c.getOwner()).size() > 0)
removeFromGame(c); removeFromGame(c);
return;
}
discard_madness(c);
moveToGraveyard(c);
} }
public void discardRandom(String player, int numDiscard) { public void discardRandom(String player, int numDiscard) {
@@ -398,6 +401,43 @@ public class GameAction {
} }
} }
public void discard_madness(Card c) {
// Whenever a card with madness is discarded, you may cast it for it's madness cost
if (!c.hasMadness())
return;
final Card madness = c;
final Ability cast = new Ability(madness, madness.getMadnessCost()) {
@Override
public void resolve() {
//moveToHand(madness);
if (madness.getOwner().equals("Human"))
AllZone.Human_Graveyard.remove(madness);
else
AllZone.Computer_Graveyard.remove(madness);
playCardNoCost(madness);
System.out.println("Madness cost paid");
}
};
cast.setStackDescription(madness.getName()+" - Cast via Madness");
final Ability activate = new Ability(madness, "0") {
@Override
public void resolve() {
// pay madness cost here.
if (cast.getManaCost().equals("0"))
AllZone.Stack.add(cast);
else if (madness.getOwner().equals("Human"))
AllZone.InputControl.setInput(new Input_PayManaCost(cast));
else // computer will ALWAYS pay a madness cost if he has the mana.
ComputerUtil.playStack(cast);
}
};
activate.setStackDescription(madness.getName() + " - Discarded. Pay Madness Cost?");
AllZone.Stack.add(activate);
}
//do this during combat damage: //do this during combat damage:
public void checkWinLoss() public void checkWinLoss()
{ {