mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge branch 'cantblock' into 'master'
CantBlockBy as Static Ability See merge request core-developers/forge!218
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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")) {
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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 ") + ".";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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")) {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user