Merge branch 'cantblock' into 'master'

CantBlockBy as Static Ability

See merge request core-developers/forge!218
This commit is contained in:
Michael Kamensky
2018-02-18 08:05:59 +00:00
48 changed files with 291 additions and 203 deletions

View File

@@ -1802,6 +1802,10 @@ public class AiController {
List<SpellAbility> evolve = filterList(putCounter, SpellAbilityPredicates.hasParam("Evolve")); List<SpellAbility> evolve = filterList(putCounter, SpellAbilityPredicates.hasParam("Evolve"));
List<SpellAbility> token = filterListByApi(activePlayerSAs, ApiType.Token);
List<SpellAbility> pump = filterListByApi(activePlayerSAs, ApiType.Pump);
List<SpellAbility> pumpAll = filterListByApi(activePlayerSAs, ApiType.PumpAll);
// do mandatory discard early if hand is empty or has DiscardMe card // do mandatory discard early if hand is empty or has DiscardMe card
boolean discardEarly = false; boolean discardEarly = false;
CardCollectionView playerHand = player.getCardsIn(ZoneType.Hand); CardCollectionView playerHand = player.getCardsIn(ZoneType.Hand);
@@ -1810,6 +1814,11 @@ public class AiController {
result.addAll(mandatoryDiscard); result.addAll(mandatoryDiscard);
} }
// token should be added first so they might get the pump bonus
result.addAll(token);
result.addAll(pump);
result.addAll(pumpAll);
// do Evolve Trigger before other PutCounter SpellAbilities // do Evolve Trigger before other PutCounter SpellAbilities
// do putCounter before Draw/Discard because it can cause a Draw Trigger // do putCounter before Draw/Discard because it can cause a Draw Trigger
result.addAll(evolve); result.addAll(evolve);
@@ -1825,6 +1834,9 @@ public class AiController {
} }
result.addAll(activePlayerSAs); result.addAll(activePlayerSAs);
//need to reverse because of magic stack
Collections.reverse(result);
return result; return result;
} }

View File

@@ -229,6 +229,10 @@ public class EffectEffect extends SpellAbilityEffect {
eff.copyChangedTextFrom(hostCard); eff.copyChangedTextFrom(hostCard);
} }
if (sa.hasParam("AtEOT")) {
registerDelayedTrigger(sa, sa.getParam("AtEOT"), Lists.newArrayList(hostCard));
}
// Duration // Duration
final String duration = sa.getParam("Duration"); final String duration = sa.getParam("Duration");
if ((duration == null) || !duration.equals("Permanent")) { if ((duration == null) || !duration.equals("Permanent")) {

View File

@@ -18,7 +18,6 @@
package forge.game.card; package forge.game.card;
import com.esotericsoftware.minlog.Log; import com.esotericsoftware.minlog.Log;
import com.google.common.base.Function;
import com.google.common.collect.*; import com.google.common.collect.*;
import forge.GameCommand; import forge.GameCommand;
import forge.ImageKeys; import forge.ImageKeys;
@@ -1537,6 +1536,7 @@ public class Card extends GameEntity implements Comparable<Card> {
sbLong.append(keyword).append("\r\n"); sbLong.append(keyword).append("\r\n");
} else if (keyword.startsWith("Strive") || keyword.startsWith("Escalate") } else if (keyword.startsWith("Strive") || keyword.startsWith("Escalate")
|| keyword.startsWith("ETBReplacement") || keyword.startsWith("ETBReplacement")
|| keyword.startsWith("CantBeBlockedBy ")
|| keyword.equals("CARDNAME enters the battlefield tapped.") || keyword.equals("CARDNAME enters the battlefield tapped.")
|| keyword.startsWith("UpkeepCost")) { || keyword.startsWith("UpkeepCost")) {
} else if (keyword.startsWith("Provoke") || keyword.startsWith("Ingest") || keyword.equals("Unleash") } else if (keyword.startsWith("Provoke") || keyword.startsWith("Ingest") || keyword.equals("Unleash")
@@ -1546,7 +1546,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second")) || (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))
|| keyword.equals("Suspend") // for the ones without amounnt || keyword.equals("Suspend") // for the ones without amounnt
|| keyword.equals("Hideaway") || keyword.equals("Ascend") || keyword.equals("Hideaway") || keyword.equals("Ascend")
|| keyword.equals("Totem armor") || keyword.equals("Totem armor") || keyword.equals("Battle cry")
|| keyword.equals("Devoid")){ || keyword.equals("Devoid")){
sbLong.append(keyword + " (" + inst.getReminderText() + ")"); sbLong.append(keyword + " (" + inst.getReminderText() + ")");
} else if (keyword.startsWith("Modular") || keyword.startsWith("Bloodthirst") } else if (keyword.startsWith("Modular") || keyword.startsWith("Bloodthirst")
@@ -1595,12 +1595,9 @@ public class Card extends GameEntity implements Comparable<Card> {
|| keyword.startsWith("Amplify") || keyword.startsWith("Ninjutsu") || keyword.startsWith("Amplify") || keyword.startsWith("Ninjutsu")
|| keyword.startsWith("Cycling") || keyword.startsWith("TypeCycling")) { || keyword.startsWith("Cycling") || keyword.startsWith("TypeCycling")) {
// keyword parsing takes care of adding a proper description // keyword parsing takes care of adding a proper description
} else if (keyword.startsWith("CantBeBlockedBy")) { } else if (keyword.startsWith("CantBeBlockedByAmount")) {
sbLong.append(getName()).append(" can't be blocked "); sbLong.append(getName()).append(" can't be blocked ");
if (keyword.startsWith("CantBeBlockedByAmount")) sbLong.append(getTextForKwCantBeBlockedByAmount(keyword));
sbLong.append(getTextForKwCantBeBlockedByAmount(keyword));
else
sbLong.append(getTextForKwCantBeBlockedByType(keyword));
} else if (keyword.startsWith("CantBlock")) { } else if (keyword.startsWith("CantBlock")) {
sbLong.append(getName()).append(" can't block "); sbLong.append(getName()).append(" can't block ");
if (keyword.contains("CardUID")) { if (keyword.contains("CardUID")) {
@@ -1657,112 +1654,6 @@ public class Card extends GameEntity implements Comparable<Card> {
return byClause + Lang.nounWithNumeral(cnt, isLT ? "or more creature" : "creature"); return byClause + Lang.nounWithNumeral(cnt, isLT ? "or more creature" : "creature");
} }
private static String getTextForKwCantBeBlockedByType(final String keyword) {
boolean negative = true;
final List<String> subs = Lists.newArrayList(TextUtil.split(keyword.split(" ", 2)[1], ','));
final List<List<String>> subsAnd = Lists.newArrayList();
final List<String> orClauses = Lists.newArrayList();
for (final String expession : subs) {
final List<String> parts = Lists.newArrayList(expession.split("[.+]"));
for (int p = 0; p < parts.size(); p++) {
final String part = parts.get(p);
if (part.equalsIgnoreCase("creature")) {
parts.remove(p--);
continue;
}
// based on suppossition that each expression has at least 1 predicate except 'creature'
negative &= part.contains("non") || part.contains("without");
}
subsAnd.add(parts);
}
final boolean allNegative = negative;
final String byClause = allNegative ? "except by " : "by ";
final Function<Pair<Boolean, String>, String> withToString = new Function<Pair<Boolean, String>, String>() {
@Override
public String apply(Pair<Boolean, String> inp) {
boolean useNon = inp.getKey() == allNegative;
return (useNon ? "*NO* " : "") + inp.getRight();
}
};
for (final List<String> andOperands : subsAnd) {
final List<Pair<Boolean, String>> prependedAdjectives = Lists.newArrayList();
final List<Pair<Boolean, String>> postponedAdjectives = Lists.newArrayList();
String creatures = null;
for (String part : andOperands) {
boolean positive = true;
if (part.startsWith("non")) {
part = part.substring(3);
positive = false;
}
if (part.startsWith("with")) {
positive = !part.startsWith("without");
postponedAdjectives.add(Pair.of(positive, part.substring(positive ? 4 : 7)));
} else if (part.startsWith("powerLEX")) {// Kraken of the Straits
postponedAdjectives.add(Pair.of(true, "power less than the number of islands you control"));
} else if (part.startsWith("power")) {
int kwLength = 5;
String opName = Expressions.operatorName(part.substring(kwLength, kwLength + 2));
String operand = part.substring(kwLength + 2);
postponedAdjectives.add(Pair.of(true, "power" + opName + operand));
} else if (CardType.isACreatureType(part)) {
if (creatures != null && CardType.isACreatureType(creatures)) { // e.g. Kor Castigator
creatures = StringUtils.capitalize(Lang.getPlural(part)) + creatures;
} else {
creatures = StringUtils.capitalize(Lang.getPlural(part)) + (creatures == null ? "" : " or " + creatures);
}
// Kor Castigator and other similar creatures with composite subtype Eldrazi Scion in their text
creatures = TextUtil.fastReplace(creatures, "Scions or Eldrazis", "Eldrazi Scions");
} else {
prependedAdjectives.add(Pair.of(positive, part.toLowerCase()));
}
}
StringBuilder sbShort = new StringBuilder();
if (allNegative) {
boolean isFirst = true;
for (Pair<Boolean, String> pre : prependedAdjectives) {
if (isFirst) isFirst = false;
else sbShort.append(" and/or ");
boolean useNon = pre.getKey() == allNegative;
if (useNon) sbShort.append("non-");
sbShort.append(pre.getValue()).append(" ").append(creatures == null ? "creatures" : creatures);
}
if (prependedAdjectives.isEmpty())
sbShort.append(creatures == null ? "creatures" : creatures);
if (!postponedAdjectives.isEmpty()) {
if (!prependedAdjectives.isEmpty()) {
sbShort.append(" and/or creatures");
}
sbShort.append(" with ");
sbShort.append(Lang.joinHomogenous(postponedAdjectives, withToString, allNegative ? "or" : "and"));
}
} else {
for (Pair<Boolean, String> pre : prependedAdjectives) {
boolean useNon = pre.getKey() == allNegative;
if (useNon) sbShort.append("non-");
sbShort.append(pre.getValue()).append(" ");
}
sbShort.append(creatures == null ? "creatures" : creatures);
if (!postponedAdjectives.isEmpty()) {
sbShort.append(" with ");
sbShort.append(Lang.joinHomogenous(postponedAdjectives, withToString, allNegative ? "or" : "and"));
}
}
orClauses.add(sbShort.toString());
}
return byClause + StringUtils.join(orClauses, " or ") + ".";
}
// get the text of the abilities of a card // get the text of the abilities of a card
public String getAbilityText() { public String getAbilityText() {
return getAbilityText(currentState); return getAbilityText(currentState);
@@ -1910,6 +1801,33 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
} }
// CantBlockBy static abilities
if (game != null && isCreature() && isInZone(ZoneType.Battlefield)) {
for (final Card ca : game.getCardsIn(ZoneType.listValueOf("Battlefield,Command"))) {
if (equals(ca)) {
continue;
}
for (final StaticAbility stAb : ca.getStaticAbilities()) {
if (stAb.isSecondary() ||
!stAb.getParam("Mode").equals("CantBlockBy") ||
stAb.isSuppressed() || !stAb.checkConditions() ||
!stAb.hasParam("ValidAttacker")) {
continue;
}
final Card host = stAb.getHostCard();
if (isValid(stAb.getParam("ValidAttacker").split(","), host.getController(), host, null)) {
String desc = stAb.toString();
desc = TextUtil.fastReplace(desc, "CARDNAME", host.getName());
if (host.getEffectSource() != null) {
desc = TextUtil.fastReplace(desc, "EFFECTSOURCE", host.getEffectSource().getName());
}
sb.append(desc);
sb.append("\r\n");
}
}
}
}
// NOTE: // NOTE:
if (sb.toString().contains(" (NOTE: ")) { if (sb.toString().contains(" (NOTE: ")) {
sb.insert(sb.indexOf("(NOTE: "), "\r\n"); sb.insert(sb.indexOf("(NOTE: "), "\r\n");

View File

@@ -17,6 +17,7 @@
*/ */
package forge.game.card; package forge.game.card;
import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@@ -51,10 +52,12 @@ import forge.game.trigger.TriggerHandler;
import forge.game.zone.Zone; import forge.game.zone.Zone;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.Expressions;
import forge.util.Lang; import forge.util.Lang;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.collect.FCollectionView; import forge.util.collect.FCollectionView;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.*; import java.util.*;
import java.util.Map.Entry; import java.util.Map.Entry;
@@ -2114,6 +2117,18 @@ public class CardFactoryUtil {
sa.setBlessing(true); sa.setBlessing(true);
} }
} }
} else if (keyword.equals("Battle cry")) {
final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True "
+ " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")";
String pumpStr = "DB$ PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1";
SpellAbility sa = AbilityFactory.getAbility(pumpStr, card);
sa.setIntrinsic(intrinsic);
final Trigger trigger = TriggerHandler.parseTrigger(trig, card, intrinsic);
trigger.setOverridingAbility(sa);
inst.addTrigger(trigger);
} else if (keyword.startsWith("Bushido")) { } else if (keyword.startsWith("Bushido")) {
final String[] k = keyword.split(" ", 2); final String[] k = keyword.split(" ", 2);
final String n = k[1]; final String n = k[1];
@@ -4214,6 +4229,11 @@ public class CardFactoryUtil {
} else if (keyword.equals("Undaunted")) { } else if (keyword.equals("Undaunted")) {
effect = "Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Secondary$ True" effect = "Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Secondary$ True"
+ "| Amount$ Undaunted | EffectZone$ All | Description$ Undaunted (" + inst.getReminderText() + ")"; + "| Amount$ Undaunted | EffectZone$ All | Description$ Undaunted (" + inst.getReminderText() + ")";
} else if (keyword.startsWith("CantBeBlockedBy ")) {
final String[] k = keyword.split(" ", 2);
effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ " + k[1]
+ " | Description$ CARDNAME can't be blocked " + getTextForKwCantBeBlockedByType(keyword);
} }
if (effect != null) { if (effect != null) {
@@ -4265,4 +4285,110 @@ public class CardFactoryUtil {
return as; return as;
// ETBReplacementMove(sa.getHostCard(), null)); // ETBReplacementMove(sa.getHostCard(), null));
} }
private static String getTextForKwCantBeBlockedByType(final String keyword) {
boolean negative = true;
final List<String> subs = Lists.newArrayList(TextUtil.split(keyword.split(" ", 2)[1], ','));
final List<List<String>> subsAnd = Lists.newArrayList();
final List<String> orClauses = Lists.newArrayList();
for (final String expession : subs) {
final List<String> parts = Lists.newArrayList(expession.split("[.+]"));
for (int p = 0; p < parts.size(); p++) {
final String part = parts.get(p);
if (part.equalsIgnoreCase("creature")) {
parts.remove(p--);
continue;
}
// based on suppossition that each expression has at least 1 predicate except 'creature'
negative &= part.contains("non") || part.contains("without");
}
subsAnd.add(parts);
}
final boolean allNegative = negative;
final String byClause = allNegative ? "except by " : "by ";
final Function<Pair<Boolean, String>, String> withToString = new Function<Pair<Boolean, String>, String>() {
@Override
public String apply(Pair<Boolean, String> inp) {
boolean useNon = inp.getKey() == allNegative;
return (useNon ? "*NO* " : "") + inp.getRight();
}
};
for (final List<String> andOperands : subsAnd) {
final List<Pair<Boolean, String>> prependedAdjectives = Lists.newArrayList();
final List<Pair<Boolean, String>> postponedAdjectives = Lists.newArrayList();
String creatures = null;
for (String part : andOperands) {
boolean positive = true;
if (part.startsWith("non")) {
part = part.substring(3);
positive = false;
}
if (part.startsWith("with")) {
positive = !part.startsWith("without");
postponedAdjectives.add(Pair.of(positive, part.substring(positive ? 4 : 7)));
} else if (part.startsWith("powerLEX")) {// Kraken of the Straits
postponedAdjectives.add(Pair.of(true, "power less than the number of islands you control"));
} else if (part.startsWith("power")) {
int kwLength = 5;
String opName = Expressions.operatorName(part.substring(kwLength, kwLength + 2));
String operand = part.substring(kwLength + 2);
postponedAdjectives.add(Pair.of(true, "power" + opName + operand));
} else if (CardType.isACreatureType(part)) {
if (creatures != null && CardType.isACreatureType(creatures)) { // e.g. Kor Castigator
creatures = StringUtils.capitalize(Lang.getPlural(part)) + creatures;
} else {
creatures = StringUtils.capitalize(Lang.getPlural(part)) + (creatures == null ? "" : " or " + creatures);
}
// Kor Castigator and other similar creatures with composite subtype Eldrazi Scion in their text
creatures = TextUtil.fastReplace(creatures, "Scions or Eldrazis", "Eldrazi Scions");
} else {
prependedAdjectives.add(Pair.of(positive, part.toLowerCase()));
}
}
StringBuilder sbShort = new StringBuilder();
if (allNegative) {
boolean isFirst = true;
for (Pair<Boolean, String> pre : prependedAdjectives) {
if (isFirst) isFirst = false;
else sbShort.append(" and/or ");
boolean useNon = pre.getKey() == allNegative;
if (useNon) sbShort.append("non-");
sbShort.append(pre.getValue()).append(" ").append(creatures == null ? "creatures" : creatures);
}
if (prependedAdjectives.isEmpty())
sbShort.append(creatures == null ? "creatures" : creatures);
if (!postponedAdjectives.isEmpty()) {
if (!prependedAdjectives.isEmpty()) {
sbShort.append(" and/or creatures");
}
sbShort.append(" with ");
sbShort.append(Lang.joinHomogenous(postponedAdjectives, withToString, allNegative ? "or" : "and"));
}
} else {
for (Pair<Boolean, String> pre : prependedAdjectives) {
boolean useNon = pre.getKey() == allNegative;
if (useNon) sbShort.append("non-");
sbShort.append(pre.getValue()).append(" ");
}
sbShort.append(creatures == null ? "creatures" : creatures);
if (!postponedAdjectives.isEmpty()) {
sbShort.append(" with ");
sbShort.append(Lang.joinHomogenous(postponedAdjectives, withToString, allNegative ? "or" : "and"));
}
}
orClauses.add(sbShort.toString());
}
return byClause + StringUtils.join(orClauses, " or ") + ".";
}
} }

View File

@@ -955,6 +955,7 @@ public class CombatUtil {
return false; return false;
} }
final Game game = attacker.getGame();
if (!CombatUtil.canBlock(blocker, nextTurn)) { if (!CombatUtil.canBlock(blocker, nextTurn)) {
return false; return false;
} }
@@ -995,32 +996,15 @@ public class CombatUtil {
return false; return false;
} }
for (KeywordInterface inst1 : attacker.getKeywords()) { // CantBlockBy static abilities
String k = inst1.getOriginal(); for (final Card ca : game.getCardsIn(ZoneType.listValueOf("Battlefield,Command"))) {
if (k.startsWith("CantBeBlockedBy ")) { for (final StaticAbility stAb : ca.getStaticAbilities()) {
final String[] n = k.split(" ", 2); if (stAb.applyAbility("CantBlockBy", attacker, blocker)) {
final String[] restrictions = n[1].split(","); return false;
if (blocker.isValid(restrictions, attacker.getController(), attacker, null)) {
boolean stillblock = false;
//Dragon Hunter check
if (n[1].contains("withoutReach") && blocker.hasStartOfKeyword("IfReach")) {
for (KeywordInterface inst2 : blocker.getKeywords()) {
String k2 = inst2.getOriginal();
if (k2.startsWith("IfReach")) {
String n2[] = k2.split(":");
if (attacker.getType().hasCreatureType(n2[1])) {
stillblock = true;
break;
}
}
}
}
if (!stillblock) {
return false;
}
} }
} }
} }
for (KeywordInterface inst : blocker.getKeywords()) { for (KeywordInterface inst : blocker.getKeywords()) {
String keyword = inst.getOriginal(); String keyword = inst.getOriginal();
if (keyword.startsWith("CantBlockCardUID")) { if (keyword.startsWith("CantBlockCardUID")) {

View File

@@ -453,6 +453,8 @@ public class StaticAbility extends CardTraitBase implements Comparable<StaticAbi
if (mode.equals("CantAttack")) { if (mode.equals("CantAttack")) {
return StaticAbilityCantAttackBlock.applyCantAttackAbility(this, card, target); return StaticAbilityCantAttackBlock.applyCantAttackAbility(this, card, target);
} else if (mode.equals("CantBlockBy") && target instanceof Card) {
return StaticAbilityCantAttackBlock.applyCantBlockByAbility(this, card, (Card)target);
} }
return false; return false;

View File

@@ -23,6 +23,7 @@ import forge.game.card.CardCollectionView;
import forge.game.card.CardFactoryUtil; import forge.game.card.CardFactoryUtil;
import forge.game.card.CardPredicates; import forge.game.card.CardPredicates;
import forge.game.cost.Cost; import forge.game.cost.Cost;
import forge.game.keyword.KeywordInterface;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
@@ -89,6 +90,46 @@ public class StaticAbilityCantAttackBlock {
return true; return true;
} }
/**
* returns true if attacker can be blocked by blocker
* @param stAb
* @param attacker
* @param blocker
* @return boolean
*/
public static boolean applyCantBlockByAbility(final StaticAbility stAb, final Card attacker, final Card blocker) {
final Card host = stAb.getHostCard();
if (stAb.hasParam("ValidAttacker")) {
if (!attacker.isValid(stAb.getParam("ValidAttacker").split(","), host.getController(), host, null)) {
return false;
}
}
if (stAb.hasParam("ValidBlocker")) {
for (final String v : stAb.getParam("ValidBlocker").split(",")) {
if (blocker.isValid(v, host.getController(), host, null)) {
boolean stillblock = false;
//Dragon Hunter check
if (v.contains("withoutReach") && blocker.hasStartOfKeyword("IfReach")) {
for (KeywordInterface inst : blocker.getKeywords()) {
String k = inst.getOriginal();
if (k.startsWith("IfReach")) {
String n[] = k.split(":");
if (attacker.getType().hasCreatureType(n[1])) {
stillblock = true;
break;
}
}
}
}
if (!stillblock) {
return true;
}
}
}
}
return false;
}
/** /**
* TODO Write javadoc for this method. * TODO Write javadoc for this method.
* *

View File

@@ -2,7 +2,6 @@ Name:Accorder Paladin
ManaCost:1 W ManaCost:1 W
Types:Creature Human Knight Types:Creature Human Knight
PT:3/1 PT:3/1
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) K:Battle cry
SVar:TrigBattleCry:DB$ PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/accorder_paladin.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/accorder_paladin.jpg
Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)

View File

@@ -2,7 +2,6 @@ Name:Arctic Foxes
ManaCost:1 W ManaCost:1 W
Types:Creature Fox Types:Creature Fox
PT:1/1 PT:1/1
S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CantBeBlockedBy Creature.powerGE2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME can't be blocked by creatures with power 2 or greater as long as defending player controls a snow land. S:Mode$ CantBlockBy | ValidAttacker$ Card.Self | ValidBlocker$ Creature.powerGE2 | IsPresent$ Land.Snow+DefenderCtrl | Description$ CARDNAME can't be blocked by creatures with power 2 or greater as long as defending player controls a snow land.
SVar:X:Count$Valid Land.Snow+DefenderCtrl
SVar:Picture:http://www.wizards.com/global/images/magic/general/arctic_foxes.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/arctic_foxes.jpg
Oracle:Arctic Foxes can't be blocked by creatures with power 2 or greater as long as defending player controls a snow land. Oracle:Arctic Foxes can't be blocked by creatures with power 2 or greater as long as defending player controls a snow land.

View File

@@ -3,9 +3,8 @@ 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 | AddHiddenKeyword$ CantBeBlockedBy Creature.Black | Description$ Enchanted creature can't be blocked by black creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.Black | Description$ Enchanted creature can't be blocked by black creatures.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a black permanent. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Permanent.Black+OppCtrl | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a black permanent.
SVar:X:Count$Valid Permanent.Black+OppCtrl
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/black_scarab.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/black_scarab.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked by black creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a black permanent. Oracle:Enchant creature\nEnchanted creature can't be blocked by black creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a black permanent.

View File

@@ -2,7 +2,7 @@ Name:Blazing Torch
ManaCost:1 ManaCost:1
Types:Artifact Equipment Types:Artifact Equipment
K:Equip 1 K:Equip 1
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.Vampire,Creature.Zombie | Description$ Equipped creature can't be blocked by Vampires or Zombies. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EquippedBy | ValidBlocker$ Creature.Vampire,Creature.Zombie | Description$ Equipped creature can't be blocked by Vampires or Zombies.
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddAbility$ TorchDamage | Description$ Equipped creature has "{T}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to target creature or player." S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddAbility$ TorchDamage | Description$ Equipped creature has "{T}, Sacrifice Blazing Torch: Blazing Torch deals 2 damage to target creature or player."
SVar:TorchDamage:AB$ DealDamage | Cost$ T Sac<1/Card.Attached+namedBlazing Torch/equipped Blazing Torch> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 2 | DamageSource$ Sacrificed | SpellDescription$ Blazing Torch deals 2 damage to target creature or player. SVar:TorchDamage:AB$ DealDamage | Cost$ T Sac<1/Card.Attached+namedBlazing Torch/equipped Blazing Torch> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 2 | DamageSource$ Sacrificed | SpellDescription$ Blazing Torch deals 2 damage to target creature or player.
SVar:NonStackingAttachEffect:True SVar:NonStackingAttachEffect:True

View File

@@ -3,9 +3,8 @@ 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 | AddHiddenKeyword$ CantBeBlockedBy Creature.Blue | Description$ Enchanted creature can't be blocked by blue creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.Blue | Description$ Enchanted creature can't be blocked by blue creatures.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a blue permanent. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Permanent.Blue+OppCtrl | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a blue permanent.
SVar:X:Count$Valid Permanent.Blue+OppCtrl
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/blue_scarab.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/blue_scarab.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked by blue creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a blue permanent. Oracle:Enchant creature\nEnchanted creature can't be blocked by blue creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a blue permanent.

View File

@@ -1,7 +1,7 @@
Name:Bower Passage Name:Bower Passage
ManaCost:1 G ManaCost:1 G
Types:Enchantment Types:Enchantment
S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CantBeBlockedBy Creature.withFlying | Description$ Creatures with flying can't block creatures you control. S:Mode$ CantBlockBy | ValidAttacker$ Creature.YouCtrl | ValidBlocker$ Creature.withFlying | Description$ Creatures with flying can't block creatures you control.
SVar:NonStackingEffect:True SVar:NonStackingEffect:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/bower_passage.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/bower_passage.jpg
Oracle:Creatures with flying can't block creatures you control. Oracle:Creatures with flying can't block creatures you control.

View File

@@ -3,7 +3,7 @@ ManaCost:1 G
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.withoutFlying+withoutReach | Description$ Enchanted creature can't be blocked except by creatures with flying or reach. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.withoutFlying+withoutReach | Description$ Enchanted creature can't be blocked except by creatures with flying or reach.
S:Mode$ CantTarget | ValidCard$ Card.EnchantedBy | Activator$ Opponent | Description$ Enchanted creature can't be the target of spells or abilities your opponents control. S:Mode$ CantTarget | ValidCard$ Card.EnchantedBy | Activator$ Opponent | Description$ Enchanted creature can't be the target of spells or abilities your opponents control.
SVar:Picture:http://www.wizards.com/global/images/magic/general/canopy_cover.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/canopy_cover.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked except by creatures with flying or reach.\nEnchanted creature can't be the target of spells or abilities your opponents control. Oracle:Enchant creature\nEnchanted creature can't be blocked except by creatures with flying or reach.\nEnchanted creature can't be the target of spells or abilities your opponents control.

View File

@@ -2,9 +2,10 @@ Name:Champion of Lambholt
ManaCost:1 G G ManaCost:1 G G
Types:Creature Human Warrior Types:Creature Human Warrior
PT:1/1 PT:1/1
S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddKeyword$ CantBeBlockedBy Creature.YouDontCtrl+powerLTHostCardPower | Description$ Creatures with power less than CARDNAME's power can't block creatures you control. S:Mode$ CantBlockBy | ValidAttacker$ Creature.YouCtrl | ValidBlocker$ Creature.YouDontCtrl+powerLTX | Description$ Creatures with power less than CARDNAME's power can't block creatures you control.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature enters the battlefield under your control, put a +1/+1 counter on CARDNAME. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature enters the battlefield under your control, put a +1/+1 counter on CARDNAME.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
SVar:BuffedBy:Creature SVar:BuffedBy:Creature
SVar:X:Count$CardPower
SVar:Picture:http://www.wizards.com/global/images/magic/general/champion_of_lambholt.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/champion_of_lambholt.jpg
Oracle:Creatures with power less than Champion of Lambholt's power can't block creatures you control.\nWhenever another creature enters the battlefield under your control, put a +1/+1 counter on Champion of Lambholt. Oracle:Creatures with power less than Champion of Lambholt's power can't block creatures you control.\nWhenever another creature enters the battlefield under your control, put a +1/+1 counter on Champion of Lambholt.

View File

@@ -3,6 +3,7 @@ ManaCost:U
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ U | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ U | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Permanent.EnchantedBy | AddKeyword$ Phasing | AddHiddenKeyword$ CantBeBlockedBy Creature.nonWall | Description$ Enchanted creature has phasing and can't be blocked except by Walls. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Phasing | Description$ Enchanted creature has phasing and can't be blocked except by Walls.
S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.nonWall | Secondary$ True | Description$ Enchanted creature can't be blocked except by Walls.
SVar:Picture:http://www.wizards.com/global/images/magic/general/cloak_of_invisibility.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/cloak_of_invisibility.jpg
Oracle:Enchant creature\nEnchanted creature has phasing and can't be blocked except by Walls. (It phases in or out before its controller untaps during each of his or her untap steps. While it's phased out, it's treated as though it doesn't exist.) Oracle:Enchant creature\nEnchanted creature has phasing and can't be blocked except by Walls. (It phases in or out before its controller untaps during each of his or her untap steps. While it's phased out, it's treated as though it doesn't exist.)

View File

@@ -1,7 +1,8 @@
Name:Dread Charge Name:Dread Charge
ManaCost:3 B ManaCost:3 B
Types:Sorcery Types:Sorcery
A:SP$ PumpAll | Cost$ 3 B | ValidCards$ Creature.Black+YouCtrl | KW$ HIDDEN CantBeBlockedBy Creature.nonBlack | SpellDescription$ Black creatures you control can't be blocked this turn except by black creatures. A:SP$ Effect | Cost$ 3 B | Name$ Dread Charge Effect | StaticAbilities$ KWPump | SpellDescription$ Black creatures you control can't be blocked this turn except by black creatures.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.Black+YouCtrl | ValidBlocker$ Creature.nonBlack | EffectZone$ Command | Description$ Black creatures you control can't be blocked this turn except by black creatures.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/dread_charge.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/dread_charge.jpg
Oracle:Black creatures you control can't be blocked this turn except by black creatures. Oracle:Black creatures you control can't be blocked this turn except by black creatures.

View File

@@ -3,6 +3,7 @@ ManaCost:R
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ R | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ R | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddHiddenKeyword$ CantBeBlockedBy Creature.withFlying | Description$ Enchanted creature gets +2/+0 and can't be blocked by creatures with flying. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | Description$ Enchanted creature gets +2/+0 and can't be blocked by creatures with flying.
S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.withFlying | Secondary$ True | Description$ Enchanted creature can't be blocked by creatures with flying.
SVar:Picture:http://www.wizards.com/global/images/magic/general/dust_corona.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/dust_corona.jpg
Oracle:Enchant creature\nEnchanted creature gets +2/+0 and can't be blocked by creatures with flying. Oracle:Enchant creature\nEnchanted creature gets +2/+0 and can't be blocked by creatures with flying.

View File

@@ -3,7 +3,7 @@ ManaCost:2 U
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CantBeBlockedBy Spirit | Description$ Enchanted creature can't be blocked by Spirits. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.Spirit | Description$ Enchanted creature can't be blocked by Spirits.
A:AB$ ChangeZone | Cost$ 1 U | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand. A:AB$ ChangeZone | Cost$ 1 U | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand.
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:NonStackingAttachEffect:True SVar:NonStackingAttachEffect:True

View File

@@ -2,7 +2,8 @@ Name:Firefright Mage
ManaCost:R ManaCost:R
Types:Creature Goblin Spellshaper Types:Creature Goblin Spellshaper
PT:1/1 PT:1/1
A:AB$ Pump | Cost$ 1 R T Discard<1/Card> | KW$ HIDDEN CantBeBlockedBy Creature.nonArtifact+nonRed | ValidTgts$ Creature | SpellDescription$ Target creature can't be blocked this turn except by artifact creatures and/or red creatures. A:AB$ Effect | Cost$ 1 R T Discard<1/Card> | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature | RememberObjects$ Targeted | Name$ Firefright Mage's Effect | StaticAbilities$ KWPump | SpellDescription$ Target creature can't be blocked this turn except by artifact creatures and/or red creatures.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.Remembered | ValidBlocker$ Creature.nonArtifact+nonRed | EffectZone$ Command | Description$ Remembered creature can't be blocked this turn except by artifact creatures and/or red creatures.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/firefright_mage.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/firefright_mage.jpg
Oracle:{1}{R}, {T}, Discard a card: Target creature can't be blocked this turn except by artifact creatures and/or red creatures. Oracle:{1}{R}, {T}, Discard a card: Target creature can't be blocked this turn except by artifact creatures and/or red creatures.

View File

@@ -2,6 +2,7 @@ Name:Ghirapur Guide
ManaCost:2 G ManaCost:2 G
Types:Creature Elf Scout Types:Creature Elf Scout
PT:3/2 PT:3/2
A:AB$ Pump | Cost$ 2 G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature | KW$ HIDDEN CantBeBlockedBy Creature.powerLE2 | SpellDescription$ Target creature you control can't be blocked by creatures with power 2 or less this turn. A:AB$ Effect | Cost$ 2 G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature | RememberObjects$ Targeted | Name$ Ghirapur Guide's Effect | StaticAbilities$ KWPump | SpellDescription$ Target creature you control can't be blocked by creatures with power 2 or less this turn.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.Remembered | ValidBlocker$ Creature.powerLE2 | EffectZone$ Command | Description$ Remembered creature can't be blocked by creatures with power 2 or less this turn.
SVar:Picture:http://www.wizards.com/global/images/magic/general/ghirapur_guide.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/ghirapur_guide.jpg
Oracle:{2}{G}: Target creature you control can't be blocked by creatures with power 2 or less this turn. Oracle:{2}{G}: Target creature you control can't be blocked by creatures with power 2 or less this turn.

View File

@@ -2,7 +2,6 @@ Name:Goblin Wardriver
ManaCost:R R ManaCost:R R
Types:Creature Goblin Warrior Types:Creature Goblin Warrior
PT:2/2 PT:2/2
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) K:Battle cry
SVar:TrigBattleCry:DB$PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_wardriver.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_wardriver.jpg
Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)

View File

@@ -3,9 +3,8 @@ 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 | AddHiddenKeyword$ CantBeBlockedBy Creature.Green | Description$ Enchanted creature can't be blocked by green creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.Green | Description$ Enchanted creature can't be blocked by green creatures.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a green permanent. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Permanent.Green+OppCtrl | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a green permanent.
SVar:X:Count$Valid Permanent.Green+OppCtrl
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/green_scarab.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/green_scarab.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked by green creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a green permanent. Oracle:Enchant creature\nEnchanted creature can't be blocked by green creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a green permanent.

View File

@@ -2,7 +2,7 @@ Name:Heat Wave
ManaCost:2 R ManaCost:2 R
Types:Enchantment Types:Enchantment
K:Cumulative upkeep:R K:Cumulative upkeep:R
S:Mode$ Continuous | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CantBeBlockedBy Creature.Blue | Description$ Blue creatures can't block creatures you control. S:Mode$ CantBlockBy | ValidAttacker$ Creature.YouCtrl | ValidBlocker$ Creature.Blue | Description$ Blue creatures can't block creatures you control.
S:Mode$ CantBlockUnless | ValidCard$ Creature.nonBlue | Attacker$ Creature.YouCtrl | Cost$ PayLife<1> | Description$ Nonblue creatures can't block creatures you control unless their controller pays 1 life for each blocking creature he or she controls. S:Mode$ CantBlockUnless | ValidCard$ Creature.nonBlue | Attacker$ Creature.YouCtrl | Cost$ PayLife<1> | Description$ Nonblue creatures can't block creatures you control unless their controller pays 1 life for each blocking creature he or she controls.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/heat_wave.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/heat_wave.jpg

View File

@@ -2,9 +2,8 @@ Name:Hero of Bladehold
ManaCost:2 W W ManaCost:2 W W
Types:Creature Human Knight Types:Creature Human Knight
PT:3/4 PT:3/4
K:Battle cry
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks, create two 1/1 white Soldier creature tokens that are tapped and attacking. T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks, create two 1/1 white Soldier creature tokens that are tapped and attacking.
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)
SVar:TrigBattleCry:DB$ PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenName$ Soldier | TokenTypes$ Creature,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenTapped$ True | TokenAttacking$ True | TokenImage$ w 1 1 soldier SOM SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenName$ Soldier | TokenTypes$ Creature,Soldier | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenTapped$ True | TokenAttacking$ True | TokenImage$ w 1 1 soldier SOM
SVar:HasAttackEffect:TRUE SVar:HasAttackEffect:TRUE
SVar:Picture:http://www.wizards.com/global/images/magic/general/hero_of_bladehold.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/hero_of_bladehold.jpg

View File

@@ -3,9 +3,8 @@ ManaCost:2 R R
Types:Creature Human Knight Types:Creature Human Knight
PT:4/2 PT:4/2
K:Haste K:Haste
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) K:Battle cry
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigEffect | TriggerDescription$ When CARDNAME attacks, creatures with power 1 or less can't block this turn. T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigEffect | TriggerDescription$ When CARDNAME attacks, creatures with power 1 or less can't block this turn.
SVar:TrigBattleCry:DB$ PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:TrigEffect:DB$ Effect | Name$ Hero of Oxid Ridge Effect | StaticAbilities$ KWPump SVar:TrigEffect:DB$ Effect | Name$ Hero of Oxid Ridge Effect | StaticAbilities$ KWPump
SVar:KWPump:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.powerLE1 | AddHiddenKeyword$ CARDNAME can't block. | Description$ Creatures with power 1 or less can't block this turn. SVar:KWPump:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.powerLE1 | AddHiddenKeyword$ CARDNAME can't block. | Description$ Creatures with power 1 or less can't block this turn.
SVar:Picture:http://www.wizards.com/global/images/magic/general/hero_of_oxid_ridge.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/hero_of_oxid_ridge.jpg

View File

@@ -3,6 +3,7 @@ ManaCost:2 U
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 2 U | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.enchanted+YouCtrl | AddPower$ 1 | AddToughness$ 1 | AddHiddenKeyword$ CantBeBlockedBy Creature.withoutDefender | Description$ Creatures you control that are enchanted get +1/+1 and can't be blocked except by creatures with defender. S:Mode$ Continuous | Affected$ Creature.enchanted+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Creatures you control that are enchanted get +1/+1 and can't be blocked except by creatures with defender.
S:Mode$ CantBlockBy | ValidAttacker$ Creature.enchanted+YouCtrl | ValidBlocker$ Creature.withoutDefender | Secondary$ True | Description$ Creatures you control can't be blocked except by creatures with defender.
SVar:Picture:http://www.wizards.com/global/images/magic/general/infiltrators_magemark.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/infiltrators_magemark.jpg
Oracle:Enchant creature\nCreatures you control that are enchanted get +1/+1 and can't be blocked except by creatures with defender. Oracle:Enchant creature\nCreatures you control that are enchanted get +1/+1 and can't be blocked except by creatures with defender.

View File

@@ -3,6 +3,6 @@ ManaCost:U U
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ U U | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ U U | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.nonWall | Description$ Enchanted creature can't be blocked except by Walls. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.nonWall | Description$ Enchanted creature can't be blocked except by Walls.
SVar:Picture:http://www.wizards.com/global/images/magic/general/invisibility.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/invisibility.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked except by Walls. Oracle:Enchant creature\nEnchanted creature can't be blocked except by Walls.

View File

@@ -1,6 +1,7 @@
Name:Joven's Tools Name:Joven's Tools
ManaCost:6 ManaCost:6
Types:Artifact Types:Artifact
A:AB$ Pump | Cost$ 4 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CantBeBlockedBy Creature.nonWall | SpellDescription$ Target creature can't be blocked this turn except by Walls. A:AB$ Effect | Cost$ 4 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberObjects$ Targeted | Name$ Joven's Tools' Effect | StaticAbilities$ KWPump | SpellDescription$ Target creature can't be blocked this turn except by Walls.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.Remembered | ValidBlocker$ Creature.nonWall | EffectZone$ Command | Description$ Remembered creature can't be blocked this turn except by Walls.
SVar:Picture:http://www.wizards.com/global/images/magic/general/jovens_tools.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/jovens_tools.jpg
Oracle:{4}, {T}: Target creature can't be blocked this turn except by Walls. Oracle:{4}, {T}: Target creature can't be blocked this turn except by Walls.

View File

@@ -3,7 +3,7 @@ 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$ Card.EnchantedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.powerGE3 | Description$ Enchanted creature can't be blocked by creatures with power 3 or greater. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.powerGE3 | Description$ Enchanted creature can't be blocked by creatures with power 3 or greater.
T:Mode$ Attached | ValidSource$ Card.Self | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigImprint | Static$ True T:Mode$ Attached | ValidSource$ Card.Self | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigImprint | Static$ True
SVar:TrigImprint:DB$ Cleanup | ClearImprinted$ True | SubAbility$ ImprintNew SVar:TrigImprint:DB$ Cleanup | ClearImprinted$ True | SubAbility$ ImprintNew
SVar:ImprintNew:DB$ Pump | ImprintCards$ Enchanted SVar:ImprintNew:DB$ Pump | ImprintCards$ Enchanted

View File

@@ -2,8 +2,7 @@ Name:Kuldotha Ringleader
ManaCost:4 R ManaCost:4 R
Types:Creature Giant Berserker Types:Creature Giant Berserker
PT:4/4 PT:4/4
K:Battle cry
K:CARDNAME attacks each combat if able. K:CARDNAME attacks each combat if able.
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)
SVar:TrigBattleCry:DB$PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/kuldotha_ringleader.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/kuldotha_ringleader.jpg
Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)\nKuldotha Ringleader attacks each combat if able. Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)\nKuldotha Ringleader attacks each combat if able.

View File

@@ -3,8 +3,9 @@ ManaCost:R
Types:Creature Goblin Soldier Types:Creature Goblin Soldier
PT:1/1 PT:1/1
K:Haste K:Haste
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | CheckSVar$ BattalionTest | NoResolvingCheck$ True | SVarCompare$ GE2 | TriggerDescription$ Battalion — Whenever CARDNAME and at least two other creatures attack, creatures you control gain first strike and trample until end of turn and can't be blocked by creature tokens this turn. T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | IsPresent$ Creature.attacking+Other | NoResolvingCheck$ True | PresentCompare$ GE2 | TriggerDescription$ Battalion — Whenever CARDNAME and at least two other creatures attack, creatures you control gain first strike and trample until end of turn and can't be blocked by creature tokens this turn.
SVar:TrigPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ First Strike & Trample & HIDDEN CantBeBlockedBy Creature.token SVar:TrigPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ First Strike & Trample | SubAbility$ TrigEffect
SVar:BattalionTest:Count$Valid Creature.attacking+Other SVar:TrigEffect:DB$ Effect | Name$ Legion Loyalist Effect | StaticAbilities$ KWPump
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.YouCtrl | ValidBlocker$ Creature.token | EffectZone$ Command | Description$ Creatures you control can't be blocked by creature tokens this turn
SVar:Picture:http://www.wizards.com/global/images/magic/general/legion_loyalist.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/legion_loyalist.jpg
Oracle:Haste\nBattalion — Whenever Legion Loyalist and at least two other creatures attack, creatures you control gain first strike and trample until end of turn and can't be blocked by creature tokens this turn. Oracle:Haste\nBattalion — Whenever Legion Loyalist and at least two other creatures attack, creatures you control gain first strike and trample until end of turn and can't be blocked by creature tokens this turn.

View File

@@ -2,7 +2,6 @@ Name:Loxodon Partisan
ManaCost:4 W ManaCost:4 W
Types:Creature Elephant Soldier Types:Creature Elephant Soldier
PT:3/4 PT:3/4
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) K:Battle cry
SVar:TrigBattleCry:DB$PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/loxodon_partisan.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/loxodon_partisan.jpg
Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.) Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)

View File

@@ -2,6 +2,6 @@ Name:Prowler's Helm
ManaCost:2 ManaCost:2
Types:Artifact Equipment Types:Artifact Equipment
K:Equip 2 K:Equip 2
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.nonWall | Description$ Equipped creature can't be blocked except by Walls. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EquippedBy | ValidBlocker$ Creature.nonWall | Description$ Equipped creature can't be blocked except by Walls.
SVar:Picture:http://www.wizards.com/global/images/magic/general/prowlers_helm.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/prowlers_helm.jpg
Oracle:Equipped creature can't be blocked except by Walls.\nEquip {2} Oracle:Equipped creature can't be blocked except by Walls.\nEquip {2}

View File

@@ -3,9 +3,8 @@ 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 | AddHiddenKeyword$ CantBeBlockedBy Creature.Red | Description$ Enchanted creature can't be blocked by red creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.Red | Description$ Enchanted creature can't be blocked by red creatures.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | References$ X | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a red permanent. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Permanent.Red+OppCtrl | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a red permanent.
SVar:X:Count$Valid Permanent.Red+OppCtrl
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/red_scarab.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/red_scarab.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked by red creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a red permanent. Oracle:Enchant creature\nEnchanted creature can't be blocked by red creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a red permanent.

View File

@@ -4,5 +4,7 @@ Types:Creature Human Warrior
PT:2/2 PT:2/2
K:You may exert CARDNAME as it attacks. K:You may exert CARDNAME as it attacks.
T:Mode$ Exerted | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When you exert CARDNAME, it gets +1/+1 and can't be blocked by creatures with power 2 or less this turn. T:Mode$ Exerted | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When you exert CARDNAME, it gets +1/+1 and can't be blocked by creatures with power 2 or less this turn.
SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ 1 | KW$ HIDDEN CantBeBlockedBy Creature.powerLE2 SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ 1 | SubAbility$ TrigEffect
Oracle:You may exert Rhonas's Stalwart as it attacks. When you do, it gets +1/+1 and can't be blocked by creatures with power 2 or less this turn. (An exerted creature won't untap during your next untap step) SVar:TrigEffect:DB$ Effect | Name$ Rhonas's Stalwart Effect | StaticAbilities$ KWPump
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.EffectSource | ValidBlocker$ Creature.powerLE2 | EffectZone$ Command | Description$ EFFECTSOURCE can't be blocked by creatures with power 2 or less this turn.
Oracle:You may exert Rhonas's Stalwart as it attacks. When you do, it gets +1/+1 and can't be blocked by creatures with power 2 or less this turn. (An exerted creature won't untap during your next untap step)

View File

@@ -4,6 +4,7 @@ Types:Snow Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 1 B | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 1 | AddAbility$ PumpA | Description$ Enchanted creature gets +2/+1 and has "{S}: This creature can't be blocked this turn except by snow creatures." ({S} can be paid with one mana from a snow permanent.) S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 1 | AddAbility$ PumpA | Description$ Enchanted creature gets +2/+1 and has "{S}: This creature can't be blocked this turn except by snow creatures." ({S} can be paid with one mana from a snow permanent.)
SVar:PumpA:AB$ Pump | Cost$ S | KW$ HIDDEN CantBeBlockedBy Creature.nonSnow | SpellDescription$ CARDNAME can't be blocked this turn except by snow creatures. SVar:PumpA:AB$ Effect | Cost$ S | Name$ Rime Transfusion Effect | StaticAbilities$ KWPump | SpellDescription$ CARDNAME can't be blocked this turn except by snow creatures.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.EffectSource | ValidBlocker$ Creature.nonSnow | EffectZone$ Command | Description$ EFFECTSOURCE can't be blocked this turn except by snow creatures.
SVar:Picture:http://www.wizards.com/global/images/magic/general/rime_transfusion.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/rime_transfusion.jpg
Oracle:Enchant creature\nEnchanted creature gets +2/+1 and has "{S}: This creature can't be blocked this turn except by snow creatures." ({S} can be paid with one mana from a snow permanent.) Oracle:Enchant creature\nEnchanted creature gets +2/+1 and has "{S}: This creature can't be blocked this turn except by snow creatures." ({S} can be paid with one mana from a snow permanent.)

View File

@@ -3,6 +3,7 @@ ManaCost:1 R R
Types:Creature Cat Types:Creature Cat
PT:2/1 PT:2/1
K:CARDNAME attacks each combat if able. K:CARDNAME attacks each combat if able.
A:AB$ Pump | Cost$ 1 R | KW$ HIDDEN CantBeBlockedBy Creature.withoutDefender | SpellDescription$ Creatures without defender can't block CARDNAME this turn. A:AB$ Effect | Cost$ 1 R | Name$ Sabertooth Alley Cat's Effect | StaticAbilities$ KWPump | SpellDescription$ Creatures without defender can't block CARDNAME this turn.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.EffectSource | ValidBlocker$ Creature.withoutDefender | EffectZone$ Command | Description$ Creatures without defender can't block EFFECTSOURCE this turn.
SVar:Picture:http://www.wizards.com/global/images/magic/general/sabertooth_alley_cat.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/sabertooth_alley_cat.jpg
Oracle:Sabertooth Alley Cat attacks each combat if able.\n{1}{R}: Creatures without defender can't block Sabertooth Alley Cat this turn. Oracle:Sabertooth Alley Cat attacks each combat if able.\n{1}{R}: Creatures without defender can't block Sabertooth Alley Cat this turn.

View File

@@ -2,11 +2,10 @@ Name:Sedge Sliver
ManaCost:2 R ManaCost:2 R
Types:Creature Sliver Types:Creature Sliver
PT:2/2 PT:2/2
S:Mode$ Continuous | Affected$ Creature.Sliver | AddStaticAbility$ SedgeSliverST | AddSVar$ SedgeSliverX | Description$ All Sliver creatures have "This creature gets +1/+1 as long as you control a Swamp." S:Mode$ Continuous | Affected$ Creature.Sliver | AddStaticAbility$ SedgeSliverST | Description$ All Sliver creatures have "This creature gets +1/+1 as long as you control a Swamp."
SVar:SedgeSliverST:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | CheckSVar$ SedgeSliverX | Description$ CARDNAME gets +1/+1 as long as you control a Swamp. SVar:SedgeSliverST:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | IsPresent$ Swamp.YouCtrl | Description$ CARDNAME gets +1/+1 as long as you control a Swamp.
S:Mode$ Continuous | Affected$ Sliver | AddAbility$ Pump | Description$ All Slivers have "{B}: Regenerate this permanent." S:Mode$ Continuous | Affected$ Sliver | AddAbility$ Pump | Description$ All Slivers have "{B}: Regenerate this permanent."
SVar:Pump:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME. SVar:Pump:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME.
SVar:SedgeSliverX:Count$Valid Swamp.YouCtrl
SVar:PlayMain1:TRUE SVar:PlayMain1:TRUE
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
DeckNeeds:Color$Black DeckNeeds:Color$Black

View File

@@ -3,6 +3,6 @@ ManaCost:2 W W
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 2 W W | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 2 W W | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.nonArtifact+nonWhite | Description$ Enchanted creature can't be blocked except by artifact creatures and/or white creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.nonArtifact+nonWhite | Description$ Enchanted creature can't be blocked except by artifact creatures and/or white creatures.
SVar:Picture:http://www.wizards.com/global/images/magic/general/seeker.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/seeker.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked except by artifact creatures and/or white creatures. Oracle:Enchant creature\nEnchanted creature can't be blocked except by artifact creatures and/or white creatures.

View File

@@ -2,6 +2,6 @@ Name:Shifting Sliver
ManaCost:3 U ManaCost:3 U
Types:Creature Sliver Types:Creature Sliver
PT:2/2 PT:2/2
S:Mode$ Continuous | Affected$ Creature.Sliver | AddHiddenKeyword$ CantBeBlockedBy Creature.nonSliver | Description$ Slivers can't be blocked except by Slivers. S:Mode$ CantBlockBy | ValidAttacker$ Creature.Sliver | ValidBlocker$ Creature.nonSliver | Description$ Slivers can't be blocked except by Slivers.
SVar:Picture:http://www.wizards.com/global/images/magic/general/shifting_sliver.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/shifting_sliver.jpg
Oracle:Slivers can't be blocked except by Slivers. Oracle:Slivers can't be blocked except by Slivers.

View File

@@ -2,8 +2,7 @@ Name:Signal Pest
ManaCost:1 ManaCost:1
Types:Artifact Creature Pest Types:Artifact Creature Pest
PT:0/1 PT:0/1
K:Battle cry
K:CantBeBlockedBy Creature.withoutFlying+withoutReach K:CantBeBlockedBy Creature.withoutFlying+withoutReach
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigBattleCry | TriggerDescription$ Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)
SVar:TrigBattleCry:DB$PumpAll | ValidCards$ Creature.attacking+Other | NumAtt$ 1
SVar:Picture:http://www.wizards.com/global/images/magic/general/signal_pest.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/signal_pest.jpg
Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)\nSignal Pest can't be blocked except by creatures with flying or reach. Oracle:Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)\nSignal Pest can't be blocked except by creatures with flying or reach.

View File

@@ -3,6 +3,6 @@ ManaCost:1
Types:Artifact Equipment Types:Artifact Equipment
K:Equip 3 K:Equip 3
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | Description$ Equipped creature gets +1/+0 and can't be blocked by creatures with flying. S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | Description$ Equipped creature gets +1/+0 and can't be blocked by creatures with flying.
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddHiddenKeyword$ CantBeBlockedBy Creature.withFlying S:Mode$ CantBlockBy | ValidAttacker$ Creature.EquippedBy | ValidBlocker$ Creature.withFlying | Secondary$ True | Description$ Equipped creature can't be blocked by creatures with flying.
SVar:Picture:http://www.wizards.com/global/images/magic/general/skyblinder_staff.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/skyblinder_staff.jpg
Oracle:Equipped creature gets +1/+0 and can't be blocked by creatures with flying.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) Oracle:Equipped creature gets +1/+0 and can't be blocked by creatures with flying.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)

View File

@@ -1,7 +1,8 @@
Name:Tower of Coireall Name:Tower of Coireall
ManaCost:2 ManaCost:2
Types:Artifact Types:Artifact
A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN CantBeBlockedBy Creature.Wall | SpellDescription$ Target creature can't be blocked by Walls this turn. A:AB$ Effect | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberObjects$ Targeted | Name$ Tower of Coireall Effect | StaticAbilities$ KWPump | SpellDescription$ Target creature can't be blocked by Walls this turn.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.Remembered | ValidBlocker$ Creature.Wall | EffectZone$ Command | Description$ Remembered creature can't be blocked by Walls this turn.
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/tower_of_coireall.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/tower_of_coireall.jpg
Oracle:{T}: Target creature can't be blocked by Walls this turn. Oracle:{T}: Target creature can't be blocked by Walls this turn.

View File

@@ -3,6 +3,7 @@ ManaCost:1 G
Types:Enchantment Aura Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddHiddenKeyword$ CantBeBlockedBy Creature.withoutFlying | Description$ Enchanted creature gets +1/+1 and can't be blocked except by creatures with flying. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1 and can't be blocked except by creatures with flying.
S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.withoutFlying | Secondary$ True | Description$ Enchanted creature can't be blocked except by creatures with flying.
SVar:Picture:http://www.wizards.com/global/images/magic/general/treetop_bracers.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/treetop_bracers.jpg
Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\nEnchanted creature gets +1/+1 and can't be blocked except by creatures with flying. Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\nEnchanted creature gets +1/+1 and can't be blocked except by creatures with flying.

View File

@@ -2,7 +2,8 @@ Name:Varchild's Crusader
ManaCost:3 R ManaCost:3 R
Types:Creature Human Knight Types:Creature Human Knight
PT:3/2 PT:3/2
A:AB$ Pump | Cost$ 0 | KW$ HIDDEN CantBeBlockedBy Creature.nonWall | AtEOT$ Sacrifice | SpellDescription$ CARDNAME can't be blocked this turn except by Walls. Sacrifice CARDNAME at the beginning of the next end step. A:AB$ Effect | Cost$ 0 | AtEOT$ Sacrifice | Name$ Varchild's Crusader Effect | StaticAbilities$ KWPump | SpellDescription$ CARDNAME can't be blocked this turn except by Walls. Sacrifice CARDNAME at the beginning of the next end step.
SVar:KWPump:Mode$ CantBlockBy | ValidAttacker$ Creature.EffectSource | ValidBlocker$ Creature.nonWall | EffectZone$ Command | Description$ EFFECTSOURCE can't be blocked this turn except by Walls.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/varchilds_crusader.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/varchilds_crusader.jpg
Oracle:{0}: Varchild's Crusader can't be blocked this turn except by Walls. Sacrifice Varchild's Crusader at the beginning of the next end step. Oracle:{0}: Varchild's Crusader can't be blocked this turn except by Walls. Sacrifice Varchild's Crusader at the beginning of the next end step.

View File

@@ -3,9 +3,8 @@ 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 | AddHiddenKeyword$ CantBeBlockedBy Creature.White | Description$ Enchanted creature can't be blocked by white creatures. S:Mode$ CantBlockBy | ValidAttacker$ Creature.EnchantedBy | ValidBlocker$ Creature.White | Description$ Enchanted creature can't be blocked by white creatures.
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | CheckSVar$ X | SVarCompare$ GE1 | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a white permanent. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | IsPresent$ Permanent.White+OppCtrl | Description$ Enchanted creature gets +2/+2 as long as an opponent controls a white permanent.
SVar:X:Count$Valid Permanent.White+OppCtrl
SVar:RemRandomDeck:True SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/white_scarab.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/white_scarab.jpg
Oracle:Enchant creature\nEnchanted creature can't be blocked by white creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a white permanent. Oracle:Enchant creature\nEnchanted creature can't be blocked by white creatures.\nEnchanted creature gets +2/+2 as long as an opponent controls a white permanent.

View File

@@ -4,9 +4,8 @@ Types:Creature Human Warrior
PT:1/1 PT:1/1
K:Level up:4 K:Level up:4
SVar:maxLevel:3 SVar:maxLevel:3
S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ LEVEL 1-2 3/3 S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 3 | SetToughness$ 3 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LT3_LEVEL | Description$ LEVEL 1-2 3/3
S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | AddHiddenKeyword$ CantBeBlockedBy Creature.nonBlack | CheckSVar$ Y | SVarCompare$ EQ1 | Description$ LEVEL 3+ 5/5 CARDNAME can't be blocked except by black creatures S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 5 | SetToughness$ 5 | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ LEVEL 3+ 5/5 CARDNAME can't be blocked except by black creatures
SVar:X:Count$Valid Card.Self+counters_GE1_LEVEL+counters_LT3_LEVEL S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonBlack | Secondary$ True | IsPresent$ Card.Self+counters_GE3_LEVEL | Description$ CARDNAME can't be blocked except by black creatures
SVar:Y:Count$Valid Card.Self+counters_GE3_LEVEL
SVar:Picture:http://www.wizards.com/global/images/magic/general/zulaport_enforcer.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/zulaport_enforcer.jpg
Oracle:Level up {4} ({4}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n3/3\nLEVEL 3+\n5/5\nZulaport Enforcer can't be blocked except by black creatures. Oracle:Level up {4} ({4}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-2\n3/3\nLEVEL 3+\n5/5\nZulaport Enforcer can't be blocked except by black creatures.