diff --git a/forge-core/src/main/java/forge/card/CardType.java b/forge-core/src/main/java/forge/card/CardType.java index a7af692822c..5931a7b7b69 100644 --- a/forge-core/src/main/java/forge/card/CardType.java +++ b/forge-core/src/main/java/forge/card/CardType.java @@ -55,22 +55,23 @@ public final class CardType implements Comparable, CardTypeView { public static final String AllCreatureTypes = "AllCreatureTypes"; public enum CoreType { - Artifact(true), - Conspiracy(false), - Creature(true), - Emblem(false), - Enchantment(true), - Instant(false), - Land(true), - Phenomenon(false), - Plane(false), - Planeswalker(true), - Scheme(false), - Sorcery(false), - Tribal(false), - Vanguard(false); + Artifact(true, "artifacts"), + Conspiracy(false, "conspiracies"), + Creature(true, "creatures"), + Emblem(false, "emblems"), + Enchantment(true, "enchantments"), + Instant(false, "instants"), + Land(true, "lands"), + Phenomenon(false, "phenomenons"), + Plane(false, "planes"), + Planeswalker(true, "planeswalkers"), + Scheme(false, "schemes"), + Sorcery(false, "sorceries"), + Tribal(false, "tribals"), + Vanguard(false, "vanguards"); public final boolean isPermanent; + public final String pluralName; private static Map stringToCoreType = EnumUtils.getEnumMap(CoreType.class); private static final Set allCoreTypeNames = stringToCoreType.keySet(); @@ -82,8 +83,9 @@ public final class CardType implements Comparable, CardTypeView { return stringToCoreType.containsKey(name); } - CoreType(final boolean permanent) { + CoreType(final boolean permanent, final String plural) { isPermanent = permanent; + pluralName = plural; } } @@ -704,6 +706,12 @@ public final class CardType implements Comparable, CardTypeView { public static final BiMap pluralTypes = HashBiMap.create(); // plural -> singular public static final BiMap singularTypes = pluralTypes.inverse(); + + static { + for (CoreType c : CoreType.values()) { + pluralTypes.put(c.name(), c.pluralName); + } + } } public static class Predicates { public static Predicate IS_LAND_TYPE = new Predicate() { diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 6517ade342b..19577d81cef 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -5443,34 +5443,10 @@ public class Card extends GameEntity implements Comparable { if (source.isGreen() && !colorlessDamage) { return true; } - } else if (kw.equals("Protection from monocolored")) { - if (CardUtil.getColors(source).isMonoColor() && !colorlessDamage) { - return true; - } - } else if (kw.equals("Protection from multicolored")) { - if (CardUtil.getColors(source).isMulticolor() && !colorlessDamage) { - return true; - } } else if (kw.equals("Protection from all colors")) { if (!source.isColorless() && !colorlessDamage) { return true; } - } else if (kw.equals("Protection from colorless")) { - if (source.isColorless() || colorlessDamage) { - return true; - } - } else if (kw.equals("Protection from creatures")) { - if (source.isCreature()) { - return true; - } - } else if (kw.equals("Protection from artifacts")) { - if (source.isArtifact()) { - return true; - } - } else if (kw.equals("Protection from enchantments")) { - if (source.isEnchantment()) { - return true; - } } else if (kw.equals("Protection from everything")) { return true; } else if (kw.startsWith("Protection:")) { // uses isValid; Protection:characteristic:desc:exception @@ -5483,12 +5459,12 @@ public class Card extends GameEntity implements Comparable { return true; } } else { - // if colorlessDamage then it does only check damage color.. - if (colorlessDamage) { + // if damageSource then it does only check damage color.. + if (damageSource) { if (characteristic.endsWith("White") || characteristic.endsWith("Blue") || characteristic.endsWith("Black") || characteristic.endsWith("Red") || characteristic.endsWith("Green") || characteristic.endsWith("Colorless") - || characteristic.endsWith("ChosenColor")) { + || characteristic.endsWith("MonoColor") || characteristic.endsWith("MultiColor")) { characteristic += "Source"; } } @@ -5500,10 +5476,6 @@ public class Card extends GameEntity implements Comparable { return true; } } - } else if (kw.equals("Protection from colored spells")) { - if (source.isSpell() && !source.isColorless()) { - return true; - } } else if (kw.startsWith("Protection from opponent of ")) { final String playerName = kw.substring("Protection from opponent of ".length()); if (source.getController().isOpponentOf(playerName)) { @@ -5526,27 +5498,27 @@ public class Card extends GameEntity implements Comparable { if (!kw.startsWith("Protection")) { continue; } - if (kw.equals("Protection from red")) { + if (kw.contains("Protection from red")) { if (!pR) { pR = true; protectKey += "R"; } - } else if (kw.equals("Protection from green")) { + } else if (kw.contains("Protection from green")) { if (!pG) { pG = true; protectKey += "G"; } - } else if (kw.equals("Protection from black")) { + } else if (kw.contains("Protection from black")) { if (!pB) { pB = true; protectKey += "B"; } - } else if (kw.equals("Protection from blue")) { + } else if (kw.contains("Protection from blue")) { if (!pU) { pU = true; protectKey += "U"; } - } else if (kw.equals("Protection from white")) { + } else if (kw.contains("Protection from white")) { if (!pW) { pW = true; protectKey += "W"; @@ -5569,7 +5541,7 @@ public class Card extends GameEntity implements Comparable { protectKey += "everything:"; } else if (kw.equals("Protection from colored spells")) { protectKey += "coloredspells:"; - } else if (kw.startsWith("Protection")) { + } else { protectKey += "generic"; } } diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index e21fa044393..e2e5be9066f 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -223,6 +223,16 @@ public final class StaticAbilityContinuous { return true; } + if (input.contains("AllColors") || input.contains("allColors")) { + for (byte color : MagicColor.WUBRG) { + final String colorWord = MagicColor.toLongString(color); + String y = input.replaceAll("AllColors", StringUtils.capitalize(colorWord)); + y = y.replaceAll("allColors", colorWord); + newKeywords.add(y); + } + return true; + } + // two variants for Red vs. red in keyword if (input.contains("ColorsYouCtrl") || input.contains("colorsYouCtrl")) { for (byte color : colorsYouCtrl) { @@ -247,6 +257,7 @@ public final class StaticAbilityContinuous { public String apply(String input) { if (hostCard.hasChosenColor()) { input = input.replaceAll("ChosenColor", StringUtils.capitalize(hostCard.getChosenColor())); + input = input.replaceAll("chosenColor", hostCard.getChosenColor().toLowerCase()); } if (hostCard.hasChosenType()) { input = input.replaceAll("ChosenType", hostCard.getChosenType()); diff --git a/forge-gui/res/cardsfolder/b/basris_lieutenant.txt b/forge-gui/res/cardsfolder/b/basris_lieutenant.txt index 5699bb655e2..5a0f8a1a2ca 100755 --- a/forge-gui/res/cardsfolder/b/basris_lieutenant.txt +++ b/forge-gui/res/cardsfolder/b/basris_lieutenant.txt @@ -3,7 +3,7 @@ ManaCost:3 W Types:Creature Human Knight PT:3/4 K:Vigilance -K:Protection from multicolored +K:Protection:Card.MultiColor:Protection from multicolored T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature you control. SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self+counters_GE1_P1P1 | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ Whenever CARDNAME or another creature you control dies, if it had a +1/+1 counter on it, create a 2/2 white Knight creature token with vigilance. diff --git a/forge-gui/res/cardsfolder/c/cho_mannos_blessing.txt b/forge-gui/res/cardsfolder/c/cho_mannos_blessing.txt index 870d2ff486c..01b989f86a3 100644 --- a/forge-gui/res/cardsfolder/c/cho_mannos_blessing.txt +++ b/forge-gui/res/cardsfolder/c/cho_mannos_blessing.txt @@ -6,7 +6,6 @@ K:Enchant creature K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. A:SP$ Attach | Cost$ W W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. -SVar:Picture:http://www.wizards.com/global/images/magic/general/cho_mannos_blessing.jpg +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. SVar:ChosenProtection:True Oracle:Flash\nEnchant creature\nAs Cho-Manno's Blessing enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Cho-Manno's Blessing. diff --git a/forge-gui/res/cardsfolder/d/devoted_caretaker.txt b/forge-gui/res/cardsfolder/d/devoted_caretaker.txt index d1b965f5c09..62ddae82280 100644 --- a/forge-gui/res/cardsfolder/d/devoted_caretaker.txt +++ b/forge-gui/res/cardsfolder/d/devoted_caretaker.txt @@ -5,5 +5,4 @@ PT:1/2 A:AB$ Pump | Cost$ W T | KW$ Protection:Spell.Instant,Spell.Sorcery:Protection from instant spells and from sorcery spells | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent you control | SpellDescription$ Target permanent you control gains protection from instant spells and from sorcery spells until end of turn. AI:RemoveDeck:All SVar:NonCombatPriority:3 -SVar:Picture:http://www.wizards.com/global/images/magic/general/devoted_caretaker.jpg Oracle:{W}, {T}: Target permanent you control gains protection from instant spells and from sorcery spells until end of turn. diff --git a/forge-gui/res/cardsfolder/e/emrakul_the_aeons_torn.txt b/forge-gui/res/cardsfolder/e/emrakul_the_aeons_torn.txt index 7d7db2f66ca..351349a758d 100644 --- a/forge-gui/res/cardsfolder/e/emrakul_the_aeons_torn.txt +++ b/forge-gui/res/cardsfolder/e/emrakul_the_aeons_torn.txt @@ -4,11 +4,10 @@ Types:Legendary Creature Eldrazi PT:15/15 K:CARDNAME can't be countered. K:Flying -K:Protection from colored spells +K:Protection:Spell.nonColorless:Protection from colored spells K:Annihilator:6 T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.Self | Execute$ TrigShuffle | TriggerDescription$ When CARDNAME is put into a graveyard from anywhere, its owner shuffles their graveyard into their library. SVar:TrigShuffle:DB$ ChangeZoneAll | Defined$ TriggeredCardOwner | ChangeType$ Card | Origin$ Graveyard | Destination$ Library | Shuffle$ True T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigAddTurn | TriggerDescription$ When you cast CARDNAME, take an extra turn after this one. SVar:TrigAddTurn:DB$ AddTurn | Defined$ You | NumTurns$ 1 -SVar:Picture:http://www.wizards.com/global/images/magic/general/emrakul_the_aeons_torn.jpg Oracle:Emrakul, the Aeons Torn can't be countered.\nWhen you cast Emrakul, take an extra turn after this one.\nFlying, protection from colored spells, annihilator 6\nWhen Emrakul is put into a graveyard from anywhere, its owner shuffles their graveyard into their library. diff --git a/forge-gui/res/cardsfolder/e/enemy_of_the_guildpact.txt b/forge-gui/res/cardsfolder/e/enemy_of_the_guildpact.txt index b5953db7a5f..882eb2d5754 100644 --- a/forge-gui/res/cardsfolder/e/enemy_of_the_guildpact.txt +++ b/forge-gui/res/cardsfolder/e/enemy_of_the_guildpact.txt @@ -2,6 +2,5 @@ Name:Enemy of the Guildpact ManaCost:4 B Types:Creature Spirit PT:4/2 -K:Protection from multicolored -SVar:Picture:http://www.wizards.com/global/images/magic/general/enemy_of_the_guildpact.jpg +K:Protection:Card.MultiColor:Protection from multicolored Oracle:Protection from multicolored diff --git a/forge-gui/res/cardsfolder/f/flickering_ward.txt b/forge-gui/res/cardsfolder/f/flickering_ward.txt index 18b31270e08..ad7534e2a70 100644 --- a/forge-gui/res/cardsfolder/f/flickering_ward.txt +++ b/forge-gui/res/cardsfolder/f/flickering_ward.txt @@ -5,9 +5,8 @@ K:Enchant creature K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck A:SP$ Attach | Cost$ W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. A:AB$ ChangeZone | Cost$ W | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand. AI:RemoveDeck:All SVar:ChosenProtection:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/flickering_ward.jpg Oracle:Enchant creature\nAs Flickering Ward enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Flickering Ward.\n{W}: Return Flickering Ward to its owner's hand. diff --git a/forge-gui/res/cardsfolder/f/floating_shield.txt b/forge-gui/res/cardsfolder/f/floating_shield.txt index 4c62284e025..7bcefb8f78a 100644 --- a/forge-gui/res/cardsfolder/f/floating_shield.txt +++ b/forge-gui/res/cardsfolder/f/floating_shield.txt @@ -5,9 +5,8 @@ K:Enchant creature K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. A:AB$ Protection | Cost$ Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | Gains$ ChosenColor | SpellDescription$ Target creature gains protection from the chosen color until end of turn. AI:RemoveDeck:All SVar:ChosenProtection:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/floating_shield.jpg Oracle:Enchant creature\nAs Floating Shield enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Floating Shield.\nSacrifice Floating Shield: Target creature gains protection from the chosen color until end of turn. diff --git a/forge-gui/res/cardsfolder/g/guardian_of_the_guildpact.txt b/forge-gui/res/cardsfolder/g/guardian_of_the_guildpact.txt index 9f7f76340db..079a6f4c64b 100644 --- a/forge-gui/res/cardsfolder/g/guardian_of_the_guildpact.txt +++ b/forge-gui/res/cardsfolder/g/guardian_of_the_guildpact.txt @@ -2,6 +2,5 @@ Name:Guardian of the Guildpact ManaCost:3 W Types:Creature Spirit PT:2/3 -K:Protection from monocolored -SVar:Picture:http://www.wizards.com/global/images/magic/general/guardian_of_the_guildpact.jpg +K:Protection:Card.MonoColor:Protection from monocolored Oracle:Protection from monocolored diff --git a/forge-gui/res/cardsfolder/g/guildscorn_ward.txt b/forge-gui/res/cardsfolder/g/guildscorn_ward.txt index f35e9bdbc2e..7130b69615a 100644 --- a/forge-gui/res/cardsfolder/g/guildscorn_ward.txt +++ b/forge-gui/res/cardsfolder/g/guildscorn_ward.txt @@ -3,6 +3,5 @@ ManaCost:W Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection from multicolored | Description$ Enchanted creature has protection from multicolored. -SVar:Picture:http://www.wizards.com/global/images/magic/general/guildscorn_ward.jpg +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.MultiColor:Protection from multicolored | Description$ Enchanted creature has protection from multicolored. Oracle:Enchant creature\nEnchanted creature has protection from multicolored. diff --git a/forge-gui/res/cardsfolder/k/kitsune_riftwalker.txt b/forge-gui/res/cardsfolder/k/kitsune_riftwalker.txt index f28cb581f94..4f636c0f3d6 100644 --- a/forge-gui/res/cardsfolder/k/kitsune_riftwalker.txt +++ b/forge-gui/res/cardsfolder/k/kitsune_riftwalker.txt @@ -2,6 +2,6 @@ Name:Kitsune Riftwalker ManaCost:1 W W Types:Creature Fox Wizard PT:2/1 -K:Protection:Spirit,Arcane:Protection from Spirits and from Arcane -SVar:Picture:http://www.wizards.com/global/images/magic/general/kitsune_riftwalker.jpg +K:Protection from Spirits +K:Protection from Arcane Oracle:Protection from Spirits and from Arcane diff --git a/forge-gui/res/cardsfolder/o/order_of_the_stars.txt b/forge-gui/res/cardsfolder/o/order_of_the_stars.txt index 1f660239993..e92970d97e4 100644 --- a/forge-gui/res/cardsfolder/o/order_of_the_stars.txt +++ b/forge-gui/res/cardsfolder/o/order_of_the_stars.txt @@ -5,6 +5,5 @@ PT:0/1 K:Defender K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor | Description$ CARDNAME has protection from the chosen color. -SVar:Picture:http://www.wizards.com/global/images/magic/general/order_of_the_stars.jpg +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor | Description$ CARDNAME has protection from the chosen color. Oracle:Defender (This creature can't attack.)\nAs Order of the Stars enters the battlefield, choose a color.\nOrder of the Stars has protection from the chosen color. diff --git a/forge-gui/res/cardsfolder/p/pentarch_ward.txt b/forge-gui/res/cardsfolder/p/pentarch_ward.txt index a5d0a3d3d89..a2008cd40a6 100644 --- a/forge-gui/res/cardsfolder/p/pentarch_ward.txt +++ b/forge-gui/res/cardsfolder/p/pentarch_ward.txt @@ -7,7 +7,6 @@ SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1 A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. -SVar:Picture:http://www.wizards.com/global/images/magic/general/pentarch_ward.jpg +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. SVar:ChosenProtection:True Oracle:Enchant creature\nAs Pentarch Ward enters the battlefield, choose a color.\nWhen Pentarch Ward enters the battlefield, draw a card.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Pentarch Ward. diff --git a/forge-gui/res/cardsfolder/s/sanctuary_blade.txt b/forge-gui/res/cardsfolder/s/sanctuary_blade.txt index 064157f8b3d..c0d7546ca8b 100644 --- a/forge-gui/res/cardsfolder/s/sanctuary_blade.txt +++ b/forge-gui/res/cardsfolder/s/sanctuary_blade.txt @@ -3,6 +3,6 @@ ManaCost:2 Types:Artifact Equipment R:Event$ Attached | ValidCard$ Card.Self | ValidTarget$ Creature | ReplaceWith$ ChooseColor | ActiveZones$ Battlefield | Description$ As CARDNAME becomes attached to a creature, choose a color. SVar:ChooseColor:DB$ ChooseColor | Defined$ You -S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor | Description$ Equipped creature gets +2/+0 and has protection from the last chosen color. +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor | Description$ Equipped creature gets +2/+0 and has protection from the last chosen color. K:Equip:3 Oracle:As Sanctuary Blade becomes attached to a creature, choose a color.\nEquipped creature gets +2/+0 and has protection from the last chosen color.\nEquip {3} diff --git a/forge-gui/res/cardsfolder/s/soldier_of_the_pantheon.txt b/forge-gui/res/cardsfolder/s/soldier_of_the_pantheon.txt index 94bb32dcb03..a17b8f24745 100644 --- a/forge-gui/res/cardsfolder/s/soldier_of_the_pantheon.txt +++ b/forge-gui/res/cardsfolder/s/soldier_of_the_pantheon.txt @@ -2,8 +2,7 @@ Name:Soldier of the Pantheon ManaCost:W Types:Creature Human Soldier PT:2/1 -K:Protection from multicolored +K:Protection:Card.MultiColor:Protection from multicolored T:Mode$ SpellCast | ValidCard$ Card.MultiColor | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever an opponent casts a multicolored spell, you gain 1 life. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 -SVar:Picture:http://www.wizards.com/global/images/magic/general/soldier_of_the_pantheon.jpg Oracle:Protection from multicolored\nWhenever an opponent casts a multicolored spell, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/s/stonecoil_serpent.txt b/forge-gui/res/cardsfolder/s/stonecoil_serpent.txt index 30f3efa6ea5..df91d7f9920 100644 --- a/forge-gui/res/cardsfolder/s/stonecoil_serpent.txt +++ b/forge-gui/res/cardsfolder/s/stonecoil_serpent.txt @@ -4,7 +4,7 @@ Types:Artifact Creature Snake PT:0/0 K:Reach K:Trample -K:Protection from multicolored +K:Protection:Card.MultiColor:Protection from multicolored K:etbCounter:P1P1:X SVar:X:Count$xPaid DeckHas:Ability$Counters diff --git a/forge-gui/res/cardsfolder/upcoming/benevolent_blessing.txt b/forge-gui/res/cardsfolder/upcoming/benevolent_blessing.txt index c6bea12fe7a..2df041866fb 100644 --- a/forge-gui/res/cardsfolder/upcoming/benevolent_blessing.txt +++ b/forge-gui/res/cardsfolder/upcoming/benevolent_blessing.txt @@ -6,5 +6,5 @@ K:Enchant creature K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Aura.YouCtrl,Equipment.YouCtrl | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Aura.YouCtrl,Equipment.YouCtrl | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it. Oracle:Flash\nEnchant creature\nAs Benevolent Blessing enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Auras and Equipment you control that are already attached to it. diff --git a/forge-gui/res/cardsfolder/v/voice_of_all.txt b/forge-gui/res/cardsfolder/v/voice_of_all.txt index e889aba165c..ba3745fa394 100644 --- a/forge-gui/res/cardsfolder/v/voice_of_all.txt +++ b/forge-gui/res/cardsfolder/v/voice_of_all.txt @@ -5,6 +5,5 @@ PT:2/2 K:Flying K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor | Description$ CARDNAME has protection from the chosen color. -SVar:Picture:http://www.wizards.com/global/images/magic/general/voice_of_all.jpg +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor | Description$ CARDNAME has protection from the chosen color. Oracle:Flying\nAs Voice of All enters the battlefield, choose a color.\nVoice of All has protection from the chosen color. diff --git a/forge-gui/res/cardsfolder/w/ward_of_lights.txt b/forge-gui/res/cardsfolder/w/ward_of_lights.txt index b894a18e82d..7b82baefa2b 100644 --- a/forge-gui/res/cardsfolder/w/ward_of_lights.txt +++ b/forge-gui/res/cardsfolder/w/ward_of_lights.txt @@ -6,8 +6,7 @@ K:Enchant creature K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck A:SP$ Attach | Cost$ W W | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor:Card.CardUID_HostCardUID | Description$ Enchanted creature has protection from the chosen color. This effect doesn't remove CARDNAME. AI:RemoveDeck:All SVar:ChosenProtection:True -SVar:Picture:http://www.wizards.com/global/images/magic/general/ward_of_lights.jpg Oracle:You may cast Ward of Lights as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.\nEnchant creature\nAs Ward of Lights enters the battlefield, choose a color.\nEnchanted creature has protection from the chosen color. This effect doesn't remove Ward of Lights. diff --git a/forge-gui/res/cardsfolder/w/ward_sliver.txt b/forge-gui/res/cardsfolder/w/ward_sliver.txt index 92326b64fb9..247823fe9a5 100644 --- a/forge-gui/res/cardsfolder/w/ward_sliver.txt +++ b/forge-gui/res/cardsfolder/w/ward_sliver.txt @@ -4,6 +4,5 @@ Types:Creature Sliver PT:2/2 K:ETBReplacement:Other:ChooseColor SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. -S:Mode$ Continuous | Affected$ Sliver | AddKeyword$ Protection:Card.ChosenColor:Protection from ChosenColor | Description$ All Slivers have protection from the chosen color. -SVar:Picture:http://www.wizards.com/global/images/magic/general/ward_sliver.jpg +S:Mode$ Continuous | Affected$ Sliver | AddKeyword$ Protection:Card.ChosenColor:Protection from chosenColor | Description$ All Slivers have protection from the chosen color. Oracle:As Ward Sliver enters the battlefield, choose a color.\nAll Slivers have protection from the chosen color.