Protection: cleanup some cases for Card

This commit is contained in:
Hans Mackowiak
2020-11-12 09:49:03 +01:00
parent e73111e63a
commit a62fc27a21
22 changed files with 62 additions and 85 deletions

View File

@@ -55,22 +55,23 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
public static final String AllCreatureTypes = "AllCreatureTypes"; public static final String AllCreatureTypes = "AllCreatureTypes";
public enum CoreType { public enum CoreType {
Artifact(true), Artifact(true, "artifacts"),
Conspiracy(false), Conspiracy(false, "conspiracies"),
Creature(true), Creature(true, "creatures"),
Emblem(false), Emblem(false, "emblems"),
Enchantment(true), Enchantment(true, "enchantments"),
Instant(false), Instant(false, "instants"),
Land(true), Land(true, "lands"),
Phenomenon(false), Phenomenon(false, "phenomenons"),
Plane(false), Plane(false, "planes"),
Planeswalker(true), Planeswalker(true, "planeswalkers"),
Scheme(false), Scheme(false, "schemes"),
Sorcery(false), Sorcery(false, "sorceries"),
Tribal(false), Tribal(false, "tribals"),
Vanguard(false); Vanguard(false, "vanguards");
public final boolean isPermanent; public final boolean isPermanent;
public final String pluralName;
private static Map<String, CoreType> stringToCoreType = EnumUtils.getEnumMap(CoreType.class); private static Map<String, CoreType> stringToCoreType = EnumUtils.getEnumMap(CoreType.class);
private static final Set<String> allCoreTypeNames = stringToCoreType.keySet(); private static final Set<String> allCoreTypeNames = stringToCoreType.keySet();
@@ -82,8 +83,9 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
return stringToCoreType.containsKey(name); return stringToCoreType.containsKey(name);
} }
CoreType(final boolean permanent) { CoreType(final boolean permanent, final String plural) {
isPermanent = permanent; isPermanent = permanent;
pluralName = plural;
} }
} }
@@ -704,6 +706,12 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
public static final BiMap<String,String> pluralTypes = HashBiMap.create(); public static final BiMap<String,String> pluralTypes = HashBiMap.create();
// plural -> singular // plural -> singular
public static final BiMap<String,String> singularTypes = pluralTypes.inverse(); public static final BiMap<String,String> singularTypes = pluralTypes.inverse();
static {
for (CoreType c : CoreType.values()) {
pluralTypes.put(c.name(), c.pluralName);
}
}
} }
public static class Predicates { public static class Predicates {
public static Predicate<String> IS_LAND_TYPE = new Predicate<String>() { public static Predicate<String> IS_LAND_TYPE = new Predicate<String>() {

View File

@@ -5443,34 +5443,10 @@ public class Card extends GameEntity implements Comparable<Card> {
if (source.isGreen() && !colorlessDamage) { if (source.isGreen() && !colorlessDamage) {
return true; 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")) { } else if (kw.equals("Protection from all colors")) {
if (!source.isColorless() && !colorlessDamage) { if (!source.isColorless() && !colorlessDamage) {
return true; 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")) { } else if (kw.equals("Protection from everything")) {
return true; return true;
} else if (kw.startsWith("Protection:")) { // uses isValid; Protection:characteristic:desc:exception } else if (kw.startsWith("Protection:")) { // uses isValid; Protection:characteristic:desc:exception
@@ -5483,12 +5459,12 @@ public class Card extends GameEntity implements Comparable<Card> {
return true; return true;
} }
} else { } else {
// if colorlessDamage then it does only check damage color.. // if damageSource then it does only check damage color..
if (colorlessDamage) { if (damageSource) {
if (characteristic.endsWith("White") || characteristic.endsWith("Blue") if (characteristic.endsWith("White") || characteristic.endsWith("Blue")
|| characteristic.endsWith("Black") || characteristic.endsWith("Red") || characteristic.endsWith("Black") || characteristic.endsWith("Red")
|| characteristic.endsWith("Green") || characteristic.endsWith("Colorless") || characteristic.endsWith("Green") || characteristic.endsWith("Colorless")
|| characteristic.endsWith("ChosenColor")) { || characteristic.endsWith("MonoColor") || characteristic.endsWith("MultiColor")) {
characteristic += "Source"; characteristic += "Source";
} }
} }
@@ -5500,10 +5476,6 @@ public class Card extends GameEntity implements Comparable<Card> {
return true; 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 ")) { } else if (kw.startsWith("Protection from opponent of ")) {
final String playerName = kw.substring("Protection from opponent of ".length()); final String playerName = kw.substring("Protection from opponent of ".length());
if (source.getController().isOpponentOf(playerName)) { if (source.getController().isOpponentOf(playerName)) {
@@ -5526,27 +5498,27 @@ public class Card extends GameEntity implements Comparable<Card> {
if (!kw.startsWith("Protection")) { if (!kw.startsWith("Protection")) {
continue; continue;
} }
if (kw.equals("Protection from red")) { if (kw.contains("Protection from red")) {
if (!pR) { if (!pR) {
pR = true; pR = true;
protectKey += "R"; protectKey += "R";
} }
} else if (kw.equals("Protection from green")) { } else if (kw.contains("Protection from green")) {
if (!pG) { if (!pG) {
pG = true; pG = true;
protectKey += "G"; protectKey += "G";
} }
} else if (kw.equals("Protection from black")) { } else if (kw.contains("Protection from black")) {
if (!pB) { if (!pB) {
pB = true; pB = true;
protectKey += "B"; protectKey += "B";
} }
} else if (kw.equals("Protection from blue")) { } else if (kw.contains("Protection from blue")) {
if (!pU) { if (!pU) {
pU = true; pU = true;
protectKey += "U"; protectKey += "U";
} }
} else if (kw.equals("Protection from white")) { } else if (kw.contains("Protection from white")) {
if (!pW) { if (!pW) {
pW = true; pW = true;
protectKey += "W"; protectKey += "W";
@@ -5569,7 +5541,7 @@ public class Card extends GameEntity implements Comparable<Card> {
protectKey += "everything:"; protectKey += "everything:";
} else if (kw.equals("Protection from colored spells")) { } else if (kw.equals("Protection from colored spells")) {
protectKey += "coloredspells:"; protectKey += "coloredspells:";
} else if (kw.startsWith("Protection")) { } else {
protectKey += "generic"; protectKey += "generic";
} }
} }

View File

@@ -223,6 +223,16 @@ public final class StaticAbilityContinuous {
return true; 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 // two variants for Red vs. red in keyword
if (input.contains("ColorsYouCtrl") || input.contains("colorsYouCtrl")) { if (input.contains("ColorsYouCtrl") || input.contains("colorsYouCtrl")) {
for (byte color : colorsYouCtrl) { for (byte color : colorsYouCtrl) {
@@ -247,6 +257,7 @@ public final class StaticAbilityContinuous {
public String apply(String input) { public String apply(String input) {
if (hostCard.hasChosenColor()) { if (hostCard.hasChosenColor()) {
input = input.replaceAll("ChosenColor", StringUtils.capitalize(hostCard.getChosenColor())); input = input.replaceAll("ChosenColor", StringUtils.capitalize(hostCard.getChosenColor()));
input = input.replaceAll("chosenColor", hostCard.getChosenColor().toLowerCase());
} }
if (hostCard.hasChosenType()) { if (hostCard.hasChosenType()) {
input = input.replaceAll("ChosenType", hostCard.getChosenType()); input = input.replaceAll("ChosenType", hostCard.getChosenType());

View File

@@ -3,7 +3,7 @@ ManaCost:3 W
Types:Creature Human Knight Types:Creature Human Knight
PT:3/4 PT:3/4
K:Vigilance 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. 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 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. 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.

View File

@@ -6,7 +6,6 @@ K:Enchant creature
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. 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 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.
SVar:Picture:http://www.wizards.com/global/images/magic/general/cho_mannos_blessing.jpg
SVar:ChosenProtection:True 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. 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.

View File

@@ -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. 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 AI:RemoveDeck:All
SVar:NonCombatPriority:3 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. Oracle:{W}, {T}: Target permanent you control gains protection from instant spells and from sorcery spells until end of turn.

View File

@@ -4,11 +4,10 @@ Types:Legendary Creature Eldrazi
PT:15/15 PT:15/15
K:CARDNAME can't be countered. K:CARDNAME can't be countered.
K:Flying K:Flying
K:Protection from colored spells K:Protection:Spell.nonColorless:Protection from colored spells
K:Annihilator:6 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. 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 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. 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: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. 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.

View File

@@ -2,6 +2,5 @@ Name:Enemy of the Guildpact
ManaCost:4 B ManaCost:4 B
Types:Creature Spirit Types:Creature Spirit
PT:4/2 PT:4/2
K:Protection from multicolored K:Protection:Card.MultiColor:Protection from multicolored
SVar:Picture:http://www.wizards.com/global/images/magic/general/enemy_of_the_guildpact.jpg
Oracle:Protection from multicolored Oracle:Protection from multicolored

View File

@@ -5,9 +5,8 @@ K:Enchant creature
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck 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 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. A:AB$ ChangeZone | Cost$ W | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand.
AI:RemoveDeck:All AI:RemoveDeck:All
SVar:ChosenProtection:True 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. 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.

View File

@@ -5,9 +5,8 @@ K:Enchant creature
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck 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 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. 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 AI:RemoveDeck:All
SVar:ChosenProtection:True 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. 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.

View File

@@ -2,6 +2,5 @@ Name:Guardian of the Guildpact
ManaCost:3 W ManaCost:3 W
Types:Creature Spirit Types:Creature Spirit
PT:2/3 PT:2/3
K:Protection from monocolored K:Protection:Card.MonoColor:Protection from monocolored
SVar:Picture:http://www.wizards.com/global/images/magic/general/guardian_of_the_guildpact.jpg
Oracle:Protection from monocolored Oracle:Protection from monocolored

View File

@@ -3,6 +3,5 @@ ManaCost:W
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ W | ValidTgts$ Creature | AILogic$ Pump 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. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Protection:Card.MultiColor:Protection from multicolored | Description$ Enchanted creature has protection from multicolored.
SVar:Picture:http://www.wizards.com/global/images/magic/general/guildscorn_ward.jpg
Oracle:Enchant creature\nEnchanted creature has protection from multicolored. Oracle:Enchant creature\nEnchanted creature has protection from multicolored.

View File

@@ -2,6 +2,6 @@ Name:Kitsune Riftwalker
ManaCost:1 W W ManaCost:1 W W
Types:Creature Fox Wizard Types:Creature Fox Wizard
PT:2/1 PT:2/1
K:Protection:Spirit,Arcane:Protection from Spirits and from Arcane K:Protection from Spirits
SVar:Picture:http://www.wizards.com/global/images/magic/general/kitsune_riftwalker.jpg K:Protection from Arcane
Oracle:Protection from Spirits and from Arcane Oracle:Protection from Spirits and from Arcane

View File

@@ -5,6 +5,5 @@ PT:0/1
K:Defender K:Defender
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck 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. 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
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. 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.

View File

@@ -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. 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 SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ 1
A:SP$ Attach | Cost$ 2 W | ValidTgts$ Creature | AILogic$ Pump 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.
SVar:Picture:http://www.wizards.com/global/images/magic/general/pentarch_ward.jpg
SVar:ChosenProtection:True 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. 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.

View File

@@ -3,6 +3,6 @@ ManaCost:2
Types:Artifact Equipment 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. 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 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 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} 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}

View File

@@ -2,8 +2,7 @@ Name:Soldier of the Pantheon
ManaCost:W ManaCost:W
Types:Creature Human Soldier Types:Creature Human Soldier
PT:2/1 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. 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: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. Oracle:Protection from multicolored\nWhenever an opponent casts a multicolored spell, you gain 1 life.

View File

@@ -4,7 +4,7 @@ Types:Artifact Creature Snake
PT:0/0 PT:0/0
K:Reach K:Reach
K:Trample K:Trample
K:Protection from multicolored K:Protection:Card.MultiColor:Protection from multicolored
K:etbCounter:P1P1:X K:etbCounter:P1P1:X
SVar:X:Count$xPaid SVar:X:Count$xPaid
DeckHas:Ability$Counters DeckHas:Ability$Counters

View File

@@ -6,5 +6,5 @@ K:Enchant creature
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. 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 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. 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.

View File

@@ -5,6 +5,5 @@ PT:2/2
K:Flying K:Flying
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck 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. 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
Oracle:Flying\nAs Voice of All enters the battlefield, choose a color.\nVoice of All 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.

View File

@@ -6,8 +6,7 @@ K:Enchant creature
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | SpellDescription$ As CARDNAME enters the battlefield, choose a color. | AILogic$ MostProminentInHumanDeck 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 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 AI:RemoveDeck:All
SVar:ChosenProtection:True 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. 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.

View File

@@ -4,6 +4,5 @@ Types:Creature Sliver
PT:2/2 PT:2/2
K:ETBReplacement:Other:ChooseColor K:ETBReplacement:Other:ChooseColor
SVar:ChooseColor:DB$ ChooseColor | Defined$ You | AILogic$ MostProminentInHumanDeck | SpellDescription$ As CARDNAME enters the battlefield, choose a color. 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. 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
Oracle:As Ward Sliver enters the battlefield, choose a color.\nAll 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.