diff --git a/.gitattributes b/.gitattributes index fd6d273b9e5..e759a027193 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6645,6 +6645,7 @@ res/cardsfolder/m/mirrodins_core.txt svneol=native#text/plain res/cardsfolder/m/mirror_entity.txt svneol=native#text/plain res/cardsfolder/m/mirror_entity_avatar.txt -text res/cardsfolder/m/mirror_gallery.txt svneol=native#text/plain +res/cardsfolder/m/mirror_golem.txt -text res/cardsfolder/m/mirror_mad_phantasm.txt -text res/cardsfolder/m/mirror_of_fate.txt -text res/cardsfolder/m/mirror_sheen.txt -text @@ -7814,6 +7815,7 @@ res/cardsfolder/p/platinum_angel_avatar.txt -text res/cardsfolder/p/platinum_emperion.txt svneol=native#text/plain res/cardsfolder/p/plaxcaster_frogling.txt -text res/cardsfolder/p/plaxmanta.txt -text +res/cardsfolder/p/pledge_of_loyalty.txt -text res/cardsfolder/p/plots_that_span_centuries.txt -text res/cardsfolder/p/plover_knights.txt svneol=native#text/plain res/cardsfolder/p/plow_through_reito.txt -text diff --git a/res/cardsfolder/m/mirror_golem.txt b/res/cardsfolder/m/mirror_golem.txt new file mode 100644 index 00000000000..07b5af7d72b --- /dev/null +++ b/res/cardsfolder/m/mirror_golem.txt @@ -0,0 +1,27 @@ +Name:Mirror Golem +ManaCost:6 +Types:Artifact Creature Golem +PT:3/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ Imprint - When CARDNAME enters the battlefield, you may exile target card from a graveyard. +SVar:TrigExile:AB$ ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Card | Imprint$ True +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection from creatures | CheckSVar$ CheckCreature | SVarCompare$ GE1 | Description$ CARDNAME has protection from each of the exiled card's card types. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal are card types.) +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Land:Protection from lands | CheckSVar$ CheckLand | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection from enchantments | CheckSVar$ CheckEnchantment | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection from artifacts | CheckSVar$ CheckArtifact | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Instant:Protection from instants | CheckSVar$ CheckInstant | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Sorcery:Protection from sorceries | CheckSVar$ CheckSorcery | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Planeswalker:Protection from planeswalkers | CheckSVar$ CheckPlaneswalker | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Tribal:Protection from tribals | CheckSVar$ CheckTribal | SVarCompare$ GE1 +SVar:CheckCreature:Imprinted$Valid Creature +SVar:CheckArtifact:Imprinted$Valid Artifact +SVar:CheckEnchantment:Imprinted$Valid Enchantment +SVar:CheckInstant:Imprinted$Valid Instant +SVar:CheckSorcery:Imprinted$Valid Sorcery +SVar:CheckPlaneswalker:Imprinted$Valid Planeswalker +SVar:CheckTribal:Imprinted$Valid Tribal +SVar:CheckLand:Imprinted$Valid Land +SVar:Picture:http://www.wizards.com/global/images/magic/general/mirror_golem.jpg +SetInfo:MRD|Uncommon|http://magiccards.info/scans/en/mi/208.jpg +Oracle:Imprint - When Mirror Golem enters the battlefield, you may exile target card from a graveyard.\nMirror Golem has protection from each of the exiled card's card types. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal are card types.) diff --git a/res/cardsfolder/p/pledge_of_loyalty.txt b/res/cardsfolder/p/pledge_of_loyalty.txt new file mode 100644 index 00000000000..a39ecbaabab --- /dev/null +++ b/res/cardsfolder/p/pledge_of_loyalty.txt @@ -0,0 +1,18 @@ +Name:Pledge of Loyalty +ManaCost:1 W +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Pump +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddKeyword$ Protection from white | CheckSVar$ WHITE | SVarCompare$ GE1 | Description$ Enchanted creature has protection from the colors of permanents you control. This effect doesn't remove CARDNAME. +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddKeyword$ Protection from blue | CheckSVar$ BLUE | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddKeyword$ Protection from black | CheckSVar$ BLACK | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddKeyword$ Protection from red | CheckSVar$ RED | SVarCompare$ GE1 +S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddKeyword$ Protection from green | CheckSVar$ GREEN | SVarCompare$ GE1 +SVar:WHITE:Count$Valid Permanent.White+YouCtrl +SVar:BLUE:Count$Valid Permanent.Blue+YouCtrl +SVar:BLACK:Count$Valid Permanent.Black+YouCtrl +SVar:RED:Count$Valid Permanent.Red+YouCtrl +SVar:GREEN:Count$Valid Permanent.Green+YouCtrl +SVar:Picture:http://www.wizards.com/global/images/magic/general/pledge_of_loyalty.jpg +SetInfo:INV|Uncommon|http://magiccards.info/scans/en/in/24.jpg +Oracle:Enchant creature\nEnchanted creature has protection from the colors of permanents you control. This effect doesn't remove Pledge of Loyalty. diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index f2afd3517ce..656ced90669 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -8700,23 +8700,28 @@ public class Card extends GameEntity implements Comparable { continue; } if (kw.equals("Protection from white")) { - if (source.isWhite() && !source.getName().equals("White Ward")) { + if (source.isWhite() && !source.getName().equals("White Ward") + && !source.getName().contains("Pledge of Loyalty")) { return true; } } else if (kw.equals("Protection from blue")) { - if (source.isBlue() && !source.getName().equals("Blue Ward")) { + if (source.isBlue() && !source.getName().equals("Blue Ward") + && !source.getName().contains("Pledge of Loyalty")) { return true; } } else if (kw.equals("Protection from black")) { - if (source.isBlack() && !source.getName().equals("Black Ward")) { + if (source.isBlack() && !source.getName().equals("Black Ward") + && !source.getName().contains("Pledge of Loyalty")) { return true; } } else if (kw.equals("Protection from red")) { - if (source.isRed() && !source.getName().equals("Red Ward")) { + if (source.isRed() && !source.getName().equals("Red Ward") + && !source.getName().contains("Pledge of Loyalty")) { return true; } } else if (kw.equals("Protection from green")) { - if (source.isGreen() && !source.getName().equals("Green Ward")) { + if (source.isGreen() && !source.getName().equals("Green Ward") + && !source.getName().contains("Pledge of Loyalty")) { return true; } } else if (kw.equals("Protection from creatures")) { @@ -8764,7 +8769,7 @@ public class Card extends GameEntity implements Comparable { if (source.isValid(characteristics, this.getController(), this) && !source.getName().contains("Flickering Ward") && !source.getName().contains("Pentarch Ward") && !source.getName().contains("Cho-Manno's Blessing") && !source.getName().contains("Floating Shield") - && !source.getName().contains("Ward of Light")) { + && !source.getName().contains("Ward of Lights")) { return true; } }