From 1277a5b8e24910ffa1b14f61d5fcbfb0994fa66d Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 4 May 2013 11:51:15 +0000 Subject: [PATCH] - Added Breaking Wave, Ghitu Fire, Mind Extraction, Rout, Saproling Symbiosis, and Twilight's Call --- .gitattributes | 6 ++++++ res/cardsfolder/b/breaking_wave.txt | 11 +++++++++++ res/cardsfolder/g/ghitu_fire.txt | 9 +++++++++ res/cardsfolder/m/mind_extraction.txt | 9 +++++++++ res/cardsfolder/r/rout.txt | 8 ++++++++ res/cardsfolder/s/saproling_symbiosis.txt | 9 +++++++++ res/cardsfolder/t/twilights_call.txt | 9 +++++++++ src/main/java/forge/game/GameActionUtil.java | 17 +++++++++++++++++ 8 files changed, 78 insertions(+) create mode 100644 res/cardsfolder/b/breaking_wave.txt create mode 100644 res/cardsfolder/g/ghitu_fire.txt create mode 100644 res/cardsfolder/m/mind_extraction.txt create mode 100644 res/cardsfolder/r/rout.txt create mode 100644 res/cardsfolder/s/saproling_symbiosis.txt create mode 100644 res/cardsfolder/t/twilights_call.txt diff --git a/.gitattributes b/.gitattributes index ec230c078c6..07bf62500b9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1293,6 +1293,7 @@ res/cardsfolder/b/break_of_day.txt -text res/cardsfolder/b/break_open.txt -text res/cardsfolder/b/breaking_entering.txt -text res/cardsfolder/b/breaking_point.txt -text +res/cardsfolder/b/breaking_wave.txt -text res/cardsfolder/b/breakthrough.txt -text svneol=unset#text/plain res/cardsfolder/b/breath_of_darigaaz.txt -text svneol=unset#text/plain res/cardsfolder/b/breath_of_dreams.txt svneol=native#text/plain @@ -4152,6 +4153,7 @@ res/cardsfolder/g/ghastly_remains.txt -text res/cardsfolder/g/ghave_guru_of_spores.txt -text res/cardsfolder/g/ghazban_ogre.txt -text res/cardsfolder/g/ghitu_encampment.txt svneol=native#text/plain +res/cardsfolder/g/ghitu_fire.txt -text res/cardsfolder/g/ghitu_fire_eater.txt svneol=native#text/plain res/cardsfolder/g/ghitu_firebreathing.txt svneol=native#text/plain res/cardsfolder/g/ghitu_slinger.txt svneol=native#text/plain @@ -6753,6 +6755,7 @@ res/cardsfolder/m/minamo_scrollkeeper.txt svneol=native#text/plain res/cardsfolder/m/minamo_sightbender.txt svneol=native#text/plain res/cardsfolder/m/mind_burst.txt svneol=native#text/plain res/cardsfolder/m/mind_control.txt svneol=native#text/plain +res/cardsfolder/m/mind_extraction.txt -text res/cardsfolder/m/mind_funeral.txt svneol=native#text/plain res/cardsfolder/m/mind_games.txt svneol=native#text/plain res/cardsfolder/m/mind_grind.txt -text @@ -8979,6 +8982,7 @@ res/cardsfolder/r/rotting_rats.txt svneol=native#text/plain res/cardsfolder/r/rough_tumble.txt -text res/cardsfolder/r/roughshod_mentor.txt svneol=native#text/plain res/cardsfolder/r/rouse.txt svneol=native#text/plain +res/cardsfolder/r/rout.txt -text res/cardsfolder/r/rowan_treefolk.txt svneol=native#text/plain res/cardsfolder/r/rowen.txt -text res/cardsfolder/r/royal_assassin.txt svneol=native#text/plain @@ -9177,6 +9181,7 @@ res/cardsfolder/s/saprazzan_skerry.txt svneol=native#text/plain res/cardsfolder/s/saproling_burst.txt -text res/cardsfolder/s/saproling_cluster.txt -text res/cardsfolder/s/saproling_infestation.txt -text +res/cardsfolder/s/saproling_symbiosis.txt -text res/cardsfolder/s/sapseep_forest.txt svneol=native#text/plain res/cardsfolder/s/sarcatog.txt svneol=native#text/plain res/cardsfolder/s/sarcomancy.txt svneol=native#text/plain @@ -11551,6 +11556,7 @@ res/cardsfolder/t/twigwalker.txt svneol=native#text/plain res/cardsfolder/t/twilight_drover.txt svneol=native#text/plain res/cardsfolder/t/twilight_mire.txt svneol=native#text/plain res/cardsfolder/t/twilight_shepherd.txt -text +res/cardsfolder/t/twilights_call.txt -text res/cardsfolder/t/twinblade_slasher.txt svneol=native#text/plain res/cardsfolder/t/twincast.txt svneol=native#text/plain res/cardsfolder/t/twinning_glass.txt -text svneol=unset#text/plain diff --git a/res/cardsfolder/b/breaking_wave.txt b/res/cardsfolder/b/breaking_wave.txt new file mode 100644 index 00000000000..099c74ed3ec --- /dev/null +++ b/res/cardsfolder/b/breaking_wave.txt @@ -0,0 +1,11 @@ +Name:Breaking Wave +ManaCost:2 U U +Types:Sorcery +K:You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it. +A:SP$ UntapAll | Cost$ 2 U U | ValidCards$ Creature.tapped | RememberUntapped$ True | SubAbility$ DBTap | SpellDescription$ Simultaneously untap all tapped creatures and tap all untapped creatures. +SVar:DBTap:DB$ TapAll | ValidCards$ Creature.untapped+IsNotRemembered | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/breaking_wave.jpg +Oracle:You may cast Breaking Wave any time you could cast an instant if you pay {2} more to cast it.\nSimultaneously untap all tapped creatures and tap all untapped creatures. +SetInfo:INV Rare \ No newline at end of file diff --git a/res/cardsfolder/g/ghitu_fire.txt b/res/cardsfolder/g/ghitu_fire.txt new file mode 100644 index 00000000000..0b30cb0bd38 --- /dev/null +++ b/res/cardsfolder/g/ghitu_fire.txt @@ -0,0 +1,9 @@ +Name:Ghitu Fire +ManaCost:X R +Types:Sorcery +K:You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it. +A:SP$ DealDamage | Cost$ X R | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to target creature or player. +SVar:X:Count$xPaid +SVar:Picture:http://www.wizards.com/global/images/magic/general/ghitu_fire.jpg +Oracle:You may cast Ghitu Fire any time you could cast an instant if you pay {2} more to cast it.\nGhitu Fire deals X damage to target creature or player. +SetInfo:INV Rare \ No newline at end of file diff --git a/res/cardsfolder/m/mind_extraction.txt b/res/cardsfolder/m/mind_extraction.txt new file mode 100644 index 00000000000..1540bd2cf68 --- /dev/null +++ b/res/cardsfolder/m/mind_extraction.txt @@ -0,0 +1,9 @@ +Name:Mind Extraction +ManaCost:2 B +Types:Sorcery +A:SP$ Discard | Cost$ 2 B Sac<1/Creature> | RememberCostCards$ True | ValidTgts$ Player | DiscardValid$ Card.SharesColorWith Remembered | Mode$ RevealDiscardAll | SubAbility$ DBCleanup | SpellDescription$ Target player reveals his or her hand and discards all cards of each of the sacrificed creature's colors. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/mind_extraction.jpg +Oracle:As an additional cost to cast Mind Extraction, sacrifice a creature.\nTarget player reveals his or her hand and discards all cards of each of the sacrificed creature's colors. +SetInfo:APC Common \ No newline at end of file diff --git a/res/cardsfolder/r/rout.txt b/res/cardsfolder/r/rout.txt new file mode 100644 index 00000000000..35978011a8b --- /dev/null +++ b/res/cardsfolder/r/rout.txt @@ -0,0 +1,8 @@ +Name:Rout +ManaCost:3 W W +Types:Sorcery +K:You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it. +A:SP$ DestroyAll | Cost$ 3 W W | ValidCards$ Creature | NoRegen$ True | SpellDescription$ Destroy all creatures. They can't be regenerated. +SVar:Picture:http://www.wizards.com/global/images/magic/general/rout.jpg +Oracle:You may cast Rout any time you could cast an instant if you pay {2} more to cast it.\nDestroy all creatures. They can't be regenerated. +SetInfo:INV Rare \ No newline at end of file diff --git a/res/cardsfolder/s/saproling_symbiosis.txt b/res/cardsfolder/s/saproling_symbiosis.txt new file mode 100644 index 00000000000..88c7715826c --- /dev/null +++ b/res/cardsfolder/s/saproling_symbiosis.txt @@ -0,0 +1,9 @@ +Name:Saproling Symbiosis +ManaCost:3 G +Types:Sorcery +K:You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it. +A:SP$ Token | Cost$ 3 G | TokenAmount$ X | References$ X | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ Put a 1/1 green Saproling creature token onto the battlefield for each creature you control. +SVar:X:Count$Valid Creature.YouCtrl +SVar:Picture:http://www.wizards.com/global/images/magic/general/saproling_symbiosis.jpg +Oracle:You may cast Saproling Symbiosis any time you could cast an instant if you pay {2} more to cast it.\nPut a 1/1 green Saproling creature token onto the battlefield for each creature you control. +SetInfo:INV Rare \ No newline at end of file diff --git a/res/cardsfolder/t/twilights_call.txt b/res/cardsfolder/t/twilights_call.txt new file mode 100644 index 00000000000..37531a71bd6 --- /dev/null +++ b/res/cardsfolder/t/twilights_call.txt @@ -0,0 +1,9 @@ +Name:Twilight's Call +ManaCost:4 B B +Types:Sorcery +K:You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it. +A:SP$ ChangeZoneAll | Cost$ 4 B B | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature | SpellDescription$ Each player returns all creature cards from his or her graveyard to the battlefield. +SVar:Picture:http://www.wizards.com/global/images/magic/general/twilights_call.jpg +Oracle:You may cast Twilight's Call any time you could cast an instant if you pay {2} more to cast it.\nEach player returns all creature cards from his or her graveyard to the battlefield. +SetInfo:DDJ Rare +SetInfo:INV Rare \ No newline at end of file diff --git a/src/main/java/forge/game/GameActionUtil.java b/src/main/java/forge/game/GameActionUtil.java index e8488c8cf35..7c5993e5e54 100644 --- a/src/main/java/forge/game/GameActionUtil.java +++ b/src/main/java/forge/game/GameActionUtil.java @@ -57,6 +57,7 @@ import forge.card.cost.CostReveal; import forge.card.cost.CostSacrifice; import forge.card.cost.CostTapType; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostBeingPaid; import forge.card.spellability.Ability; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilitySub; @@ -1211,6 +1212,22 @@ public final class GameActionUtil { newSA.setDescription(sa.getDescription() + " (by paying " + cost.toSimpleString() + " instead of its mana cost)"); alternatives.add(newSA); } + if (sa.isSpell() && keyword.equals("You may cast CARDNAME any time you could cast an instant if you pay 2 more to cast it.")) { + final SpellAbility newSA = sa.copy(); + newSA.setBasicSpell(false); + String cost = source.getManaCost().toString(); + ManaCostBeingPaid newCost = new ManaCostBeingPaid(cost); + newCost.increaseColorlessMana(2); + cost = newCost.toString(); + final Cost actualcost = new Cost(cost, false); + newSA.setPayCosts(actualcost); + SpellAbilityRestriction sar = new SpellAbilityRestriction(); + sar.setVariables(sa.getRestrictions()); + sar.setInstantSpeed(true); + newSA.setRestrictions(sar); + newSA.setDescription(sa.getDescription() + " (by paying " + actualcost.toSimpleString() + " instead of its mana cost)"); + alternatives.add(newSA); + } } return alternatives; }