mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Update phyrexian syntax, add ConniveAI (#2357)
* update syntax - fix mobile display for compleated symbols * update * update cards * fix Raffine Scheming Seer * # ConniveAI * remove unused var * unused import * add missing token script
This commit is contained in:
@@ -55,6 +55,7 @@ public enum SpellApiToAi {
|
||||
.put(ApiType.Cleanup, AlwaysPlayAi.class)
|
||||
.put(ApiType.Clone, CloneAi.class)
|
||||
.put(ApiType.CompanionChoose, ChooseCompanionAi.class)
|
||||
.put(ApiType.Connive, ConniveAi.class)
|
||||
.put(ApiType.CopyPermanent, CopyPermanentAi.class)
|
||||
.put(ApiType.CopySpellAbility, CopySpellAbilityAi.class)
|
||||
.put(ApiType.ControlPlayer, CannotPlayAi.class)
|
||||
|
||||
66
forge-ai/src/main/java/forge/ai/ability/ConniveAi.java
Normal file
66
forge-ai/src/main/java/forge/ai/ability/ConniveAi.java
Normal file
@@ -0,0 +1,66 @@
|
||||
package forge.ai.ability;
|
||||
|
||||
import forge.ai.ComputerUtil;
|
||||
import forge.ai.ComputerUtilCard;
|
||||
import forge.ai.SpellAbilityAi;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.zone.ZoneType;
|
||||
|
||||
public class ConniveAi extends SpellAbilityAi {
|
||||
@Override
|
||||
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
|
||||
final Card source = sa.getHostCard();
|
||||
boolean preferred = true;
|
||||
CardCollection list;
|
||||
list = CardLists.getTargetableCards(new CardCollection(ai.getCardsIn(ZoneType.Battlefield)), sa);
|
||||
|
||||
// Filter AI-specific targets if provided
|
||||
list = ComputerUtil.filterAITgts(sa, ai, list, false);
|
||||
|
||||
int totalTargets = list.size();
|
||||
|
||||
sa.resetTargets();
|
||||
while (sa.canAddMoreTarget()) {
|
||||
if (mandatory) {
|
||||
if ((list.isEmpty() || !preferred) && sa.isTargetNumberValid()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (list.isEmpty() && preferred) {
|
||||
// If it's required to choose targets and the list is empty, get a new list
|
||||
list = CardLists.getTargetableCards(ai.getOpponents().getCardsIn(ZoneType.Battlefield), sa);
|
||||
preferred = false;
|
||||
}
|
||||
|
||||
if (list.isEmpty()) {
|
||||
// Still an empty list, but we have to choose something (mandatory); expand targeting to
|
||||
// include AI's own cards to see if there's anything targetable (e.g. Plague Belcher).
|
||||
list = CardLists.getTargetableCards(ai.getCardsIn(ZoneType.Battlefield), sa);
|
||||
preferred = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (list.isEmpty()) {
|
||||
// Not mandatory, or the the list was regenerated and is still empty,
|
||||
// so return whether or not we found enough targets
|
||||
return sa.isTargetNumberValid();
|
||||
}
|
||||
|
||||
Card choice = ComputerUtilCard.getBestCreatureAI(list);
|
||||
|
||||
if (choice != null) {
|
||||
sa.getTargets().add(choice);
|
||||
list.remove(choice);
|
||||
} else {
|
||||
// Didn't want to choose anything?
|
||||
list.clear();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -58,21 +58,21 @@ public enum ManaCostShard {
|
||||
|
||||
|
||||
/* Phyrexian */
|
||||
PW(ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "P/W", "PW"),
|
||||
PU(ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "P/U", "PU"),
|
||||
PB(ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/B", "PB"),
|
||||
PR(ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/R", "PR"),
|
||||
PG(ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/G", "PG"),
|
||||
PBG(ManaAtom.BLACK | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/B/G", "PBG"),
|
||||
PBR(ManaAtom.BLACK | ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/B/R", "PBR"),
|
||||
PGU(ManaAtom.GREEN | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "P/G/U", "PGU"),
|
||||
PGW(ManaAtom.GREEN | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "P/G/W", "PGW"),
|
||||
PRG(ManaAtom.RED | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "P/R/G", "PRG"),
|
||||
PRW(ManaAtom.RED | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "P/R/W", "PRW"),
|
||||
PUB(ManaAtom.BLUE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/U/B", "PUB"),
|
||||
PUR(ManaAtom.BLUE | ManaAtom.RED | ManaAtom.OR_2_LIFE, "P/U/R", "PUR"),
|
||||
PWB(ManaAtom.WHITE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "P/W/B", "PWB"),
|
||||
PWU(ManaAtom.WHITE | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "P/W/U", "PWU"),
|
||||
WP(ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "W/P", "WP"),
|
||||
UP(ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "U/P", "UP"),
|
||||
BP(ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "B/P", "BP"),
|
||||
RP(ManaAtom.RED | ManaAtom.OR_2_LIFE, "R/P", "RP"),
|
||||
GP(ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "G/P", "GP"),
|
||||
BGP(ManaAtom.BLACK | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "B/G/P", "BGP"),
|
||||
BRP(ManaAtom.BLACK | ManaAtom.RED | ManaAtom.OR_2_LIFE, "B/R/P", "BRP"),
|
||||
GUP(ManaAtom.GREEN | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "G/U/P", "GUP"),
|
||||
GWP(ManaAtom.GREEN | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "G/W/P", "GWP"),
|
||||
RGP(ManaAtom.RED | ManaAtom.GREEN | ManaAtom.OR_2_LIFE, "R/G/P", "RGP"),
|
||||
RWP(ManaAtom.RED | ManaAtom.WHITE | ManaAtom.OR_2_LIFE, "R/W/P", "RWP"),
|
||||
UBP(ManaAtom.BLUE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "U/B/P", "UBP"),
|
||||
URP(ManaAtom.BLUE | ManaAtom.RED | ManaAtom.OR_2_LIFE, "U/R/P", "URP"),
|
||||
WBP(ManaAtom.WHITE | ManaAtom.BLACK | ManaAtom.OR_2_LIFE, "W/B/P", "WBP"),
|
||||
WUP(ManaAtom.WHITE | ManaAtom.BLUE | ManaAtom.OR_2_LIFE, "W/U/P", "WUP"),
|
||||
|
||||
X(ManaAtom.IS_X, "X"),
|
||||
|
||||
|
||||
@@ -79,6 +79,11 @@ public class CardFaceSymbols {
|
||||
MANA_IMAGES.put("PU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_U));
|
||||
MANA_IMAGES.put("PB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_B));
|
||||
MANA_IMAGES.put("PG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_G));
|
||||
MANA_IMAGES.put("WP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_W));
|
||||
MANA_IMAGES.put("RP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_R));
|
||||
MANA_IMAGES.put("UP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_U));
|
||||
MANA_IMAGES.put("BP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_B));
|
||||
MANA_IMAGES.put("GP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_G));
|
||||
MANA_IMAGES.put("PBG", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BG));
|
||||
MANA_IMAGES.put("PBR", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BR));
|
||||
MANA_IMAGES.put("PGU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GU));
|
||||
@@ -89,6 +94,16 @@ public class CardFaceSymbols {
|
||||
MANA_IMAGES.put("PUR", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UR));
|
||||
MANA_IMAGES.put("PWB", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WB));
|
||||
MANA_IMAGES.put("PWU", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WU));
|
||||
MANA_IMAGES.put("BGP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BG));
|
||||
MANA_IMAGES.put("BRP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_BR));
|
||||
MANA_IMAGES.put("GUP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GU));
|
||||
MANA_IMAGES.put("GWP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_GW));
|
||||
MANA_IMAGES.put("RGP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RG));
|
||||
MANA_IMAGES.put("RWP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_RW));
|
||||
MANA_IMAGES.put("UBP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UB));
|
||||
MANA_IMAGES.put("URP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_UR));
|
||||
MANA_IMAGES.put("WBP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WB));
|
||||
MANA_IMAGES.put("WUP", FSkin.getImage(FSkinProp.IMG_MANA_PHRYX_WU));
|
||||
MANA_IMAGES.put("2W", FSkin.getImage(FSkinProp.IMG_MANA_2W));
|
||||
MANA_IMAGES.put("2U", FSkin.getImage(FSkinProp.IMG_MANA_2U));
|
||||
MANA_IMAGES.put("2R", FSkin.getImage(FSkinProp.IMG_MANA_2R));
|
||||
|
||||
@@ -1452,6 +1452,16 @@ public class FSkin {
|
||||
addEncodingSymbol("P/U/R", FSkinProp.IMG_MANA_PHRYX_UR);
|
||||
addEncodingSymbol("P/W/B", FSkinProp.IMG_MANA_PHRYX_WB);
|
||||
addEncodingSymbol("P/W/U", FSkinProp.IMG_MANA_PHRYX_WU);
|
||||
addEncodingSymbol("B/G/P", FSkinProp.IMG_MANA_PHRYX_BG);
|
||||
addEncodingSymbol("B/R/P", FSkinProp.IMG_MANA_PHRYX_BR);
|
||||
addEncodingSymbol("G/U/P", FSkinProp.IMG_MANA_PHRYX_GU);
|
||||
addEncodingSymbol("G/W/P", FSkinProp.IMG_MANA_PHRYX_GW);
|
||||
addEncodingSymbol("R/G/P", FSkinProp.IMG_MANA_PHRYX_RG);
|
||||
addEncodingSymbol("R/W/P", FSkinProp.IMG_MANA_PHRYX_RW);
|
||||
addEncodingSymbol("U/B/P", FSkinProp.IMG_MANA_PHRYX_UB);
|
||||
addEncodingSymbol("U/R/P", FSkinProp.IMG_MANA_PHRYX_UR);
|
||||
addEncodingSymbol("W/B/P", FSkinProp.IMG_MANA_PHRYX_WB);
|
||||
addEncodingSymbol("W/U/P", FSkinProp.IMG_MANA_PHRYX_WU);
|
||||
for (int i = 0; i <= 20; i++) {
|
||||
addEncodingSymbol(String.valueOf(i), FSkinProp.valueOf("IMG_MANA_" + i));
|
||||
}
|
||||
|
||||
@@ -61,6 +61,16 @@ public class TextRenderer {
|
||||
Forge.getAssets().symbolLookup().put("P/U/R", FSkinImage.MANA_PHRYX_UR);
|
||||
Forge.getAssets().symbolLookup().put("P/W/B", FSkinImage.MANA_PHRYX_WB);
|
||||
Forge.getAssets().symbolLookup().put("P/W/U", FSkinImage.MANA_PHRYX_WU);
|
||||
Forge.getAssets().symbolLookup().put("B/G/P", FSkinImage.MANA_PHRYX_BG);
|
||||
Forge.getAssets().symbolLookup().put("B/R/P", FSkinImage.MANA_PHRYX_BR);
|
||||
Forge.getAssets().symbolLookup().put("G/U/P", FSkinImage.MANA_PHRYX_GU);
|
||||
Forge.getAssets().symbolLookup().put("G/W/P", FSkinImage.MANA_PHRYX_GW);
|
||||
Forge.getAssets().symbolLookup().put("R/G/P", FSkinImage.MANA_PHRYX_RG);
|
||||
Forge.getAssets().symbolLookup().put("R/W/P", FSkinImage.MANA_PHRYX_RW);
|
||||
Forge.getAssets().symbolLookup().put("U/B/P", FSkinImage.MANA_PHRYX_UB);
|
||||
Forge.getAssets().symbolLookup().put("U/R/P", FSkinImage.MANA_PHRYX_UR);
|
||||
Forge.getAssets().symbolLookup().put("W/B/P", FSkinImage.MANA_PHRYX_WB);
|
||||
Forge.getAssets().symbolLookup().put("W/U/P", FSkinImage.MANA_PHRYX_WU);
|
||||
for (int i = 0; i <= 20; i++) {
|
||||
Forge.getAssets().symbolLookup().put(String.valueOf(i), FSkinImage.valueOf("MANA_" + i));
|
||||
}
|
||||
|
||||
@@ -60,6 +60,11 @@ public class CardFaceSymbols {
|
||||
Forge.getAssets().manaImages().put("PU", FSkinImage.MANA_PHRYX_U);
|
||||
Forge.getAssets().manaImages().put("PB", FSkinImage.MANA_PHRYX_B);
|
||||
Forge.getAssets().manaImages().put("PG", FSkinImage.MANA_PHRYX_G);
|
||||
Forge.getAssets().manaImages().put("WP", FSkinImage.MANA_PHRYX_W);
|
||||
Forge.getAssets().manaImages().put("RP", FSkinImage.MANA_PHRYX_R);
|
||||
Forge.getAssets().manaImages().put("UP", FSkinImage.MANA_PHRYX_U);
|
||||
Forge.getAssets().manaImages().put("BP", FSkinImage.MANA_PHRYX_B);
|
||||
Forge.getAssets().manaImages().put("GP", FSkinImage.MANA_PHRYX_G);
|
||||
Forge.getAssets().manaImages().put("PBG", FSkinImage.MANA_PHRYX_BG);
|
||||
Forge.getAssets().manaImages().put("PBR", FSkinImage.MANA_PHRYX_BR);
|
||||
Forge.getAssets().manaImages().put("PGU", FSkinImage.MANA_PHRYX_GU);
|
||||
@@ -70,6 +75,16 @@ public class CardFaceSymbols {
|
||||
Forge.getAssets().manaImages().put("PUR", FSkinImage.MANA_PHRYX_UR);
|
||||
Forge.getAssets().manaImages().put("PWB", FSkinImage.MANA_PHRYX_WB);
|
||||
Forge.getAssets().manaImages().put("PWU", FSkinImage.MANA_PHRYX_WU);
|
||||
Forge.getAssets().manaImages().put("BGP", FSkinImage.MANA_PHRYX_BG);
|
||||
Forge.getAssets().manaImages().put("BRP", FSkinImage.MANA_PHRYX_BR);
|
||||
Forge.getAssets().manaImages().put("GUP", FSkinImage.MANA_PHRYX_GU);
|
||||
Forge.getAssets().manaImages().put("GWP", FSkinImage.MANA_PHRYX_GW);
|
||||
Forge.getAssets().manaImages().put("RGP", FSkinImage.MANA_PHRYX_RG);
|
||||
Forge.getAssets().manaImages().put("RWP", FSkinImage.MANA_PHRYX_RW);
|
||||
Forge.getAssets().manaImages().put("UBP", FSkinImage.MANA_PHRYX_UB);
|
||||
Forge.getAssets().manaImages().put("URP", FSkinImage.MANA_PHRYX_UR);
|
||||
Forge.getAssets().manaImages().put("WBP", FSkinImage.MANA_PHRYX_WB);
|
||||
Forge.getAssets().manaImages().put("WUP", FSkinImage.MANA_PHRYX_WU);
|
||||
Forge.getAssets().manaImages().put("2W", FSkinImage.MANA_2W);
|
||||
Forge.getAssets().manaImages().put("2U", FSkinImage.MANA_2U);
|
||||
Forge.getAssets().manaImages().put("2R", FSkinImage.MANA_2R);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Act of Aggression
|
||||
ManaCost:3 PR PR
|
||||
ManaCost:3 RP RP
|
||||
Types:Instant
|
||||
A:SP$ GainControl | Cost$ 3 PR PR | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls. | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
A:SP$ GainControl | Cost$ 3 RP RP | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls. | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
Oracle:({R/P} can be paid with either {R} or 2 life.)\nGain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Ajani, Sleeper Agent
|
||||
ManaCost:1 G PGW W
|
||||
ManaCost:1 G GWP W
|
||||
Types:Legendary Planeswalker Ajani
|
||||
Loyalty:4
|
||||
K:Compleated
|
||||
@@ -13,4 +13,4 @@ SVar:TrigSpellCast:Mode$ SpellCast | ValidCard$ Creature,Planeswalker | ValidAct
|
||||
SVar:EffSpellCast:DB$ Poison | ValidTgts$ Opponent | Num$ 2
|
||||
SVar:BuffedBy:Creature,Planeswalker
|
||||
DeckHints:Type$Creature|Planeswalker
|
||||
Oracle:Compleated ({PGW} can be paid with {G}, {W}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Reveal the top card of your library. If it's a creature or planeswalker card, put it into your hand. Otherwise, you may put it on the bottom of your library.\n[-3]: Distribute three +1/+1 counters among up to three target creatures. They gain vigilance until end of turn.\n[-6]: You get an emblem with "Whenever you cast a creature or planeswalker spell, target opponent gets two poison counters."
|
||||
Oracle:Compleated ({G/W/P} can be paid with {G}, {W}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Reveal the top card of your library. If it's a creature or planeswalker card, put it into your hand. Otherwise, you may put it on the bottom of your library.\n[-3]: Distribute three +1/+1 counters among up to three target creatures. They gain vigilance until end of turn.\n[-6]: You get an emblem with "Whenever you cast a creature or planeswalker spell, target opponent gets two poison counters."
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Apostle's Blessing
|
||||
ManaCost:1 PW
|
||||
ManaCost:1 WP
|
||||
Types:Instant
|
||||
A:SP$ Protection | Cost$ 1 PW | ValidTgts$ Creature.YouCtrl,Artifact.YouCtrl | TgtPrompt$ Select target artifact or creature you control | Gains$ Choice | Choices$ AnyColor,artifacts | SpellDescription$ Target artifact or creature you control gains protection from artifacts or from the color of your choice until end of turn.
|
||||
A:SP$ Protection | Cost$ 1 WP | ValidTgts$ Creature.YouCtrl,Artifact.YouCtrl | TgtPrompt$ Select target artifact or creature you control | Gains$ Choice | Choices$ AnyColor,artifacts | SpellDescription$ Target artifact or creature you control gains protection from artifacts or from the color of your choice until end of turn.
|
||||
Oracle:({W/P} can be paid with either {W} or 2 life.)\nTarget artifact or creature you control gains protection from artifacts or from the color of your choice until end of turn.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Birthing Pod
|
||||
ManaCost:3 PG
|
||||
ManaCost:3 GP
|
||||
Types:Artifact
|
||||
A:AB$ ChangeZone | Cost$ 1 PG T Sac<1/Creature> | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcEQX | ChangeNum$ 1 | SorcerySpeed$ True | AILogic$ SacAndUpgrade | StackDescription$ Search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put that card onto the battlefield, then shuffle. | SpellDescription$ Search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put that card onto the battlefield, then shuffle. Activate only as a sorcery.
|
||||
A:AB$ ChangeZone | Cost$ 1 GP T Sac<1/Creature> | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcEQX | ChangeNum$ 1 | SorcerySpeed$ True | AILogic$ SacAndUpgrade | StackDescription$ Search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put that card onto the battlefield, then shuffle. | SpellDescription$ Search your library for a creature card with mana value equal to 1 plus the sacrificed creature's mana value, put that card onto the battlefield, then shuffle. Activate only as a sorcery.
|
||||
SVar:X:Sacrificed$CardManaCost/Plus.1
|
||||
# AI Preference is needed to make the AI consider the ability. Further constraints are defined by AILogic SacAndUpgrade.
|
||||
SVar:AIPreference:SacCost$Creature
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Blinding Souleater
|
||||
ManaCost:3
|
||||
Types:Artifact Creature Phyrexian Cleric
|
||||
PT:1/3
|
||||
A:AB$ Tap | Cost$ PW T | ValidTgts$ Creature | TgtPrompt$ Select target creature | AIPhyrexianPayment$ Never | SpellDescription$ Tap target creature.
|
||||
A:AB$ Tap | Cost$ WP T | ValidTgts$ Creature | TgtPrompt$ Select target creature | AIPhyrexianPayment$ Never | SpellDescription$ Tap target creature.
|
||||
AI:RemoveDeck:Random
|
||||
DeckNeeds:Color$White
|
||||
SVar:NonCombatPriority:1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Cathedral Membrane
|
||||
ManaCost:1 PW
|
||||
ManaCost:1 WP
|
||||
Types:Artifact Creature Phyrexian Wall
|
||||
PT:0/3
|
||||
K:Defender
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Corrosive Gale
|
||||
ManaCost:X PG
|
||||
ManaCost:X GP
|
||||
Types:Sorcery
|
||||
A:SP$ DamageAll | Cost$ X PG | ValidCards$ Creature.withFlying | ValidDescription$ each creature with flying. | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to each creature with flying.
|
||||
A:SP$ DamageAll | Cost$ X GP | ValidCards$ Creature.withFlying | ValidDescription$ each creature with flying. | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to each creature with flying.
|
||||
SVar:X:Count$xPaid
|
||||
Oracle:({G/P} can be paid with either {G} or 2 life.)\nCorrosive Gale deals X damage to each creature with flying.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Dismember
|
||||
ManaCost:1 PB PB
|
||||
ManaCost:1 BP BP
|
||||
Types:Instant
|
||||
A:SP$ Pump | Cost$ 1 PB PB | IsCurse$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -5 | NumDef$ -5 | SpellDescription$ Target creature gets -5/-5 until end of turn.
|
||||
A:SP$ Pump | Cost$ 1 BP BP | IsCurse$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -5 | NumDef$ -5 | SpellDescription$ Target creature gets -5/-5 until end of turn.
|
||||
Oracle:({B/P} can be paid with either {B} or 2 life.)\nTarget creature gets -5/-5 until end of turn.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Gitaxian Probe
|
||||
ManaCost:PU
|
||||
ManaCost:UP
|
||||
Types:Sorcery
|
||||
A:SP$ RevealHand | Cost$ PU | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SubAbility$ DBDraw | AIPhyrexianPayment$ Never | SpellDescription$ Look at target player's hand.
|
||||
A:SP$ RevealHand | Cost$ UP | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SubAbility$ DBDraw | AIPhyrexianPayment$ Never | SpellDescription$ Look at target player's hand.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
|
||||
AI:RemoveDeck:All
|
||||
Oracle:({U/P} can be paid with either {U} or 2 life.)\nLook at target player's hand.\nDraw a card.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Gut Shot
|
||||
ManaCost:PR
|
||||
ManaCost:RP
|
||||
Types:Instant
|
||||
A:SP$ DealDamage | Cost$ PR | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | AIPhyrexianPayment$ OnFatalDamage.1 | SpellDescription$ CARDNAME deals 1 damage to any target.
|
||||
A:SP$ DealDamage | Cost$ RP | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | AIPhyrexianPayment$ OnFatalDamage.1 | SpellDescription$ CARDNAME deals 1 damage to any target.
|
||||
Oracle:({R/P} can be paid with either {R} or 2 life.)\nGut Shot deals 1 damage to any target.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Hex Parasite
|
||||
ManaCost:1
|
||||
Types:Artifact Creature Phyrexian Insect
|
||||
PT:1/1
|
||||
A:AB$ RemoveCounter | Cost$ X PB | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | CounterType$ Any | CounterNum$ X | RememberRemoved$ True | SubAbility$ DBPump | SpellDescription$ Remove up to X counters from target permanent. For each counter removed this way, CARDNAME gets +1/+0 until end of turn.
|
||||
A:AB$ RemoveCounter | Cost$ X BP | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | CounterType$ Any | CounterNum$ X | RememberRemoved$ True | SubAbility$ DBPump | SpellDescription$ Remove up to X counters from target permanent. For each counter removed this way, CARDNAME gets +1/+0 until end of turn.
|
||||
SVar:DBPump:DB$ Pump | NumAtt$ +Y | Defined$ Self | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$xPaid
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Immolating Souleater
|
||||
ManaCost:2
|
||||
Types:Artifact Creature Phyrexian Dog
|
||||
PT:1/1
|
||||
A:AB$ Pump | Cost$ PR | Defined$ Self | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
||||
A:AB$ Pump | Cost$ RP | Defined$ Self | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
||||
DeckNeeds:Color$Red
|
||||
Oracle:{R/P}: Immolating Souleater gets +1/+0 until end of turn. ({R/P} can be paid with either {R} or 2 life.)
|
||||
|
||||
@@ -2,5 +2,5 @@ Name:Insatiable Souleater
|
||||
ManaCost:4
|
||||
Types:Artifact Creature Phyrexian Beast
|
||||
PT:5/1
|
||||
A:AB$ Pump | Cost$ PG | Defined$ Self | KW$ Trample | SpellDescription$ CARDNAME gains trample until end of turn.
|
||||
A:AB$ Pump | Cost$ GP | Defined$ Self | KW$ Trample | SpellDescription$ CARDNAME gains trample until end of turn.
|
||||
Oracle:{G/P}: Insatiable Souleater gains trample until end of turn. ({G/P} can be paid with either {G} or 2 life.)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:K'rrik, Son of Yawgmoth
|
||||
ManaCost:4 B/P B/P B/P
|
||||
ManaCost:4 BP BP BP
|
||||
Types:Legendary Creature Phyrexian Horror Minion
|
||||
PT:2/2
|
||||
K:Lifelink
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Lashwrithe
|
||||
ManaCost:4
|
||||
Types:Artifact Equipment
|
||||
K:Living Weapon
|
||||
K:Equip:PB PB
|
||||
K:Equip:BP BP
|
||||
S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ X | AddToughness$ X | Description$ Equipped creature gets +1/+1 for each Swamp you control.
|
||||
SVar:X:Count$Valid Swamp.YouCtrl
|
||||
SVar:BuffedBy:Swamp
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Marrow Shards
|
||||
ManaCost:PW
|
||||
ManaCost:WP
|
||||
Types:Instant
|
||||
A:SP$ DamageAll | Cost$ PW | ValidCards$ Creature.attacking | ValidDescription$ each attacking creature. | NumDmg$ 1 | AIPhyrexianPayment$ Never | SpellDescription$ CARDNAME deals 1 damage to each attacking creature.
|
||||
A:SP$ DamageAll | Cost$ WP | ValidCards$ Creature.attacking | ValidDescription$ each attacking creature. | NumDmg$ 1 | AIPhyrexianPayment$ Never | SpellDescription$ CARDNAME deals 1 damage to each attacking creature.
|
||||
Oracle:({W/P} can be paid with either {W} or 2 life.)\nMarrow Shards deals 1 damage to each attacking creature.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Mental Misstep
|
||||
ManaCost:PU
|
||||
ManaCost:UP
|
||||
Types:Instant
|
||||
A:SP$ Counter | Cost$ PU | TargetType$ Spell | TgtPrompt$ Select target spell with mana value 1 | ValidTgts$ Card.cmcEQ1 | AIPhyrexianPayment$ Never | SpellDescription$ Counter target spell with mana value 1.
|
||||
A:SP$ Counter | Cost$ UP | TargetType$ Spell | TgtPrompt$ Select target spell with mana value 1 | ValidTgts$ Card.cmcEQ1 | AIPhyrexianPayment$ Never | SpellDescription$ Counter target spell with mana value 1.
|
||||
Oracle:({U/P} can be paid with either {U} or 2 life.)\nCounter target spell with mana value 1.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Moltensteel Dragon
|
||||
ManaCost:4 PR PR
|
||||
ManaCost:4 RP RP
|
||||
Types:Artifact Creature Phyrexian Dragon
|
||||
PT:4/4
|
||||
K:Flying
|
||||
A:AB$ Pump | Cost$ PR | Defined$ Self | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
||||
A:AB$ Pump | Cost$ RP | Defined$ Self | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
||||
Oracle:({R/P} can be paid with either {R} or 2 life.)\nFlying\n{R/P}: Moltensteel Dragon gets +1/+0 until end of turn.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Mutagenic Growth
|
||||
ManaCost:PG
|
||||
ManaCost:GP
|
||||
Types:Instant
|
||||
A:SP$ Pump | Cost$ PG | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 2 | NumDef$ 2 | SpellDescription$ Target creature gets +2/+2 until end of turn.
|
||||
A:SP$ Pump | Cost$ GP | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 2 | NumDef$ 2 | SpellDescription$ Target creature gets +2/+2 until end of turn.
|
||||
Oracle:({G/P} can be paid with either {G} or 2 life.)\nTarget creature gets +2/+2 until end of turn.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Norn's Annex
|
||||
ManaCost:3 PW PW
|
||||
ManaCost:3 WP WP
|
||||
Types:Artifact
|
||||
S:Mode$ CantAttackUnless | ValidCard$ Creature | Target$ You,Planeswalker.YouCtrl | Cost$ PW | Description$ Creatures can't attack you or planeswalkers you control unless their controller pays PW for each of those creatures.
|
||||
S:Mode$ CantAttackUnless | ValidCard$ Creature | Target$ You,Planeswalker.YouCtrl | Cost$ WP | Description$ Creatures can't attack you or planeswalkers you control unless their controller pays WP for each of those creatures.
|
||||
Oracle:({W/P} can be paid with either {W} or 2 life.)\nCreatures can't attack you or planeswalkers you control unless their controller pays {W/P} for each of those creatures.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Noxious Revival
|
||||
ManaCost:PG
|
||||
ManaCost:GP
|
||||
Types:Instant
|
||||
A:SP$ ChangeZone | Cost$ PG | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | ValidTgts$ Card | AITgts$ Card.YouOwn | TgtPrompt$ Select target card from a graveyard | SpellDescription$ Put target card from a graveyard on top of its owner's library.
|
||||
A:SP$ ChangeZone | Cost$ GP | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | ValidTgts$ Card | AITgts$ Card.YouOwn | TgtPrompt$ Select target card from a graveyard | SpellDescription$ Put target card from a graveyard on top of its owner's library.
|
||||
Oracle:({G/P} can be paid with either {G} or 2 life.)\nPut target card from a graveyard on top of its owner's library.
|
||||
|
||||
@@ -2,5 +2,5 @@ Name:Pestilent Souleater
|
||||
ManaCost:5
|
||||
Types:Artifact Creature Phyrexian Insect
|
||||
PT:3/3
|
||||
A:AB$ Pump | Cost$ PB | Defined$ Self | KW$ Infect | SpellDescription$ CARDNAME gains infect until end of turn.
|
||||
A:AB$ Pump | Cost$ BP | Defined$ Self | KW$ Infect | SpellDescription$ CARDNAME gains infect until end of turn.
|
||||
Oracle:{B/P}: Pestilent Souleater gains infect until end of turn. ({B/P} can be paid with either {B} or 2 life. A creature with infect deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Phyrexian Metamorph
|
||||
ManaCost:3 PU
|
||||
ManaCost:3 UP
|
||||
Types:Artifact Creature Phyrexian Shapeshifter
|
||||
PT:0/0
|
||||
K:ETBReplacement:Copy:DBCopy:Optional
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Pith Driller
|
||||
ManaCost:4 PB
|
||||
ManaCost:4 BP
|
||||
Types:Artifact Creature Phyrexian Horror
|
||||
PT:2/4
|
||||
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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Porcelain Legionnaire
|
||||
ManaCost:2 PW
|
||||
ManaCost:2 WP
|
||||
Types:Artifact Creature Phyrexian Soldier
|
||||
PT:3/1
|
||||
K:First Strike
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Postmortem Lunge
|
||||
ManaCost:X PB
|
||||
ManaCost:X BP
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | Cost$ X PB | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouOwn+cmcEQX | TgtPrompt$ Choose target creature with mana value equal to X. | SubAbility$ DBHaste | AILogic$ BeforeCombat | SpellDescription$ Return target creature card with mana value X from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.
|
||||
A:SP$ ChangeZone | Cost$ X BP | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouOwn+cmcEQX | TgtPrompt$ Choose target creature with mana value equal to X. | SubAbility$ DBHaste | AILogic$ BeforeCombat | SpellDescription$ Return target creature card with mana value X from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.
|
||||
SVar:DBHaste:DB$ Animate | Defined$ Targeted | Keywords$ Haste | Duration$ Permanent | AtEOT$ Exile
|
||||
SVar:X:Count$xPaid
|
||||
AI:RemoveDeck:All
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Rage Extractor
|
||||
ManaCost:4 PR
|
||||
ManaCost:4 RP
|
||||
Types:Artifact
|
||||
T:Mode$ SpellCast | ValidCard$ Card.CostsPhyrexianMana | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever you cast a spell with {P} in its mana cost, CARDNAME deals damage equal to that spell's mana value to any target.
|
||||
SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Ruthless Invasion
|
||||
ManaCost:3 PR
|
||||
ManaCost:3 RP
|
||||
Types:Sorcery
|
||||
A:SP$ Effect | StaticAbilities$ KWPump | AILogic$ Evasion | SpellDescription$ Nonartifact creatures can't block this turn.
|
||||
SVar:KWPump:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.nonArtifact | AddHiddenKeyword$ CARDNAME can't block. | Description$ Nonartifact creatures can't block this turn.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Slash Panther
|
||||
ManaCost:4 PR
|
||||
ManaCost:4 RP
|
||||
Types:Artifact Creature Phyrexian Cat
|
||||
PT:4/2
|
||||
K:Haste
|
||||
|
||||
@@ -2,5 +2,5 @@ Name:Spellskite
|
||||
ManaCost:2
|
||||
Types:Artifact Creature Phyrexian Horror
|
||||
PT:0/4
|
||||
A:AB$ ChangeTargets | Cost$ PU | TargetType$ Spell,Activated,Triggered | ValidTgts$ Card,Emblem | DefinedMagnet$ Self | ChangeSingleTarget$ True | SpellDescription$ Change a target of target spell or ability to CARDNAME.
|
||||
A:AB$ ChangeTargets | Cost$ UP | TargetType$ Spell,Activated,Triggered | ValidTgts$ Card,Emblem | DefinedMagnet$ Self | ChangeSingleTarget$ True | SpellDescription$ Change a target of target spell or ability to CARDNAME.
|
||||
Oracle:{U/P}: Change a target of target spell or ability to Spellskite. ({U/P} can be paid with either {U} or 2 life.)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Spined Thopter
|
||||
ManaCost:2 PU
|
||||
ManaCost:2 UP
|
||||
Types:Artifact Creature Phyrexian Thopter
|
||||
PT:2/1
|
||||
K:Flying
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Surgical Extraction
|
||||
ManaCost:PB
|
||||
ManaCost:BP
|
||||
Types:Instant
|
||||
A:SP$ Pump | Cost$ PB | ValidTgts$ Card.nonBasic | TgtZone$ Graveyard | TgtPrompt$ Choose target card in a graveyard | RememberObjects$ Targeted | SubAbility$ ExileYard | SpellDescription$ Choose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles.
|
||||
A:SP$ Pump | Cost$ BP | ValidTgts$ Card.nonBasic | TgtZone$ Graveyard | TgtPrompt$ Choose target card in a graveyard | RememberObjects$ Targeted | SubAbility$ ExileYard | SpellDescription$ Choose target card in a graveyard other than a basic land card. Search its owner's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles.
|
||||
SVar:ExileYard:DB$ ChangeZone | ChangeType$ Remembered.sameName | Origin$ Graveyard | DefinedPlayer$ TargetedController | Chooser$ You | Destination$ Exile | ChangeNum$ NumInYard | Hidden$ True | SubAbility$ ExileHand | StackDescription$ Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles their library.
|
||||
SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInHand | Chooser$ You | SubAbility$ ExileLib | StackDescription$ None
|
||||
SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ TargetedController | ChangeType$ Remembered.sameName | ChangeNum$ NumInLib | Chooser$ You | Shuffle$ True | StackDescription$ None | SubAbility$ DBCleanup
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Tamiyo, Compleated Sage
|
||||
ManaCost:2 G PGU U
|
||||
ManaCost:2 G GUP U
|
||||
Types:Legendary Planeswalker Tamiyo
|
||||
Loyalty:5
|
||||
K:Compleated
|
||||
@@ -10,4 +10,4 @@ SVar:DBCopy:DB$ CopyPermanent | Defined$ Targeted | SpellDescription$ Create a t
|
||||
SVar:X:Count$xPaid
|
||||
A:AB$ Token | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | TokenScript$ tamiyos_notebook | SpellDescription$ Create Tamiyo's Notebook, a legendary colorless artifact token with "Spells you cast cost {2} less to cast" and "{T}: Draw a card."
|
||||
DeckHas:Ability$Token & Type$Artifact
|
||||
Oracle:Compleated ({PGU} can be paid with {G}, {U}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Tap up to one target artifact or creature. It doesn't untap during its controller's next untap step.\n[−X]: Exile target nonland permanent card with mana value X from your graveyard. Create a token that's a copy of that card.\n[−7]: Create Tamiyo's Notebook, a legendary colorless artifact token with "Spells you cast cost {2} less to cast" and "{T}: Draw a card."
|
||||
Oracle:Compleated ({G/U/P} can be paid with {G}, {U}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Tap up to one target artifact or creature. It doesn't untap during its controller's next untap step.\n[−X]: Exile target nonland permanent card with mana value X from your graveyard. Create a token that's a copy of that card.\n[−7]: Create Tamiyo's Notebook, a legendary colorless artifact token with "Spells you cast cost {2} less to cast" and "{T}: Draw a card."
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Tezzeret's Gambit
|
||||
ManaCost:3 PU
|
||||
ManaCost:3 UP
|
||||
Types:Sorcery
|
||||
A:SP$ Draw | Cost$ 3 PU | Defined$ You | NumCards$ 2 | SubAbility$ DBProlif | SpellDescription$ Draw two cards, then proliferate.
|
||||
A:SP$ Draw | Cost$ 3 UP | Defined$ You | NumCards$ 2 | SubAbility$ DBProlif | SpellDescription$ Draw two cards, then proliferate.
|
||||
SVar:DBProlif:DB$ Proliferate
|
||||
DeckHas:Ability$Proliferate
|
||||
DeckNeeds:Ability$Counters
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Thundering Tanadon
|
||||
ManaCost:4 PG PG
|
||||
ManaCost:4 GP GP
|
||||
Types:Artifact Creature Phyrexian Beast
|
||||
PT:5/4
|
||||
K:Trample
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Trespassing Souleater
|
||||
ManaCost:3
|
||||
Types:Artifact Creature Phyrexian Construct
|
||||
PT:2/2
|
||||
A:AB$ Effect | Cost$ PU | RememberObjects$ Self | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | SpellDescription$ CARDNAME can't be blocked this turn.
|
||||
A:AB$ Effect | Cost$ UP | RememberObjects$ Self | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | SpellDescription$ CARDNAME can't be blocked this turn.
|
||||
SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ EFFECTSOURCE can't be blocked this turn.
|
||||
Oracle:{U/P}: Trespassing Souleater can't be blocked this turn. ({U/P} can be paid with either {U} or 2 life.)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Jace, the Perfected Mind
|
||||
ManaCost:2 PU U
|
||||
ManaCost:2 UP U
|
||||
Types:Legendary Planeswalker Jace
|
||||
Loyalty:5
|
||||
K:Compleated
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Nahiri, the Unforgiving
|
||||
ManaCost:1 R RW W
|
||||
ManaCost:1 R RWP W
|
||||
Types:Legendary Planeswalker Nahiri
|
||||
Loyalty:5
|
||||
K:Compleated
|
||||
@@ -12,4 +12,4 @@ SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | PumpKeywords$ Haste | AtEO
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
DeckHas:Ability$Discard|Token
|
||||
SVar:X:Count$CardCounters.LOYALTY
|
||||
Oracle:Compleated ({R/W} can be paid with {R}, {W}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Until your next turn, up to one target creature attacks a player each combat if able.\n[+1]: Discard a card, then draw a card.\n[+0]:Exile target creature or Equipment card with mana value less than Nahiri's loyalty from your graveyard. Create a token that's a copy of it. That token gains haste. Exile it at the beginning of the next end step.
|
||||
Oracle:Compleated ({R/W/P} can be paid with {R}, {W}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Until your next turn, up to one target creature attacks a player each combat if able.\n[+1]: Discard a card, then draw a card.\n[+0]:Exile target creature or Equipment card with mana value less than Nahiri's loyalty from your graveyard. Create a token that's a copy of it. That token gains haste. Exile it at the beginning of the next end step.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Nissa, Ascended Animist
|
||||
ManaCost:3 G G PG PG
|
||||
ManaCost:3 G G GP GP
|
||||
Types:Legendary Planeswalker Nissa
|
||||
Loyalty:7
|
||||
K:Compleated
|
||||
|
||||
@@ -4,9 +4,9 @@ Types:Legendary Artifact Creature Phyrexian Mite
|
||||
PT:1/1
|
||||
K:Toxic:1
|
||||
S:Mode$ CantBlockBy | ValidBlocker$ Creature.Self | Description$ CARDNAME can't block.
|
||||
A:AB$ ChooseColor | Cost$ PW T | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBPump | SpellDescription$ Choose a color. Another target creature you control gains toxic 1 and hexproof from that color until end of turn.
|
||||
A:AB$ ChooseColor | Cost$ WP T | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBPump | SpellDescription$ Choose a color. Another target creature you control gains toxic 1 and hexproof from that color until end of turn.
|
||||
SVar:DBPump:DB$ Pump | Defined$ Targeted | ValidTgts$ Creature.YouCtrl+Other | TgtPrompt$ Select another target creature you control | KW$ Hexproof:Card.ChosenColor:chosen & Toxic:1 | StackDescription$ {c:Targeted} gains toxic 1 and hexproof from that color until end of turn. | DefinedKW$ ChosenColor | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | StaticAbilities$ CantBlockBy | SubAbility$ DBCleanup | SpellDescription$ It can't be blocked by creatures of that color this turn.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenColor$ True
|
||||
SVar:CantBlockBy:Mode$ CantBlockBy | ValidAttacker$ Creature.IsRemembered | ValidBlocker$ Creature.ChosenColor | Description$ This creature can't be blocked by creatures of the chosen color this turn.
|
||||
Oracle:Toxic 1\nSkrelv, Defector Mite can't block.\n{PW}, {T}: Choose a color. Another target creature you control gains toxic 1 and hexproof from that color until end of turn. It can't be blocked by creatures of that color this turn. ({PW} may be paid for with either {W} or 2 life.)
|
||||
Oracle:Toxic 1\nSkrelv, Defector Mite can't block.\n{W/P}, {T}: Choose a color. Another target creature you control gains toxic 1 and hexproof from that color until end of turn. It can't be blocked by creatures of that color this turn. ({W/P} may be paid for with either {W} or 2 life.)
|
||||
|
||||
@@ -5,6 +5,6 @@ PT:5/4
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.YouCtrl,Emblem.YouCtrl | ValidTarget$ Permanent.OppCtrl,Opponent | IsCombat$ False | ReplaceWith$ DmgTwice | Description$ If a source you control would deal noncombat damage to an opponent or a permanent an opponent controls, it deals double that damage to that player or permanent instead.
|
||||
SVar:DmgTwice:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X
|
||||
SVar:X:ReplaceCount$DamageAmount/Twice
|
||||
A:AB$ PutCounter | Cost$ 1 RP RP Discard<2/Card> | Defined$ Self | CounterType$ Indestructible | CounterNum$ 1 | SpellDescription$ Put an indestructible counter on CARDNAME. ({PR} can be paid with either {R} or 2 life.)
|
||||
A:AB$ PutCounter | Cost$ 1 RP RP Discard<2/Card> | Defined$ Self | CounterType$ Indestructible | CounterNum$ 1 | SpellDescription$ Put an indestructible counter on CARDNAME. ({R/P} can be paid with either {R} or 2 life.)
|
||||
DeckHas:Ability$Discard|Counters
|
||||
Oracle:If a source you control would deal noncombat damage to an opponent or a permanent an opponent controls, it deals double that damage to that player or permanent instead.\n{1}{RP}{RP}, Discard two cards: Put an indestructible counter on Solphim, Mayhem Dominus. ({R/P} can be paid with either {R} or 2 life.)
|
||||
Oracle:If a source you control would deal noncombat damage to an opponent or a permanent an opponent controls, it deals double that damage to that player or permanent instead.\n{1}{R/P}{R/P}, Discard two cards: Put an indestructible counter on Solphim, Mayhem Dominus. ({R/P} can be paid with either {R} or 2 life.)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Synthesis Pod
|
||||
ManaCost:3 PU
|
||||
ManaCost:3 UP
|
||||
Types:Artifact
|
||||
A:AB$ DigUntil | Cost$ 1 UP T ExileFromStack<1/Card.YouCtrl/spell you control> | ValidTgts$ Opponent | Valid$ Card.cmcEQX | FoundDestination$ Exile | RevealedDestination$ Library | ImprintFound$ True | Shuffle$ True | SubAbility$ DBPlay | SpellDescription$ Target opponent reveals cards from the top of their library until they reveal a card with mana value equal to 1 plus the exiled spell's mana value. Exile that card, then that player shuffles. You may cast that exiled card without paying its mana cost.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Imprinted | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
|
||||
@@ -7,7 +7,7 @@ SVar:LootTrig:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDes
|
||||
SVar:TrigDraw:DB$ Draw | SubAbility$ DBDiscard
|
||||
SVar:DBDiscard:DB$ Discard | Mode$ TgtChoose
|
||||
S:Mode$ Continuous | Affected$ Creature.Artifact+Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other artifact creatures you control get +1/+1.
|
||||
A:AB$ Animate | Cost$ PU | ValidTgts$ Creature.YouCtrl | Colors$ Blue | Types$ Artifact | SorcerySpeed$ True | SpellDescription$ Until end of turn, target creature you control becomes a blue artifact in addition to its other colors and types. Activate only as a sorcery. ({PU} can be paid with either {U} or 2 life.)
|
||||
A:AB$ Animate | Cost$ UP | ValidTgts$ Creature.YouCtrl | Colors$ Blue | Types$ Artifact | SorcerySpeed$ True | SpellDescription$ Until end of turn, target creature you control becomes a blue artifact in addition to its other colors and types. Activate only as a sorcery. ({U/P} can be paid with either {U} or 2 life.)
|
||||
DeckHints:Type$Artifact
|
||||
DeckHas:Ability$Discard
|
||||
Oracle:Other blue creatures you control have "Whenever this creature becomes tapped, draw a card, then discard a card."\nOther artifact creatures you control get + 1/+1.\n{P/U}: Until end of turn, target creature you control becomes a blue artifact in addition to its other colors and types. Activate only as a sorcery. ({U/P} can be paid with either {U} or 2 life.)
|
||||
Oracle:Other blue creatures you control have "Whenever this creature becomes tapped, draw a card, then discard a card."\nOther artifact creatures you control get + 1/+1.\n{U/P}: Until end of turn, target creature you control becomes a blue artifact in addition to its other colors and types. Activate only as a sorcery. ({U/P} can be paid with either {U} or 2 life.)
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Vraska, Betrayal's Sting
|
||||
ManaCost:4 B PB
|
||||
ManaCost:4 B BP
|
||||
Types:Legendary Planeswalker Vraska
|
||||
Loyalty:6
|
||||
K:Compleated
|
||||
@@ -12,4 +12,4 @@ A:AB$ Poison | Cost$ SubCounter<9/LOYALTY> | ValidTgts$ Player | Planeswalker$ T
|
||||
SVar:X:TargetedPlayer$PoisonCounters
|
||||
SVar:Difference:Number$9/Minus.X
|
||||
DeckHints:Ability$Counters & Keyword$Infect|Toxic|Poisonous
|
||||
Oracle:Compleated ({PB} can be paid with {B} or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[0]: You draw a card and you lose 1 life. Proliferate.\n[−2]: Target creature becomes a Treasure artifact with "{T}, Sacrifice this artifact: Add one mana of any color" and loses all other card types and abilities.\n[−9]: If target player has fewer than nine poison counters, they get a number of poison counters equal to the difference.
|
||||
Oracle:Compleated ({B/P} can be paid with {B} or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[0]: You draw a card and you lose 1 life. Proliferate.\n[−2]: Target creature becomes a Treasure artifact with "{T}, Sacrifice this artifact: Add one mana of any color" and loses all other card types and abilities.\n[−9]: If target player has fewer than nine poison counters, they get a number of poison counters equal to the difference.
|
||||
|
||||
@@ -6,8 +6,8 @@ K:Reach
|
||||
T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ TrigDouble | TriggerDescription$ At the beginning of each combat, double the power and toughness of each creature you control until end of turn.
|
||||
SVar:TrigDouble:DB$ RepeatEach | RepeatCards$ Creature.YouCtrl | RepeatSubAbility$ DBDouble
|
||||
SVar:DBDouble:DB$ Pump | Defined$ Remembered | NumAtt$ X | NumDef$ Y | Double$ True
|
||||
A:AB$ PutCounter | Cost$ 1 GP GP Sac<2/Creature.Other/Other creature> | Defined$ Self | CounterType$ Indestructible | CounterNum$ 1 | SpellDescription$ Put an indestructible counter on CARDNAME. ({GP} can be paid with either {G} or 2 life.)
|
||||
A:AB$ PutCounter | Cost$ 1 GP GP Sac<2/Creature.Other/Other creature> | Defined$ Self | CounterType$ Indestructible | CounterNum$ 1 | SpellDescription$ Put an indestructible counter on CARDNAME. ({G/P} can be paid with either {G} or 2 life.)
|
||||
SVar:X:Remembered$CardPower
|
||||
SVar:Y:Remembered$CardToughness
|
||||
DeckHas:Ability$Sacrifice|Counters
|
||||
Oracle:Reach\nAt the beginning of each combat, double the power and toughness of each creature you control until end of turn.\n{G/P}{G/P}, Sacrifice two other creatures: Put an indestructible counter on Zopandrel, Hunger Dominus. ({GP} can be paid with either {G} or 2 life.)
|
||||
Oracle:Reach\nAt the beginning of each combat, double the power and toughness of each creature you control until end of turn.\n{G/P}{G/P}, Sacrifice two other creatures: Put an indestructible counter on Zopandrel, Hunger Dominus. ({G/P} can be paid with either {G} or 2 life.)
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Vault Skirge
|
||||
ManaCost:1 PB
|
||||
ManaCost:1 BP
|
||||
Types:Artifact Creature Phyrexian Imp
|
||||
PT:1/1
|
||||
K:Flying
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Samurai Token
|
||||
ManaCost:no cost
|
||||
Types:Creature Samurai
|
||||
Colors:white
|
||||
PT:2/2
|
||||
K:Double Strike
|
||||
Oracle:Double strike
|
||||
@@ -99,7 +99,7 @@ public class CardReaderExperiments {
|
||||
for (int i = 0; i < lines.size(); i++) {
|
||||
String newLine = lines.get(i).replaceAll("\\{([WUBRG2P])([WUBRG])\\}", "\\{$1/$2\\}")
|
||||
.replaceAll("\\{([WUBRG])/2\\}", "\\{2/$1\\}")
|
||||
.replaceAll("\\{([WUBRG])/P\\}", "\\{P/$1\\}");
|
||||
.replaceAll("\\{([WUBRG])/P\\}", "\\{$1/P\\}");
|
||||
if (!newLine.equals(lines.get(i))) {
|
||||
updated = true;
|
||||
lines.set(i, newLine);
|
||||
|
||||
Reference in New Issue
Block a user