From 8b0c0481a9922373f8a6c75dc7ea3ae408add5f1 Mon Sep 17 00:00:00 2001 From: Sloth Date: Tue, 9 Apr 2013 21:43:38 +0000 Subject: [PATCH] - Created a new AI SVar "NonStackingEffect" for cards like Blood Moon or Crucible of Worlds. --- res/cardsfolder/a/absolute_grace.txt | 1 + res/cardsfolder/a/absolute_law.txt | 1 + res/cardsfolder/a/akromas_memorial.txt | 1 + res/cardsfolder/a/aluren.txt | 1 + res/cardsfolder/a/arcane_laboratory.txt | 1 + res/cardsfolder/a/arena_of_the_ancients.txt | 1 + res/cardsfolder/a/aysen_highway.txt | 1 + res/cardsfolder/b/back_to_basics.txt | 1 + res/cardsfolder/b/bedlam.txt | 1 + res/cardsfolder/b/blood_moon.txt | 1 + res/cardsfolder/b/bower_passage.txt | 1 + res/cardsfolder/b/bubble_matrix.txt | 1 + res/cardsfolder/c/caverns_of_despair.txt | 1 + res/cardsfolder/c/chaosphere.txt | 1 + res/cardsfolder/c/choke.txt | 1 + res/cardsfolder/c/city_of_solitude.txt | 1 + res/cardsfolder/c/concordant_crossroads.txt | 1 + res/cardsfolder/c/cornered_market.txt | 2 +- res/cardsfolder/c/crackdown.txt | 1 + res/cardsfolder/c/crawlspace.txt | 1 + res/cardsfolder/c/crevasse.txt | 1 + res/cardsfolder/c/crucible_of_worlds.txt | 1 + res/cardsfolder/c/crumbling_sanctuary.txt | 1 + res/cardsfolder/c/curse_of_marit_lage.txt | 1 + res/cardsfolder/c/cursed_rack.txt | 1 + res/cardsfolder/c/cursed_totem.txt | 1 + res/cardsfolder/d/damping_field.txt | 1 + res/cardsfolder/d/damping_matrix.txt | 1 + res/cardsfolder/d/darkest_hour.txt | 1 + res/cardsfolder/d/darksteel_forge.txt | 1 + res/cardsfolder/d/deadfall.txt | 1 + res/cardsfolder/d/dense_canopy.txt | 1 + res/cardsfolder/d/dense_foliage.txt | 1 + res/cardsfolder/d/divine_presence.txt | 1 + res/cardsfolder/d/dolmen_gate.txt | 1 + res/cardsfolder/d/dream_halls.txt | 1 + res/cardsfolder/d/dueling_grounds.txt | 1 + res/cardsfolder/e/earnest_fellowship.txt | 1 + res/cardsfolder/e/enchanted_evening.txt | 1 + res/cardsfolder/e/energy_field.txt | 1 + res/cardsfolder/e/ensnaring_bridge.txt | 1 + res/cardsfolder/e/eon_hub.txt | 1 + res/cardsfolder/e/everlasting_torment.txt | 1 + res/cardsfolder/t/trinisphere.txt | 1 + src/main/java/forge/game/ai/AiController.java | 9 +++++++-- 45 files changed, 51 insertions(+), 3 deletions(-) diff --git a/res/cardsfolder/a/absolute_grace.txt b/res/cardsfolder/a/absolute_grace.txt index 20d455a763a..f12e58bd12a 100644 --- a/res/cardsfolder/a/absolute_grace.txt +++ b/res/cardsfolder/a/absolute_grace.txt @@ -2,6 +2,7 @@ Name:Absolute Grace ManaCost:1 W Types:Enchantment S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Protection from black | Description$ All creatures have protection from black. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/absolute_grace.jpg Oracle:All creatures have protection from black. diff --git a/res/cardsfolder/a/absolute_law.txt b/res/cardsfolder/a/absolute_law.txt index 0f2203946c8..4499a3f15b1 100644 --- a/res/cardsfolder/a/absolute_law.txt +++ b/res/cardsfolder/a/absolute_law.txt @@ -2,6 +2,7 @@ Name:Absolute Law ManaCost:1 W Types:Enchantment S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Protection from red | Description$ All creatures have protection from red. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/absolute_law.jpg Oracle:All creatures have protection from red. diff --git a/res/cardsfolder/a/akromas_memorial.txt b/res/cardsfolder/a/akromas_memorial.txt index e3d9cb7556d..e358267985f 100644 --- a/res/cardsfolder/a/akromas_memorial.txt +++ b/res/cardsfolder/a/akromas_memorial.txt @@ -2,6 +2,7 @@ Name:Akroma's Memorial ManaCost:7 Types:Legendary Artifact S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddKeyword$ Flying & First Strike & Vigilance & Trample & Haste & Protection from black & Protection from red | Description$ Creatures you control have flying, first strike, vigilance, trample, haste, and protection from black and from red. +SVar:NonStackingEffect:True SVar:PlayMain1:TRUE SVar:Picture:http://www.wizards.com/global/images/magic/general/akromas_memorial.jpg Oracle:Creatures you control have flying, first strike, vigilance, trample, haste, and protection from black and from red. diff --git a/res/cardsfolder/a/aluren.txt b/res/cardsfolder/a/aluren.txt index 94dfbe12eb1..66c1cfac8ad 100644 --- a/res/cardsfolder/a/aluren.txt +++ b/res/cardsfolder/a/aluren.txt @@ -2,6 +2,7 @@ Name:Aluren ManaCost:2 G G Types:Enchantment S:Mode$ Continuous | Affected$ Creature.cmcLE3 | AddHiddenKeyword$ May be played without paying its mana cost and as though it has flash | AffectedZone$ Hand,Graveyard,Exile | Description$ Any player may play creature cards with converted mana cost 3 or less without paying their mana cost and as though they had flash. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/aluren.jpg Oracle:Any player may play creature cards with converted mana cost 3 or less without paying their mana cost and as though they had flash. diff --git a/res/cardsfolder/a/arcane_laboratory.txt b/res/cardsfolder/a/arcane_laboratory.txt index 915e170a4b3..a1c68dba98b 100644 --- a/res/cardsfolder/a/arcane_laboratory.txt +++ b/res/cardsfolder/a/arcane_laboratory.txt @@ -5,6 +5,7 @@ S:Mode$ CantBeCast | ValidCard$ Card | Caster$ You | CheckSVar$ X | Description$ S:Mode$ CantBeCast | ValidCard$ Card | Caster$ Opponent | CheckSVar$ Y SVar:X:Count$ThisTurnCast_Card.YouCtrl SVar:Y:Count$ThisTurnCast_Card.YouDontCtrl +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/arcane_laboratory.jpg Oracle:Each player can't cast more than one spell each turn. diff --git a/res/cardsfolder/a/arena_of_the_ancients.txt b/res/cardsfolder/a/arena_of_the_ancients.txt index 675df0f39b8..aaa1a7b9a35 100644 --- a/res/cardsfolder/a/arena_of_the_ancients.txt +++ b/res/cardsfolder/a/arena_of_the_ancients.txt @@ -5,6 +5,7 @@ Text:Legendary creatures don't untap during their controllers' untap steps. K:Permanents don't untap during their controllers' untap steps:Creature.Legendary T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTapAll | TriggerDescription$ When CARDNAME enters the battlefield, tap all legendary creatures. SVar:TrigTapAll:AB$TapAll | Cost$ 0 | ValidCards$ Creature.Legendary +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/arena_of_the_ancients.jpg Oracle:Legendary creatures don't untap during their controllers' untap steps.\nWhen Arena of the Ancients enters the battlefield, tap all legendary creatures. diff --git a/res/cardsfolder/a/aysen_highway.txt b/res/cardsfolder/a/aysen_highway.txt index bdc51565da1..c758dcbf5f1 100644 --- a/res/cardsfolder/a/aysen_highway.txt +++ b/res/cardsfolder/a/aysen_highway.txt @@ -2,6 +2,7 @@ Name:Aysen Highway ManaCost:3 W W W Types:Enchantment S:Mode$ Continuous | Affected$ Creature.White | AddKeyword$ Plainswalk | Description$ White creatures have plainswalk. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/aysen_highway.jpg Oracle:White creatures have plainswalk. diff --git a/res/cardsfolder/b/back_to_basics.txt b/res/cardsfolder/b/back_to_basics.txt index 927c2a2e363..d758d5ad8c3 100644 --- a/res/cardsfolder/b/back_to_basics.txt +++ b/res/cardsfolder/b/back_to_basics.txt @@ -3,6 +3,7 @@ ManaCost:2 U Types:Enchantment Text:Nonbasic lands don't untap during their controllers' untap steps. K:Permanents don't untap during their controllers' untap steps:Land.nonBasic +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/back_to_basics.jpg Oracle:Nonbasic lands don't untap during their controllers' untap steps. diff --git a/res/cardsfolder/b/bedlam.txt b/res/cardsfolder/b/bedlam.txt index 4132e7b3459..646497f1c79 100644 --- a/res/cardsfolder/b/bedlam.txt +++ b/res/cardsfolder/b/bedlam.txt @@ -2,6 +2,7 @@ Name:Bedlam ManaCost:2 R R Types:Enchantment S:Mode$ Continuous | Affected$ Creature | AddHiddenKeyword$ CARDNAME can't block. | Description$ Creatures can't block. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/bedlam.jpg Oracle:Creatures can't block. diff --git a/res/cardsfolder/b/blood_moon.txt b/res/cardsfolder/b/blood_moon.txt index 349825acc70..c096f67a96b 100644 --- a/res/cardsfolder/b/blood_moon.txt +++ b/res/cardsfolder/b/blood_moon.txt @@ -2,6 +2,7 @@ Name:Blood Moon ManaCost:2 R Types:Enchantment S:Mode$ Continuous | Affected$ Land.nonBasic | AddType$ Mountain | RemoveSubTypes$ True | RemoveAllAbilities$ True | Description$ Nonbasic lands are Mountains. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_moon.jpg Oracle:Nonbasic lands are Mountains. diff --git a/res/cardsfolder/b/bower_passage.txt b/res/cardsfolder/b/bower_passage.txt index 1c3b47d5ccf..d40ddf69175 100644 --- a/res/cardsfolder/b/bower_passage.txt +++ b/res/cardsfolder/b/bower_passage.txt @@ -2,6 +2,7 @@ Name:Bower Passage ManaCost:1 G Types:Enchantment S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CantBeBlockedBy Creature.withFlying | Description$ Creatures you control can't be blocked by creatures with flying. +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/bower_passage.jpg Oracle:Creatures with flying can't block creatures you control. SetInfo:AVR Uncommon \ No newline at end of file diff --git a/res/cardsfolder/b/bubble_matrix.txt b/res/cardsfolder/b/bubble_matrix.txt index 79e3144ca1f..2957987f27d 100644 --- a/res/cardsfolder/b/bubble_matrix.txt +++ b/res/cardsfolder/b/bubble_matrix.txt @@ -2,6 +2,7 @@ Name:Bubble Matrix ManaCost:4 Types:Artifact S:Mode$ PreventDamage | Target$ Creature | Description$ Prevent all damage that would be dealt to creatures. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/bubble_matrix.jpg Oracle:Prevent all damage that would be dealt to creatures. diff --git a/res/cardsfolder/c/caverns_of_despair.txt b/res/cardsfolder/c/caverns_of_despair.txt index 573eeb574a3..1fffc4cb9f0 100644 --- a/res/cardsfolder/c/caverns_of_despair.txt +++ b/res/cardsfolder/c/caverns_of_despair.txt @@ -3,6 +3,7 @@ ManaCost:2 R R Types:World Enchantment K:No more than two creatures can attack each combat. K:No more than two creatures can block each combat. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/caverns_of_despair.jpg Oracle:No more than two creatures can attack each combat.\nNo more than two creatures can block each combat. diff --git a/res/cardsfolder/c/chaosphere.txt b/res/cardsfolder/c/chaosphere.txt index df45791e56f..67b50489968 100644 --- a/res/cardsfolder/c/chaosphere.txt +++ b/res/cardsfolder/c/chaosphere.txt @@ -3,6 +3,7 @@ ManaCost:2 R Types:World Enchantment S:Mode$ Continuous | Affected$ Creature.withFlying | AddHiddenKeyword$ CARDNAME can block only creatures with flying. | Description$ Creatures with flying can block only creatures with flying. S:Mode$ Continuous | Affected$ Creature.withoutFlying | AddKeyword$ Reach | Description$ Creatures without flying have reach. (They can block creatures with flying.) +SVar:NonStackingEffect:True SVar:PlayMain1:TRUE SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/chaosphere.jpg diff --git a/res/cardsfolder/c/choke.txt b/res/cardsfolder/c/choke.txt index 70920e4bbb1..e777b183800 100644 --- a/res/cardsfolder/c/choke.txt +++ b/res/cardsfolder/c/choke.txt @@ -3,6 +3,7 @@ ManaCost:2 G Types:Enchantment Text:Islands don't untap during their controllers' untap steps. K:Permanents don't untap during their controllers' untap steps:Island +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/choke.jpg Oracle:Islands don't untap during their controllers' untap steps. diff --git a/res/cardsfolder/c/city_of_solitude.txt b/res/cardsfolder/c/city_of_solitude.txt index 162973a48b6..0dd6765f831 100644 --- a/res/cardsfolder/c/city_of_solitude.txt +++ b/res/cardsfolder/c/city_of_solitude.txt @@ -5,6 +5,7 @@ S:Mode$ CantBeCast | ValidCard$ Card | Condition$ PlayerTurn | Caster$ Opponent S:Mode$ CantBeCast | ValidCard$ Card | Condition$ NotPlayerTurn | Caster$ You S:Mode$ CantBeActivated | ValidCard$ Card | Condition$ PlayerTurn | Activator$ Opponent S:Mode$ CantBeActivated | ValidCard$ Card | Condition$ NotPlayerTurn | Activator$ You +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://wizards.com/global/images/magic/general/city_of_solitude.jpg Oracle:Players can cast spells and activate abilities only during their own turns. diff --git a/res/cardsfolder/c/concordant_crossroads.txt b/res/cardsfolder/c/concordant_crossroads.txt index b3c0703abe1..ade1cd1c52d 100644 --- a/res/cardsfolder/c/concordant_crossroads.txt +++ b/res/cardsfolder/c/concordant_crossroads.txt @@ -4,6 +4,7 @@ Types:World Enchantment S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Haste | Description$ All creatures have haste. SVar:BuffedBy:Creature SVar:AntiBuffedBy:Creature +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/concordant_crossroads.jpg Oracle:All creatures have haste. diff --git a/res/cardsfolder/c/cornered_market.txt b/res/cardsfolder/c/cornered_market.txt index 902356cc7f3..ffbc0bd40dc 100644 --- a/res/cardsfolder/c/cornered_market.txt +++ b/res/cardsfolder/c/cornered_market.txt @@ -3,7 +3,7 @@ ManaCost:2 W Types:Enchantment S:Mode$ CantPlayLand | ValidCard$ Land.nonBasic+sharesNameWith NonToken | Description$ Players can't play nonbasic lands with the same name as a nontoken permanent. S:Mode$ CantBeCast | ValidCard$ Card.sharesNameWith NonToken | Description$ Players can't cast spells with the same name as a nontoken permanent. -SVar:RemAIDeck:True +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cornered_market.jpg Oracle:Players can't cast spells with the same name as a nontoken permanent.\nPlayers can't play nonbasic lands with the same name as a nontoken permanent. diff --git a/res/cardsfolder/c/crackdown.txt b/res/cardsfolder/c/crackdown.txt index 49da1b9a29f..00f26a6e80f 100644 --- a/res/cardsfolder/c/crackdown.txt +++ b/res/cardsfolder/c/crackdown.txt @@ -3,6 +3,7 @@ ManaCost:2 W Types:Enchantment Text:Nonwhite creatures with power 3 or greater don't untap during their controllers' untap steps. K:Permanents don't untap during their controllers' untap steps:Creature.powerGE3+nonWhite +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crackdown.jpg Oracle:Nonwhite creatures with power 3 or greater don't untap during their controllers' untap steps. diff --git a/res/cardsfolder/c/crawlspace.txt b/res/cardsfolder/c/crawlspace.txt index aea6a1340e0..71d7113362c 100644 --- a/res/cardsfolder/c/crawlspace.txt +++ b/res/cardsfolder/c/crawlspace.txt @@ -2,6 +2,7 @@ Name:Crawlspace ManaCost:3 Types:Artifact K:No more than two creatures can attack you each combat. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crawlspace.jpg Oracle:No more than two creatures can attack you each combat. diff --git a/res/cardsfolder/c/crevasse.txt b/res/cardsfolder/c/crevasse.txt index c8257fb6432..be617d6271e 100644 --- a/res/cardsfolder/c/crevasse.txt +++ b/res/cardsfolder/c/crevasse.txt @@ -2,6 +2,7 @@ Name:Crevasse ManaCost:2 R Types:Enchantment S:Mode$ Continuous | Affected$ Creature.withMountainwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Mountainwalk. | Description$ Creatures with mountainwalk can be blocked as though they didn't have mountainwalk. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crevasse.jpg Oracle:Creatures with mountainwalk can be blocked as though they didn't have mountainwalk. diff --git a/res/cardsfolder/c/crucible_of_worlds.txt b/res/cardsfolder/c/crucible_of_worlds.txt index 7126dcb6b43..b05668754b4 100644 --- a/res/cardsfolder/c/crucible_of_worlds.txt +++ b/res/cardsfolder/c/crucible_of_worlds.txt @@ -2,6 +2,7 @@ Name:Crucible of Worlds ManaCost:3 Types:Artifact S:Mode$ Continuous | Affected$ Land.YouOwn | AddHiddenKeyword$ May be played | AffectedZone$ Graveyard | Description$ You may play land cards from your graveyard. +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crucible_of_worlds.jpg Oracle:You may play land cards from your graveyard. SetInfo:5DN Rare diff --git a/res/cardsfolder/c/crumbling_sanctuary.txt b/res/cardsfolder/c/crumbling_sanctuary.txt index 94c630452e0..f5b456ed6dd 100644 --- a/res/cardsfolder/c/crumbling_sanctuary.txt +++ b/res/cardsfolder/c/crumbling_sanctuary.txt @@ -2,6 +2,7 @@ Name:Crumbling Sanctuary ManaCost:5 Types:Artifact Text:For each 1 damage that would be dealt to a player, that player exiles the top card of his or her library instead. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crumbling_sanctuary.jpg Oracle:If damage would be dealt to a player, that player exiles that many cards from the top of his or her library instead. diff --git a/res/cardsfolder/c/curse_of_marit_lage.txt b/res/cardsfolder/c/curse_of_marit_lage.txt index 730f7e99437..ddf8b5e10fc 100644 --- a/res/cardsfolder/c/curse_of_marit_lage.txt +++ b/res/cardsfolder/c/curse_of_marit_lage.txt @@ -5,6 +5,7 @@ Text:Islands don't untap during their controllers' untap steps. K:Permanents don't untap during their controllers' untap steps:Island T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTapAll | TriggerDescription$ When CARDNAME enters the battlefield, tap all Islands. SVar:TrigTapAll:AB$ TapAll | Cost$ 0 | ValidCards$ Island +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/curse_of_marit_lage.jpg Oracle:When Curse of Marit Lage enters the battlefield, tap all Islands.\nIslands don't untap during their controllers' untap steps. diff --git a/res/cardsfolder/c/cursed_rack.txt b/res/cardsfolder/c/cursed_rack.txt index ceea331b9b1..f69c6d4892c 100644 --- a/res/cardsfolder/c/cursed_rack.txt +++ b/res/cardsfolder/c/cursed_rack.txt @@ -4,6 +4,7 @@ Types:Artifact K:ETBReplacement:Other:ChooseP SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | AILogic$ Curse | SpellDescription$ As CARDNAME enters the battlefield, choose an opponent. S:Mode$ Continuous | Affected$ Player.Chosen | SetMaxHandSize$ 4 | Description$ The chosen player's maximum hand size is four. +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cursed_rack.jpg Oracle:As Cursed Rack enters the battlefield, choose an opponent.\nThe chosen player's maximum hand size is four. SetInfo:ATQ Uncommon diff --git a/res/cardsfolder/c/cursed_totem.txt b/res/cardsfolder/c/cursed_totem.txt index 047b688cc5f..0dae0de52ac 100644 --- a/res/cardsfolder/c/cursed_totem.txt +++ b/res/cardsfolder/c/cursed_totem.txt @@ -2,6 +2,7 @@ Name:Cursed Totem ManaCost:2 Types:Artifact S:Mode$ Continuous | Affected$ Creature | AddHiddenKeyword$ CARDNAME's activated abilities can't be activated. | Description$ Activated abilities of creatures can't be activated. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cursed_totem.jpg Oracle:Activated abilities of creatures can't be activated. diff --git a/res/cardsfolder/d/damping_field.txt b/res/cardsfolder/d/damping_field.txt index 473cf631b5e..5b1cfcea98f 100644 --- a/res/cardsfolder/d/damping_field.txt +++ b/res/cardsfolder/d/damping_field.txt @@ -2,6 +2,7 @@ Name:Damping Field ManaCost:2 W Types:Enchantment Text:Players can't untap more than one artifact during their untap steps. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/damping_field.jpg Oracle:Players can't untap more than one artifact during their untap steps. diff --git a/res/cardsfolder/d/damping_matrix.txt b/res/cardsfolder/d/damping_matrix.txt index 7b4ef17914b..cb9cc101d05 100644 --- a/res/cardsfolder/d/damping_matrix.txt +++ b/res/cardsfolder/d/damping_matrix.txt @@ -2,6 +2,7 @@ Name:Damping Matrix ManaCost:3 Types:Artifact S:Mode$ CantBeActivated | ValidCard$ Artifact,Creature | NonMana$ True | Description$ Activated abilities of artifacts and creatures can't be activated unless they're mana abilities. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/damping_matrix.jpg Oracle:Activated abilities of artifacts and creatures can't be activated unless they're mana abilities. diff --git a/res/cardsfolder/d/darkest_hour.txt b/res/cardsfolder/d/darkest_hour.txt index 5dd2c7e9277..c161a251b75 100644 --- a/res/cardsfolder/d/darkest_hour.txt +++ b/res/cardsfolder/d/darkest_hour.txt @@ -2,6 +2,7 @@ Name:Darkest Hour ManaCost:B Types:Enchantment S:Mode$ Continuous | Affected$ Creature | SetColor$ Black | Description$ All creatures are black. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/darkest_hour.jpg Oracle:All creatures are black. diff --git a/res/cardsfolder/d/darksteel_forge.txt b/res/cardsfolder/d/darksteel_forge.txt index a2a8ab746e1..d5e82b22a85 100644 --- a/res/cardsfolder/d/darksteel_forge.txt +++ b/res/cardsfolder/d/darksteel_forge.txt @@ -2,6 +2,7 @@ Name:Darksteel Forge ManaCost:9 Types:Artifact S:Mode$ Continuous | Affected$ Artifact.YouCtrl | AddHiddenKeyword$ Indestructible | Description$ Artifacts you control are indestructible. +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/darksteel_forge.jpg Oracle:Artifacts you control are indestructible. ("Destroy" effects and lethal damage don't destroy them.) SetInfo:DST Rare diff --git a/res/cardsfolder/d/deadfall.txt b/res/cardsfolder/d/deadfall.txt index 58161045607..f1598724424 100644 --- a/res/cardsfolder/d/deadfall.txt +++ b/res/cardsfolder/d/deadfall.txt @@ -2,6 +2,7 @@ Name:Deadfall ManaCost:2 G Types:Enchantment S:Mode$ Continuous | Affected$ Creature.withForestwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Forestwalk. | Description$ Creatures with forestwalk can be blocked as though they didn't have forestwalk. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/deadfall.jpg Oracle:Creatures with forestwalk can be blocked as though they didn't have forestwalk. diff --git a/res/cardsfolder/d/dense_canopy.txt b/res/cardsfolder/d/dense_canopy.txt index 21298e33a9e..620a98f7f9a 100644 --- a/res/cardsfolder/d/dense_canopy.txt +++ b/res/cardsfolder/d/dense_canopy.txt @@ -2,6 +2,7 @@ Name:Dense Canopy ManaCost:1 G Types:Enchantment S:Mode$ Continuous | Affected$ Creature.withFlying | AddHiddenKeyword$ CARDNAME can block only creatures with flying. | Description$ Creatures with flying can block only creatures with flying. +SVar:NonStackingEffect:True SVar:PlayMain1:TRUE SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dense_canopy.jpg diff --git a/res/cardsfolder/d/dense_foliage.txt b/res/cardsfolder/d/dense_foliage.txt index c9c74f68dd6..e5443959b8e 100644 --- a/res/cardsfolder/d/dense_foliage.txt +++ b/res/cardsfolder/d/dense_foliage.txt @@ -2,6 +2,7 @@ Name:Dense Foliage ManaCost:2 G Types:Enchantment S:Mode$ CantTarget | ValidCard$ Creature | Spell$ True | Description$ Creatures can't be the target of spells. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dense_foliage.jpg Oracle:Creatures can't be the targets of spells. diff --git a/res/cardsfolder/d/divine_presence.txt b/res/cardsfolder/d/divine_presence.txt index 21b52139807..1e4d61e64c3 100644 --- a/res/cardsfolder/d/divine_presence.txt +++ b/res/cardsfolder/d/divine_presence.txt @@ -5,6 +5,7 @@ R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Creature,Player | R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Creature,Player | DamageAmount$ GE4 | IsCombat$ True | ReplaceWith$ Dmg3Combat | Secondary$ True | Description$ If a source would deal 4 or more damage to a creature or player, that source deals 3 damage to that creature or player instead. SVar:Dmg3:AB$DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ 3 SVar:Dmg3Combat:AB$DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | CombatDamage$ True | NumDmg$ 3 +SVar:NonStackingEffect:True SVar:PlayMain1:TRUE SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/divine_presence.jpg diff --git a/res/cardsfolder/d/dolmen_gate.txt b/res/cardsfolder/d/dolmen_gate.txt index 69bcc5343ae..494f90c7127 100644 --- a/res/cardsfolder/d/dolmen_gate.txt +++ b/res/cardsfolder/d/dolmen_gate.txt @@ -2,6 +2,7 @@ Name:Dolmen Gate ManaCost:2 Types:Artifact S:Mode$ PreventDamage | Target$ Creature.attacking+YouCtrl | CombatDamage$ True | Description$ Prevent all combat damage that would be dealt to attacking creatures you control. +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dolmen_gate.jpg Oracle:Prevent all combat damage that would be dealt to attacking creatures you control. SetInfo:LRW Rare \ No newline at end of file diff --git a/res/cardsfolder/d/dream_halls.txt b/res/cardsfolder/d/dream_halls.txt index fc8d75d3c8b..7a40e427c0b 100644 --- a/res/cardsfolder/d/dream_halls.txt +++ b/res/cardsfolder/d/dream_halls.txt @@ -2,6 +2,7 @@ Name:Dream Halls ManaCost:3 U U Types:Enchantment S:Mode$ Continuous | Affected$ Card.YouCtrl | AddHiddenKeyword$ Alternative Cost Discard<1/Card.SharesColorWith/color sharing> | AffectedZone$ Hand,Graveyard,Exile,Library | Description$ Rather than pay the mana cost for a spell, its controller may discard a card that shares a color with that spell. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dream_halls.jpg Oracle:Rather than pay the mana cost for a spell, its controller may discard a card that shares a color with that spell. diff --git a/res/cardsfolder/d/dueling_grounds.txt b/res/cardsfolder/d/dueling_grounds.txt index b81bf31113a..d612de02ef7 100644 --- a/res/cardsfolder/d/dueling_grounds.txt +++ b/res/cardsfolder/d/dueling_grounds.txt @@ -3,6 +3,7 @@ ManaCost:1 G W Types:Enchantment S:Mode$ Continuous | GlobalRule$ No more than one creature can attack each turn. | Description$ No more than one creature can attack each turn. S:Mode$ Continuous | GlobalRule$ No more than one creature can block each combat. | Description$ No more than one creature can block each turn. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dueling_grounds.jpg Oracle:No more than one creature can attack each turn.\nNo more than one creature can block each turn. diff --git a/res/cardsfolder/e/earnest_fellowship.txt b/res/cardsfolder/e/earnest_fellowship.txt index 9f6279807e2..1271c6bd1cc 100644 --- a/res/cardsfolder/e/earnest_fellowship.txt +++ b/res/cardsfolder/e/earnest_fellowship.txt @@ -7,6 +7,7 @@ S:Mode$ Continuous | Affected$ Creature.Blue | AddKeyword$ Protection from blue S:Mode$ Continuous | Affected$ Creature.Black | AddKeyword$ Protection from black S:Mode$ Continuous | Affected$ Creature.Red | AddKeyword$ Protection from red S:Mode$ Continuous | Affected$ Creature.Green | AddKeyword$ Protection from green +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/earnest_fellowship.jpg Oracle:Each creature has protection from its colors. diff --git a/res/cardsfolder/e/enchanted_evening.txt b/res/cardsfolder/e/enchanted_evening.txt index b42932f8eeb..38e4dd625fa 100644 --- a/res/cardsfolder/e/enchanted_evening.txt +++ b/res/cardsfolder/e/enchanted_evening.txt @@ -2,6 +2,7 @@ Name:Enchanted Evening ManaCost:3 WU WU Types:Enchantment S:Mode$ Continuous | Affected$ Permanent | AddType$ Enchantment | Description$ All permanents are enchantments in addition to their other types. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/enchanted_evening.jpg Oracle:All permanents are enchantments in addition to their other types. diff --git a/res/cardsfolder/e/energy_field.txt b/res/cardsfolder/e/energy_field.txt index 935ce3c5a00..8e78af3cb35 100644 --- a/res/cardsfolder/e/energy_field.txt +++ b/res/cardsfolder/e/energy_field.txt @@ -4,6 +4,7 @@ Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Card.nonToken+YouOwn | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ When a card is put into your graveyard from anywhere, sacrifice CARDNAME. SVar:TrigSac:AB$ Sacrifice | Cost$ 0 | Defined$ Self S:Mode$ PreventDamage | Target$ You | Source$ Card.YouDontCtrl | Description$ Prevent all damage that would be dealt to you by sources you don't control. +SVar:NonStackingEffect:True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/energy_field.jpg Oracle:Prevent all damage that would be dealt to you by sources you don't control.\nWhen a card is put into your graveyard from anywhere, sacrifice Energy Field. diff --git a/res/cardsfolder/e/ensnaring_bridge.txt b/res/cardsfolder/e/ensnaring_bridge.txt index c92606de8cb..616db3e46ee 100644 --- a/res/cardsfolder/e/ensnaring_bridge.txt +++ b/res/cardsfolder/e/ensnaring_bridge.txt @@ -3,6 +3,7 @@ ManaCost:3 Types:Artifact S:Mode$ Continuous | Affected$ Creature.powerGTX | AddHiddenKeyword$ CARDNAME can't attack. | Description$ Creatures with power greater than the number of cards in your hand can't attack. SVar:X:Count$InYourHand +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/ensnaring_bridge.jpg Oracle:Creatures with power greater than the number of cards in your hand can't attack. diff --git a/res/cardsfolder/e/eon_hub.txt b/res/cardsfolder/e/eon_hub.txt index 4adb0a3a691..801c58dde6b 100644 --- a/res/cardsfolder/e/eon_hub.txt +++ b/res/cardsfolder/e/eon_hub.txt @@ -2,6 +2,7 @@ Name:Eon Hub ManaCost:5 Types:Artifact S:Mode$ Continuous | Affected$ Player | AddKeyword$ Skip your upkeep step. | Description$ Players skip their upkeep steps. +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/eon_hub.jpg Oracle:Players skip their upkeep steps. diff --git a/res/cardsfolder/e/everlasting_torment.txt b/res/cardsfolder/e/everlasting_torment.txt index 2f7e33e4ce0..ad6af29ae74 100644 --- a/res/cardsfolder/e/everlasting_torment.txt +++ b/res/cardsfolder/e/everlasting_torment.txt @@ -4,6 +4,7 @@ Types:Enchantment S:Mode$ Continuous | Affected$ Player | AddKeyword$ You can't gain life. | Description$ Players can't gain life. S:Mode$ Continuous | GlobalRule$ Damage can't be prevented. | Description$ Damage can't be prevented. S:Mode$ Continuous | GlobalRule$ All damage is dealt as though it's source had wither. | Description$ All damage is dealt as though it's source had wither. (A source with wither deals damage to creatures in the form of -1/-1 counters.) +SVar:NonStackingEffect:True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/everlasting_torment.jpg Oracle:Players can't gain life.\nDamage can't be prevented.\nAll damage is dealt as though its source had wither. (A source with wither deals damage to creatures in the form of -1/-1 counters.) diff --git a/res/cardsfolder/t/trinisphere.txt b/res/cardsfolder/t/trinisphere.txt index b03c7931844..af83be17322 100644 --- a/res/cardsfolder/t/trinisphere.txt +++ b/res/cardsfolder/t/trinisphere.txt @@ -4,6 +4,7 @@ Types:Artifact S:Mode$ SetCost | ValidCard$ Card | Type$ Spell | Amount$ Min3 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ As long as CARDNAME is untapped, each spell that would cost less than three mana to cast costs three mana to cast. (Additional mana in the cost may be paid with any color of mana or colorless mana. For example, a spell that would cost 1 B to cast costs 2 B to cast instead.) SVar:X:Count$Valid Card.Self+untapped SVar:RemRandomDeck:True +SVar:NonStackingEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/trinisphere.jpg Oracle:As long as Trinisphere is untapped, each spell that would cost less than three mana to cast costs three mana to cast. (Additional mana in the cost may be paid with any color of mana or colorless mana. For example, a spell that would cost {1}{B} to cast costs {2}{B} to cast instead.) SetInfo:DST Rare diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java index cec010441ed..56f043c3d28 100644 --- a/src/main/java/forge/game/ai/AiController.java +++ b/src/main/java/forge/game/ai/AiController.java @@ -502,12 +502,17 @@ public class AiController { private int getSpellAbilityPriority(SpellAbility sa) { int p = 0; + Card source = sa.getSourceCard(); // puts creatures in front of spells - if (sa.getSourceCard().isCreature()) { + if (source.isCreature()) { p += 1; } // don't play equipments before having any creatures - if (sa.getSourceCard().isEquipment() && sa.getSourceCard().getController().getCreaturesInPlay().isEmpty()) { + if (source.isEquipment() && sa.getSourceCard().getController().getCreaturesInPlay().isEmpty()) { + p -= 9; + } + // artifacts and enchantments with effects that do not stack + if ("True".equals(source.getSVar("NonStackingEffect")) && source.getController().isCardInPlay(source.getName())) { p -= 9; } // sort planeswalker abilities for ultimate