diff --git a/res/cardsfolder/a/animal_boneyard.txt b/res/cardsfolder/a/animal_boneyard.txt index 04ca24d8664..73324393060 100644 --- a/res/cardsfolder/a/animal_boneyard.txt +++ b/res/cardsfolder/a/animal_boneyard.txt @@ -7,5 +7,6 @@ S:Mode$ Continuous | Affected$ Land.AttachedBy | AddAbility$ GainLife | AddSVar$ SVar:GainLife:AB$GainLife | Cost$ T Sac<1/Creature> | LifeAmount$ AnimalBoneyardX | SpellDescription$ You gain life equal to the sacrificed creature's toughness. SVar:AnimalBoneyardX:Sacrificed$CardToughness SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/animal_boneyard.jpg Oracle:Enchant land\nEnchanted land has "{T}, Sacrifice a creature: You gain life equal to that creature's toughness." \ No newline at end of file diff --git a/res/cardsfolder/a/archery_training.txt b/res/cardsfolder/a/archery_training.txt index c5ff0daddb5..c2c06581223 100644 --- a/res/cardsfolder/a/archery_training.txt +++ b/res/cardsfolder/a/archery_training.txt @@ -10,6 +10,6 @@ SVar:ArcheryDamage:AB$ Pump | Cost$ T | ImprintCards$ OriginalHost | SubAbility$ SVar:DBArcheryDamage:DB$ DealDamage | ValidTgts$ Creature.attacking,Creature.blocking | TgtPrompt$ Select target attacking or blocking creature | NumDmg$ ArcheryX | SubAbility$ DBArcheryCleanup SVar:ArcheryX:Count$TotalCounters_ARROW_Card.IsImprinted+namedArchery Training SVar:DBArcheryCleanup:DB$ Pump | ForgetLastImprinted$ True -SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/archery_training.jpg Oracle:Enchant creature\nAt the beginning of your upkeep, you may put an arrow counter on Archery Training.\nEnchanted creature has "{T}: This creature deals X damage to target attacking or blocking creature, where X is the number of arrow counters on Archery Training." \ No newline at end of file diff --git a/res/cardsfolder/b/barbed_field.txt b/res/cardsfolder/b/barbed_field.txt index 14f916c5961..96527e64b9f 100644 --- a/res/cardsfolder/b/barbed_field.txt +++ b/res/cardsfolder/b/barbed_field.txt @@ -5,5 +5,6 @@ K:Enchant land A:SP$ Attach | Cost$ 2 R R | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Land.EnchantedBy | AddAbility$ Damage | Description$ Enchanted land has "tap: This land deals 1 damage to target creature or player." SVar:Damage:AB$DealDamage | Cost$ T | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/barbed_field.jpg Oracle:Enchant land\nEnchanted land has "{T}: This land deals 1 damage to target creature or player." \ No newline at end of file diff --git a/res/cardsfolder/b/blessing_of_leeches.txt b/res/cardsfolder/b/blessing_of_leeches.txt index 3b58771d4fa..37501ea8b5d 100644 --- a/res/cardsfolder/b/blessing_of_leeches.txt +++ b/res/cardsfolder/b/blessing_of_leeches.txt @@ -7,6 +7,7 @@ A:SP$ Attach | Cost$ 2 B | ValidTgts$ Creature | AILogic$ Pump A:AB$ Regenerate | Cost$ 0 | Defined$ Enchanted | SpellDescription$ Regenerate enchanted creature. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ At the beginning of your upkeep, you lose 1 life. SVar:TrigLoseLife:AB$LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ 1 -SVar:RemRandomDeck:True +SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/blessing_of_leeches.jpg Oracle:Flash\nEnchant creature\nAt the beginning of your upkeep, you lose 1 life.\n{0}: Regenerate enchanted creature. \ No newline at end of file diff --git a/res/cardsfolder/b/blight.txt b/res/cardsfolder/b/blight.txt index 764dcb0d447..95b5280165a 100644 --- a/res/cardsfolder/b/blight.txt +++ b/res/cardsfolder/b/blight.txt @@ -5,5 +5,6 @@ K:Enchant land A:SP$ Attach | Cost$ B B | ValidTgts$ Land | AILogic$ Curse T:Mode$ Taps | ValidCard$ Card.AttachedBy | Execute$ TrigDestroy | TriggerDescription$ When enchanted land becomes tapped, destroy it. SVar:TrigDestroy:AB$Destroy | Cost$ 0 | Defined$ TriggeredCard +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/blight.jpg Oracle:Enchant land\nWhen enchanted land becomes tapped, destroy it. \ No newline at end of file diff --git a/res/cardsfolder/b/brink_of_disaster.txt b/res/cardsfolder/b/brink_of_disaster.txt index cbaa0a91dc1..e85a6628a9b 100644 --- a/res/cardsfolder/b/brink_of_disaster.txt +++ b/res/cardsfolder/b/brink_of_disaster.txt @@ -5,5 +5,6 @@ K:Enchant creature or land A:SP$ Attach | Cost$ 2 B B | ValidTgts$ Creature,Land | AILogic$ Curse T:Mode$ Taps | ValidCard$ Card.AttachedBy | Execute$ TrigDestroy | TriggerDescription$ When enchanted permanent becomes tapped, destroy it. SVar:TrigDestroy:AB$ Destroy | Cost$ 0 | Defined$ TriggeredCard +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/brink_of_disaster.jpg Oracle:Enchant creature or land\nWhen enchanted permanent becomes tapped, destroy it. \ No newline at end of file diff --git a/res/cardsfolder/b/burden_of_guilt.txt b/res/cardsfolder/b/burden_of_guilt.txt index 423c8a1b4c1..0d8c56419b1 100644 --- a/res/cardsfolder/b/burden_of_guilt.txt +++ b/res/cardsfolder/b/burden_of_guilt.txt @@ -5,5 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ W | ValidTgts$ Creature | AILogic$ KeepTapped A:AB$Tap | Cost$ 1 | Defined$ Enchanted | SpellDescription$ Tap enchanted creature. SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/burden_of_guilt.jpg Oracle:Enchant creature\n{1}: Tap enchanted creature. \ No newline at end of file diff --git a/res/cardsfolder/c/caustic_tar.txt b/res/cardsfolder/c/caustic_tar.txt index 179b7236591..0e1b87bd61b 100644 --- a/res/cardsfolder/c/caustic_tar.txt +++ b/res/cardsfolder/c/caustic_tar.txt @@ -5,5 +5,6 @@ K:Enchant land A:SP$ Attach | Cost$ 4 B B | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Land.AttachedBy | AddAbility$ LoseLife | Description$ Enchanted land has "tap: Target player loses 3 life." SVar:LoseLife:AB$LoseLife | Cost$ T | ValidTgts$ Player | LifeAmount$ 3 | TgtPrompt$ Target a player to lose life | SpellDescription$ Target player loses 3 life. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/caustic_tar.jpg Oracle:Enchant land\nEnchanted land has "{T}: Target player loses 3 life." \ No newline at end of file diff --git a/res/cardsfolder/c/consecrate_land.txt b/res/cardsfolder/c/consecrate_land.txt index f513256a888..b2d4a0bcc7a 100644 --- a/res/cardsfolder/c/consecrate_land.txt +++ b/res/cardsfolder/c/consecrate_land.txt @@ -5,5 +5,6 @@ K:Enchant land A:SP$ Attach | Cost$ W | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Land.EnchantedBy | AddHiddenKeyword$ CARDNAME can't be enchanted. | AddKeyword$ Indestructible | Description$ Enchanted land is indestructible and can't be enchanted by other Auras. SVar:RemRandomDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/consecrate_land.jpg Oracle:Enchant land\nEnchanted land is indestructible and can't be enchanted by other Auras. \ No newline at end of file diff --git a/res/cardsfolder/c/contempt.txt b/res/cardsfolder/c/contempt.txt index e27fb4bb707..46f4527ec2b 100644 --- a/res/cardsfolder/c/contempt.txt +++ b/res/cardsfolder/c/contempt.txt @@ -7,5 +7,6 @@ T:Mode$ Attacks | ValidCard$ Card.EnchantedBy | DelayedTrigger$ DelBounce | Trig SVar:DelBounce:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ BounceCritter | TriggerDescription$ Return enchanted creature and CARDNAME to their owners' hands. SVar:BounceCritter:DB$ ChangeZone | Defined$ Enchanted | Origin$ Battlefield | Destination$ Hand | SubAbility$ BounceSelf SVar:BounceSelf:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/contempt.jpg Oracle:Enchant creature\nWhenever enchanted creature attacks, return it and Contempt to their owners' hands at end of combat. \ No newline at end of file diff --git a/res/cardsfolder/c/coral_net.txt b/res/cardsfolder/c/coral_net.txt index 9388449a77e..4aa6300ab8f 100644 --- a/res/cardsfolder/c/coral_net.txt +++ b/res/cardsfolder/c/coral_net.txt @@ -9,5 +9,6 @@ SVar:TrigCoralDiscard:AB$ Discard | Cost$ 0 | Defined$ You | Mode$ TgtChoose | N SVar:DBCoralSacrifice:DB$ Sacrifice | Defined$ Self | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCoralCleanup SVar:DBCoralCleanup:DB$ Cleanup | ClearRemembered$ True SVar:RemRandomDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/coral_net.jpg Oracle:Enchant green or white creature\nEnchanted creature has "At the beginning of your upkeep, sacrifice this creature unless you discard a card." \ No newline at end of file diff --git a/res/cardsfolder/c/curse_of_chains.txt b/res/cardsfolder/c/curse_of_chains.txt index 2f242b45c0b..085e6e49ccf 100644 --- a/res/cardsfolder/c/curse_of_chains.txt +++ b/res/cardsfolder/c/curse_of_chains.txt @@ -5,5 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 WU | ValidTgts$ Creature | AILogic$ KeepTapped T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ At the beginning of each upkeep, tap enchanted creature. SVar:TrigTap:AB$Tap | Cost$ 0 | Defined$ Enchanted +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/curse_of_chains.jpg Oracle:Enchant creature\nAt the beginning of each upkeep, tap enchanted creature. \ No newline at end of file diff --git a/res/cardsfolder/d/debtors_pulpit.txt b/res/cardsfolder/d/debtors_pulpit.txt index 6f54244a8d9..789a2a5c4d1 100644 --- a/res/cardsfolder/d/debtors_pulpit.txt +++ b/res/cardsfolder/d/debtors_pulpit.txt @@ -5,5 +5,6 @@ K:Enchant land A:SP$ Attach | Cost$ 4 W | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddAbility$ DPTapCreature | Description$ Enchanted land has "T: Tap target creature." SVar:DPTapCreature:AB$ Tap | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Choose target creature.| SpellDescription$ Tap target creature. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/debtors_pulpit.jpg Oracle:Enchant land\nEnchanted land has "{T}: Tap target creature." \ No newline at end of file diff --git a/res/cardsfolder/d/defang.txt b/res/cardsfolder/d/defang.txt index 32fe3d63950..e330e4bf6ef 100644 --- a/res/cardsfolder/d/defang.txt +++ b/res/cardsfolder/d/defang.txt @@ -4,5 +4,6 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Curse S:Mode$ PreventDamage | Source$ Creature.EnchantedBy | Description$ Prevent all damage that would be dealt by enchanted creature. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/defang.jpg Oracle:Enchant creature\nPrevent all damage that would be dealt by enchanted creature. \ No newline at end of file diff --git a/res/cardsfolder/d/disappear.txt b/res/cardsfolder/d/disappear.txt index 1de6976fe49..59234199fe1 100644 --- a/res/cardsfolder/d/disappear.txt +++ b/res/cardsfolder/d/disappear.txt @@ -5,5 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 2 U U | ValidTgts$ Creature | AILogic$ Curse A:AB$ ChangeZone | Cost$ U | Defined$ Enchanted | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBBounce | SpellDescription$ Return enchanted creature and CARDNAME to their owners' hands. SVar:DBBounce:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/disappear.jpg Oracle:Enchant creature\n{U}: Return enchanted creature and Disappear to their owners' hands. \ No newline at end of file diff --git a/res/cardsfolder/d/disruption_aura.txt b/res/cardsfolder/d/disruption_aura.txt index ece28d2245c..c84284a5718 100644 --- a/res/cardsfolder/d/disruption_aura.txt +++ b/res/cardsfolder/d/disruption_aura.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ 2 U | ValidTgts$ Artifact | TgtPrompt$ Select target artifa S:Mode$ Continuous | Affected$ Artifact.EnchantedBy | AddTrigger$ TrigPhase | AddSVar$ TrigPendrellFlux | Description$ Enchanted artifact has "At the beginning of your upkeep, sacrifice this artifact unless you pay its mana cost." SVar:TrigPhase:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigPendrellFlux | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, sacrifice this artifact unless you pay its mana cost. SVar:TrigPendrellFlux:DB$ Sacrifice | Defined$ Self | UnlessCost$ CardManaCost | UnlessPayer$ You +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/disruption_aura.jpg Oracle:Enchant artifact\nEnchanted artifact has "At the beginning of your upkeep, sacrifice this artifact unless you pay its mana cost." \ No newline at end of file diff --git a/res/cardsfolder/e/elemental_mastery.txt b/res/cardsfolder/e/elemental_mastery.txt index 46b3fa7fb6f..509a25d05a7 100644 --- a/res/cardsfolder/e/elemental_mastery.txt +++ b/res/cardsfolder/e/elemental_mastery.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ 3 R | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ Token | AddSVar$ ElementalMasteryCount | Description$ Enchanted creature has "Tap: Put X 1/1 red Elemental creature tokens with haste onto the battlefield, where X is this creature's power. Exile them at the beginning of the next end step." SVar:Token:AB$Token | Cost$ T | TokenAmount$ ElementalMasteryCount | TokenImage$ r 1 1 elemental | TokenName$ Elemental | TokenColors$ Red | TokenTypes$ Creature,Elemental | TokenKeywords$ Haste | TokenHiddenKeywords$ At the beginning of the end step, exile CARDNAME. | TokenPower$ 1 | TokenToughness$ 1 | References$ ElementalMasteryCount | SpellDescription$ Put X 1/1 red Elemental creature tokens with haste onto the battlefield, where X is this creature's power. Exile them at the beginning of the next end step. SVar:ElementalMasteryCount:Count$CardPower +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/elemental_mastery.jpg Oracle:Enchant creature\nEnchanted creature has "{T}: Put X 1/1 red Elemental creature tokens with haste onto the battlefield, where X is this creature's power. Exile them at the beginning of the next end step." \ No newline at end of file diff --git a/res/cardsfolder/e/essence_leak.txt b/res/cardsfolder/e/essence_leak.txt index 07f46bcd609..d97350a00cd 100644 --- a/res/cardsfolder/e/essence_leak.txt +++ b/res/cardsfolder/e/essence_leak.txt @@ -7,5 +7,6 @@ S:Mode$ Continuous | Affected$ Permanent.AttachedBy+Red,Permanent.AttachedBy+Gre SVar:TrigEssencePhase:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigEssenceLeak | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, sacrifice this permanent unless you pay its mana cost. SVar:TrigEssenceLeak:DB$ Sacrifice | Defined$ Self | UnlessCost$ CardManaCost | UnlessPayer$ You SVar:RemRandomDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/essence_leak.jpg Oracle:Enchant permanent\nAs long as enchanted permanent is red or green, it has "At the beginning of your upkeep, sacrifice this permanent unless you pay its mana cost." \ No newline at end of file diff --git a/res/cardsfolder/f/flowering_field.txt b/res/cardsfolder/f/flowering_field.txt index 4f59df0b892..b9003285482 100644 --- a/res/cardsfolder/f/flowering_field.txt +++ b/res/cardsfolder/f/flowering_field.txt @@ -6,5 +6,6 @@ K:Enchant land A:SP$ Attach | Cost$ 1 W | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Land.EnchantedBy | AddAbility$ Pump | Description$ Enchanted land has "Tap: Prevent the next 1 damage that would be dealt to target creature or player this turn." SVar:Pump:AB$PreventDamage | Cost$ T | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | Amount$ 1 | SpellDescription$ Prevent the next 1 damage that would be dealt to target creature or player this turn. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/flowering_field.jpg Oracle:Enchant land\nEnchanted land has "{T}: Prevent the next 1 damage that would be dealt to target creature or player this turn." \ No newline at end of file diff --git a/res/cardsfolder/f/fortitude.txt b/res/cardsfolder/f/fortitude.txt index dd3af665430..4097471a5d7 100644 --- a/res/cardsfolder/f/fortitude.txt +++ b/res/cardsfolder/f/fortitude.txt @@ -7,5 +7,6 @@ A:AB$ Regenerate | Cost$ Sac<1/Forest> | Defined$ Enchanted | SpellDescription$ T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Graveyard | Execute$ TrigBounce | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, return CARDNAME to its owner's hand. SVar:TrigBounce:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Hand | Defined$ Self SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/fortitude.jpg Oracle:Enchant creature\nSacrifice a Forest: Regenerate enchanted creature.\nWhen Fortitude is put into a graveyard from the battlefield, return Fortitude to its owner's hand. \ No newline at end of file diff --git a/res/cardsfolder/f/freed_from_the_real.txt b/res/cardsfolder/f/freed_from_the_real.txt index 2b688d47ded..22f365f6970 100644 --- a/res/cardsfolder/f/freed_from_the_real.txt +++ b/res/cardsfolder/f/freed_from_the_real.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ Pump A:AB$ Tap | Cost$ U | Defined$ Enchanted | SpellDescription$ Tap enchanted creature. A:AB$ Untap | Cost$ U | Defined$ Enchanted | SpellDescription$ Untap enchanted creature. SVar:RemAIDeck:True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/freed_from_the_real.jpg Oracle:Enchant creature\n{U}: Tap enchanted creature.\n{U}: Untap enchanted creature. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_cedars.txt b/res/cardsfolder/g/genju_of_the_cedars.txt index fff0dbc8c30..cfb7b95f2d8 100644 --- a/res/cardsfolder/g/genju_of_the_cedars.txt +++ b/res/cardsfolder/g/genju_of_the_cedars.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ G | ValidTgts$ Forest | AILogic$ Pump A:AB$ Animate | Cost$ 2 | Defined$ Enchanted | Power$ 4 | Toughness$ 4 | Types$ Creature,Spirit | Colors$ Green | SpellDescription$ Enchanted Forest becomes a 4/4 green Spirit creature until end of turn. It's still a land. T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | OptionalDecider$ You | TriggerDescription$ When enchanted Forest is put into a graveyard, you may return CARDNAME from your graveyard to your hand. SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_cedars.jpg Oracle:Enchant Forest\n{2}: Enchanted Forest becomes a 4/4 green Spirit creature until end of turn. It's still a land.\nWhen enchanted Forest is put into a graveyard, you may return Genju of the Cedars from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_falls.txt b/res/cardsfolder/g/genju_of_the_falls.txt index 0f592e54029..73094db8ed5 100644 --- a/res/cardsfolder/g/genju_of_the_falls.txt +++ b/res/cardsfolder/g/genju_of_the_falls.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ U | ValidTgts$ Island | AILogic$ Pump A:AB$ Animate | Cost$ 2 | Defined$ Enchanted | Power$ 3 | Toughness$ 2 | Types$ Creature,Spirit | Colors$ Blue | Keywords$ Flying | SpellDescription$ Enchanted Island becomes a 3/2 blue Spirit creature with flying until end of turn. It's still a land. T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | OptionalDecider$ You | TriggerDescription$ When enchanted Island is put into a graveyard, you may return CARDNAME from your graveyard to your hand. SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_falls.jpg Oracle:Enchant Island\n{2}: Enchanted Island becomes a 3/2 blue Spirit creature with flying until end of turn. It's still a land.\nWhen enchanted Island is put into a graveyard, you may return Genju of the Falls from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_fens.txt b/res/cardsfolder/g/genju_of_the_fens.txt index 8b6f978c619..28e1d82e5c3 100644 --- a/res/cardsfolder/g/genju_of_the_fens.txt +++ b/res/cardsfolder/g/genju_of_the_fens.txt @@ -7,5 +7,6 @@ A:AB$ Animate | Cost$ 2 | Defined$ Enchanted | Power$ 2 | Toughness$ 2 | Types$ T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | OptionalDecider$ You | TriggerDescription$ When enchanted Swamp is put into a graveyard, you may return CARDNAME from your graveyard to your hand. SVar:ABPump:AB$Pump | Cost$ B | Defined$ Self | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ This creature gets +1/+1 until end of turn. SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_fens.jpg Oracle:Enchant Swamp\n{2}: Until end of turn, enchanted Swamp becomes a 2/2 black Spirit creature with "{B}: This creature gets +1/+1 until end of turn." It's still a land.\nWhen enchanted Swamp is put into a graveyard, you may return Genju of the Fens from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_fields.txt b/res/cardsfolder/g/genju_of_the_fields.txt index 35fa2214733..b3032bc126b 100644 --- a/res/cardsfolder/g/genju_of_the_fields.txt +++ b/res/cardsfolder/g/genju_of_the_fields.txt @@ -8,6 +8,7 @@ T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destina SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand SVar:PseudoLifelink:Mode$ DamageDone | ValidSource$ Card.Self | Execute$ GenjuTrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life. SVar:GenjuTrigGain:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ GenjuX | References$ GenjuX +SVar:NonStackingAttachEffect:True SVar:GenjuX:TriggerCount$DamageAmount SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_fields.jpg Oracle:Enchant Plains\n{2}: Until end of turn, enchanted Plains becomes a 2/5 white Spirit creature with "Whenever this creature deals damage, its controller gains that much life." It's still a land.\nWhen enchanted Plains is put into a graveyard, you may return Genju of the Fields from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_realm.txt b/res/cardsfolder/g/genju_of_the_realm.txt index 42e46bac790..e2b6780cae2 100644 --- a/res/cardsfolder/g/genju_of_the_realm.txt +++ b/res/cardsfolder/g/genju_of_the_realm.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ W U B R G | ValidTgts$ Land | AILogic$ Pump A:AB$ Animate | Cost$ 2 | Defined$ Enchanted | Power$ 8 | Toughness$ 12 | Types$ Creature,Legendary,Spirit | Keywords$ Trample | SpellDescription$ Enchanted land becomes a legendary 8/12 Spirit creature with trample until end of turn. It's still a land. T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | OptionalDecider$ You | TriggerDescription$ When enchanted land is put into a graveyard, you may return CARDNAME from your graveyard to your hand. SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_realm.jpg Oracle:Enchant land\n{2}: Enchanted land becomes a legendary 8/12 Spirit creature with trample until end of turn. It's still a land.\nWhen enchanted land is put into a graveyard, you may return Genju of the Realm from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/genju_of_the_spires.txt b/res/cardsfolder/g/genju_of_the_spires.txt index 1946c4d2040..5c7d9835a30 100644 --- a/res/cardsfolder/g/genju_of_the_spires.txt +++ b/res/cardsfolder/g/genju_of_the_spires.txt @@ -6,5 +6,6 @@ A:SP$ Attach | Cost$ R | ValidTgts$ Mountain | AILogic$ Pump A:AB$ Animate | Cost$ 2 | Defined$ Enchanted | Power$ 6 | Toughness$ 1 | Types$ Creature,Spirit | Colors$ Red | SpellDescription$ Enchanted Mountain becomes a 6/1 red Spirit creature until end of turn. It's still a land. T:Mode$ ChangesZone | ValidCard$ Card.AttachedBy | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigReturnOwner | OptionalDecider$ You | TriggerDescription$ When enchanted Mountain is put into a graveyard, you may return CARDNAME from your graveyard to your hand. SVar:TrigReturnOwner:AB$ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Graveyard | Destination$ Hand +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/genju_of_the_spires.jpg Oracle:Enchant Mountain\n{2}: Enchanted Mountain becomes a 6/1 red Spirit creature until end of turn. It's still a land.\nWhen enchanted Mountain is put into a graveyard, you may return Genju of the Spires from your graveyard to your hand. \ No newline at end of file diff --git a/res/cardsfolder/g/gigantiform.txt b/res/cardsfolder/g/gigantiform.txt index 376f7bc3080..a079700d9ff 100644 --- a/res/cardsfolder/g/gigantiform.txt +++ b/res/cardsfolder/g/gigantiform.txt @@ -7,5 +7,6 @@ A:SP$ Attach | Cost$ 3 G G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | SetPower$ 8 | SetToughness$ 8 | AddKeyword$ Trample | Description$ Enchanted creature is 8/8 and has trample. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | OptionalDecider$ You | Execute$ KickedGiant | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, you may search your library for a card named CARDNAME, put it onto the battlefield, then shuffle your library. SVar:KickedGiant:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedGigantiform | ChangeNum$ 1 | ShuffleNonMandatory$ True +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/gigantiform.jpg Oracle:Kicker {4}\nEnchant creature\nEnchanted creature is 8/8 and has trample.\nWhen Gigantiform enters the battlefield, if it was kicked, you may search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library. \ No newline at end of file diff --git a/res/cardsfolder/h/hermetic_study.txt b/res/cardsfolder/h/hermetic_study.txt index bf163c53b72..1447b1cdd85 100644 --- a/res/cardsfolder/h/hermetic_study.txt +++ b/res/cardsfolder/h/hermetic_study.txt @@ -5,5 +5,6 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ Damage | Description$ Enchanted creature has "tap: This creature deals 1 damage to target creature or player." SVar:Damage:AB$DealDamage | Cost$ T | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player. +SVar:NonStackingAttachEffect:True SVar:Picture:http://www.wizards.com/global/images/magic/general/hermetic_study.jpg Oracle:Enchant creature\nEnchanted creature has "{T}: This creature deals 1 damage to target creature or player." \ No newline at end of file diff --git a/res/lists/NonStackingKWList.txt b/res/lists/NonStackingKWList.txt index e39507bcaa6..7600550f7e5 100644 --- a/res/lists/NonStackingKWList.txt +++ b/res/lists/NonStackingKWList.txt @@ -1,10 +1,12 @@ All creatures able to block CARDNAME do so. -CARDNAME attacks each turn if able. -CARDNAME can attack as though it didn't have defender. -CARDNAME can't be regenerated. -CARDNAME must be blocked if able. CantBeBlockedByAmount LT2 CantBeBlockedByAmount LT3 +CARDNAME's activated abilities can't be activated. +CARDNAME attacks each turn if able. +CARDNAME can attack as though it didn't have defender. +CARDNAME can block any number of creatures. +CARDNAME can't be regenerated. +CARDNAME must be blocked if able. CARDNAME doesn't untap during your untap step. Changeling Convoke diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index fe6e7687171..1efc1b9df84 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -49,7 +49,8 @@ public final class CardUtil { kw = kw.substring(7); } - return !kw.startsWith("Protection") && !Constant.Keywords.NON_STACKING_LIST.contains(kw); + return !kw.startsWith("Protection") && !kw.startsWith("CantBeBlockedBy") + && !Constant.Keywords.NON_STACKING_LIST.contains(kw); } public static String getShortColorsString(final Iterable colors) { diff --git a/src/main/java/forge/card/ability/ai/AttachAi.java b/src/main/java/forge/card/ability/ai/AttachAi.java index c824a93b979..493f8fdb9e9 100644 --- a/src/main/java/forge/card/ability/ai/AttachAi.java +++ b/src/main/java/forge/card/ability/ai/AttachAi.java @@ -561,7 +561,7 @@ public class AttachAi extends SpellAbilityAi { } Card c = null; - if ((prefList == null) || prefList.isEmpty()) { + if (prefList == null || prefList.isEmpty()) { prefList = new ArrayList(list); } else { c = ComputerUtilCard.getBestAI(prefList); @@ -586,6 +586,20 @@ public class AttachAi extends SpellAbilityAi { }); } + //some auras aren't useful in multiples + if (attachSource.hasSVar("NonStackingAttachEffect")) { + prefList = CardLists.filter(prefList, new Predicate() { + @Override + public boolean apply(final Card c) { + for (Card aura : c.getEnchantedBy()) { + if (aura.getName().equals(attachSource.getName())) + return false; + } + return true; + } + }); + } + c = ComputerUtilCard.getBestAI(prefList); if (c == null) { @@ -835,7 +849,7 @@ public class AttachAi extends SpellAbilityAi { }); } - //some equipments aren't useful in multiples + //some auras/equipments aren't useful in multiples if (attachSource.hasSVar("NonStackingAttachEffect")) { prefList = CardLists.filter(prefList, new Predicate() { @Override @@ -844,6 +858,10 @@ public class AttachAi extends SpellAbilityAi { if (equipment.getName().equals(attachSource.getName())) return false; } + for (Card aura : c.getEnchantedBy()) { + if (aura.getName().equals(attachSource.getName())) + return false; + } return true; } });