diff --git a/.gitattributes b/.gitattributes index 5ae91021b10..24ca3b924d0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6888,6 +6888,7 @@ res/cardsfolder/s/sarcomite_myr.txt svneol=native#text/plain res/cardsfolder/s/sarkhan_the_mad.txt svneol=native#text/plain res/cardsfolder/s/sarkhan_vol.txt svneol=native#text/plain res/cardsfolder/s/sarpadian_empires_vol_vii.txt svneol=native#text/plain +res/cardsfolder/s/savaen_elves.txt -text res/cardsfolder/s/savage_conception.txt svneol=native#text/plain res/cardsfolder/s/savage_firecat.txt svneol=native#text/plain res/cardsfolder/s/savage_gorilla.txt svneol=native#text/plain diff --git a/res/cardsfolder/c/commando_raid.txt b/res/cardsfolder/c/commando_raid.txt index d8bd89c29cb..a31fe940c4e 100644 --- a/res/cardsfolder/c/commando_raid.txt +++ b/res/cardsfolder/c/commando_raid.txt @@ -8,4 +8,6 @@ SVar:Damage:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature.YouDontCtrl | TgtProm SVar:CommandoRaidX:Count$CardPower SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/commando_raid.jpg +SetInfo:ONS|Uncommon|http://magiccards.info/scans/en/on/195.jpg +Oracle:Until end of turn, target creature you control gains "When this creature deals combat damage to a player, you may have it deal damage equal to its power to target creature that player controls." End \ No newline at end of file diff --git a/res/cardsfolder/d/defensive_maneuvers.txt b/res/cardsfolder/d/defensive_maneuvers.txt index a9c62795909..cf9937408ea 100644 --- a/res/cardsfolder/d/defensive_maneuvers.txt +++ b/res/cardsfolder/d/defensive_maneuvers.txt @@ -6,4 +6,6 @@ A:SP$ ChooseType | Cost$ 3 W | Defined$ You | Type$ Creature | AILogic$ MostProm SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.ChosenType | NumDef$ 4 SVar:Rarity:Common SVar:Picture:http://www.wizards.com/global/images/magic/general/defensive_maneuvers.jpg +SetInfo:ONS|Common|http://magiccards.info/scans/en/on/23.jpg +Oracle:Creatures of the creature type of your choice get +0/+4 until end of turn. End \ No newline at end of file diff --git a/res/cardsfolder/l/liliana_of_the_veil.txt b/res/cardsfolder/l/liliana_of_the_veil.txt index 554cb1abda9..15cee04ccec 100644 --- a/res/cardsfolder/l/liliana_of_the_veil.txt +++ b/res/cardsfolder/l/liliana_of_the_veil.txt @@ -1,14 +1,16 @@ -Name:Liliana of the Veil -ManaCost:1 B B -Types:Planeswalker Liliana -Text:no text -Loyalty:3 -A:AB$ Discard | Cost$ AddCounter<1/LOYALTY> | NumCards$ 1 | Mode$ TgtChoose | Defined$ Each | Planeswalker$ True | SpellDescription$ Each player discards a card. -A:AB$ Sacrifice | Cost$ SubCounter<2/LOYALTY> | ValidTgts$ Player | SacValid$ Creature | SacMessage$ Creature | Planeswalker$ True | SpellDescription$ Target player sacrifices a creature. -A:AB$ TwoPiles | Cost$ SubCounter<6/LOYALTY> | ValidTgts$ Player | TgtPrompt$ Select target player | Separator$ You | ChosenPile$ DBSacAll | ValidCards$ Permanent | Planeswalker$ True | Ultimate$ True | SpellDescription$ Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of his or her choice. -SVar:DBSacAll:DB$ SacrificeAll | ValidCards$ Permanent | Defined$ Remembered | SubAbility$ Cleanup -SVar:Cleanup:DB$ Cleanup | ClearRemembered$ True -SVar:RemAIDeck:True -SVar:Rarity:Mythic -SVar:Picture:http://www.wizards.com/global/images/magic/general/liliana_of_the_veil.jpg +Name:Liliana of the Veil +ManaCost:1 B B +Types:Planeswalker Liliana +Text:no text +Loyalty:3 +A:AB$ Discard | Cost$ AddCounter<1/LOYALTY> | NumCards$ 1 | Mode$ TgtChoose | Defined$ Each | Planeswalker$ True | SpellDescription$ Each player discards a card. +A:AB$ Sacrifice | Cost$ SubCounter<2/LOYALTY> | ValidTgts$ Player | SacValid$ Creature | SacMessage$ Creature | Planeswalker$ True | SpellDescription$ Target player sacrifices a creature. +A:AB$ TwoPiles | Cost$ SubCounter<6/LOYALTY> | ValidTgts$ Player | TgtPrompt$ Select target player | Separator$ You | ChosenPile$ DBSacAll | ValidCards$ Permanent | Planeswalker$ True | Ultimate$ True | SpellDescription$ Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of his or her choice. +SVar:DBSacAll:DB$ SacrificeAll | ValidCards$ Permanent | Defined$ Remembered | SubAbility$ Cleanup +SVar:Cleanup:DB$ Cleanup | ClearRemembered$ True +SVar:RemAIDeck:True +SVar:Rarity:Mythic +SVar:Picture:http://www.wizards.com/global/images/magic/general/liliana_of_the_veil.jpg +SetInfo:ISD|Mythic|http://magiccards.info/scans/en/isd/105.jpg +Oracle:[+1] Each player discards a card.\n[-2] Target player sacrifices a creature.\n[-6] Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of his or her choice. End \ No newline at end of file diff --git a/res/cardsfolder/s/savaen_elves.txt b/res/cardsfolder/s/savaen_elves.txt new file mode 100644 index 00000000000..f96afef7fa5 --- /dev/null +++ b/res/cardsfolder/s/savaen_elves.txt @@ -0,0 +1,11 @@ +Name:Savaen Elves +ManaCost:G +Types:Creature Elf +Text:no text +PT:1/1 +A:AB$ Destroy | Cost$ G G T | ValidTgts$ Aura.AttachedTo Land | TgtPrompt$ Select target Aura attached to a land | SpellDescription$ Destroy target Aura attached to a land. +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/savaen_elves.jpg +SetInfo:DRK|Common|http://magiccards.info/scans/en/dk/47.jpg +Oracle:{G}{G}, {T}: Destroy target Aura attached to a land. +End \ No newline at end of file diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index 7fc670a10fe..6b2f36e8582 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -6442,10 +6442,15 @@ public class Card extends GameEntity implements Comparable { if (!equippedBy.contains(source) && !getEnchantedBy().contains(source)) { return false; } - } else if (property.startsWith("Attached")) { + } else if (property.equals("Attached")) { if (!equipping.contains(source) && !source.equals(enchanting)) { return false; } + } else if (property.startsWith("AttachedTo")) { + String restriction = property.split("AttachedTo ")[1]; + if (enchanting == null || !enchanting.isValid(restriction, sourceController, source)) { + return false; + } } else if (property.startsWith("EnchantedBy")) { if (!getEnchantedBy().contains(source)) { return false;