From bb83d51c71380c48bf4d819c5373492e6afc33d4 Mon Sep 17 00:00:00 2001 From: Sloth Date: Fri, 17 Feb 2012 10:41:42 +0000 Subject: [PATCH] - Added Wrexial, the Risen Deep. --- .gitattributes | 1 + res/cardsfolder/w/wrexial_the_risen_deep.txt | 16 ++++++++++++++++ .../abilityfactory/AbilityFactoryChangeZone.java | 1 - .../card/abilityfactory/AbilityFactoryPlay.java | 7 ++++++- .../card/abilityfactory/AbilityFactoryPump.java | 10 ++++++++-- 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 res/cardsfolder/w/wrexial_the_risen_deep.txt diff --git a/.gitattributes b/.gitattributes index 4f9903b97e3..ef7ebe44cdb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10218,6 +10218,7 @@ res/cardsfolder/w/wrench_mind.txt svneol=native#text/plain res/cardsfolder/w/wrens_run_packmaster.txt svneol=native#text/plain res/cardsfolder/w/wretched_anurid.txt svneol=native#text/plain res/cardsfolder/w/wretched_banquet.txt -text +res/cardsfolder/w/wrexial_the_risen_deep.txt -text res/cardsfolder/w/wring_flesh.txt svneol=native#text/plain res/cardsfolder/w/wu_admiral.txt svneol=native#text/plain res/cardsfolder/w/wu_elite_cavalry.txt svneol=native#text/plain diff --git a/res/cardsfolder/w/wrexial_the_risen_deep.txt b/res/cardsfolder/w/wrexial_the_risen_deep.txt new file mode 100644 index 00000000000..9d1a0e3b1cd --- /dev/null +++ b/res/cardsfolder/w/wrexial_the_risen_deep.txt @@ -0,0 +1,16 @@ +Name:Wrexial, the Risen Deep +ManaCost:3 U U B +Types:Legendary Creature Kraken +Text:no text +PT:5/8 +K:Islandwalk +K:Swampwalk +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that card would be put into a graveyard this turn, exile it instead. +SVar:TrigPump:AB$ Pump | Cost$ 0 | TgtZone$ Graveyard | ValidTgts$ Instant.YouDontCtrl,Sorcery.YouDontCtrl | TgtPrompt$ Choose target instant or sorcery card from an opponent's graveyard | KW$ HIDDEN If CARDNAME would be put into a graveyard, exile it instead. | PumpZone$ Graveyard | SubAbility$ TrigPlay +SVar:TrigPlay:DB$ Play | Defined$ Targeted | WithoutManaCost$ True +SVar:Rarity:Mythic +SVar:Picture:http://www.wizards.com/global/images/magic/general/wrexial_the_risen_deep.jpg +SetInfo:COM|Mythic|http://magiccards.info/scans/en/cmd/239.jpg +SetInfo:WWK|Mythic|http://magiccards.info/scans/en/wwk/120.jpg +Oracle:Islandwalk, swampwalk\nWhenever Wrexial, the Risen Deep deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that card would be put into a graveyard this turn, exile it instead. +End \ No newline at end of file diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java index da3422f5dc2..7b091abe619 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java @@ -1017,7 +1017,6 @@ public final class AbilityFactoryChangeZone { if (params.containsKey("Unimprint")) { card.clearImprinted(); } - System.out.println("change fetchList:" + fetchList); for (int i = 0; i < changeNum; i++) { if ((fetchList.size() == 0) || (destination == null)) { diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java index e6f8800fe7f..f300acd6dd8 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryPlay.java @@ -308,7 +308,12 @@ public final class AbilityFactoryPlay { newSA.setDescription(sa.getDescription() + " (without paying its mana cost)"); AllZone.getGameAction().playSpellAbility(newSA); } else if (tgtSA.canPlayAI()) { - ComputerUtil.playSpellAbilityWithoutPayingManaCost(tgtSA); + if (sa instanceof Spell) { + Spell spell = (Spell) sa; + if (spell.canPlayFromEffectAI(false, true)) { + ComputerUtil.playSpellAbilityWithoutPayingManaCost(tgtSA); + } + } } } else { if (controller.isHuman()) { diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java index 2b6fba01efc..0f464f0f390 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryPump.java @@ -555,6 +555,7 @@ public class AbilityFactoryPump { */ private boolean pumpTgtAI(final SpellAbility sa, final int defense, final int attack, final boolean mandatory) { if (!mandatory + && sa.getPayCosts() != null && AllZone.getPhaseHandler().isAfter(Constant.Phase.COMBAT_DECLARE_BLOCKERS_INSTANT_ABILITY) && !(this.abilityFactory.isCurse() && ((defense < 0) || !this .containsCombatRelevantKeyword(this.keywords)))) { @@ -571,7 +572,12 @@ public class AbilityFactoryPump { return true; } } else { - list = this.getPumpCreatures(defense, attack, sa); + if (!tgt.canTgtCreature()) { + Zone zone = tgt.getZone().get(0); + list = AllZoneUtil.getCardsIn(zone); + } else { + list = this.getPumpCreatures(defense, attack, sa); + } if (tgt.canTgtPlayer() && !tgt.canOnlyTgtOpponent()) { tgt.addTarget(AllZone.getComputerPlayer()); return true; @@ -617,7 +623,7 @@ public class AbilityFactoryPump { } } - t = CardFactoryUtil.getBestCreatureAI(list); + t = CardFactoryUtil.getBestAI(list); tgt.addTarget(t); list.remove(t); }