mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-13 01:08:06 +00:00
Merge remote-tracking branch 'upstream/master' into collector-number-in-card-list-and-card-db-refactoring
This commit is contained in:
@@ -56,7 +56,7 @@ public class PlayAi extends SpellAbilityAi {
|
||||
}
|
||||
|
||||
if (cards != null & sa.hasParam("ValidSA")) {
|
||||
final String valid[] = {sa.getParam("ValidSA")};
|
||||
final String valid[] = sa.getParam("ValidSA").split(",");
|
||||
final Iterator<Card> itr = cards.iterator();
|
||||
while (itr.hasNext()) {
|
||||
final Card c = itr.next();
|
||||
|
||||
@@ -358,7 +358,8 @@ public class TokenAi extends SpellAbilityAi {
|
||||
if (!sa.hasParam("TokenScript")) {
|
||||
throw new RuntimeException("Spell Ability has no TokenScript: " + sa);
|
||||
}
|
||||
Card result = TokenInfo.getProtoType(sa.getParam("TokenScript"), sa, ai);
|
||||
// TODO for now, only checking the first token is good enough
|
||||
Card result = TokenInfo.getProtoType(sa.getParam("TokenScript").split(",")[0], sa, ai);
|
||||
|
||||
if (result == null) {
|
||||
throw new RuntimeException("don't find Token for TokenScript: " + sa.getParam("TokenScript"));
|
||||
|
||||
@@ -26,6 +26,14 @@ public final class CardRulesPredicates {
|
||||
}
|
||||
};
|
||||
|
||||
/** The Constant isKeptInAiLimitedDecks. */
|
||||
public static final Predicate<CardRules> IS_KEPT_IN_AI_LIMITED_DECKS = new Predicate<CardRules>() {
|
||||
@Override
|
||||
public boolean apply(final CardRules card) {
|
||||
return !card.getAiHints().getRemAIDecks() && !card.getAiHints().getRemNonCommanderDecks();
|
||||
}
|
||||
};
|
||||
|
||||
/** The Constant isKeptInRandomDecks. */
|
||||
public static final Predicate<CardRules> IS_KEPT_IN_RANDOM_DECKS = new Predicate<CardRules>() {
|
||||
@Override
|
||||
|
||||
@@ -34,7 +34,12 @@ public class CardTranslation {
|
||||
translatedtypes.put(matches[0], matches[2]);
|
||||
}
|
||||
if (matches.length >= 4) {
|
||||
translatedoracles.put(matches[0], matches[3].replace("\\n", "\r\n\r\n"));
|
||||
String toracle = matches[3];
|
||||
// Workaround to remove additional //Level_2// and //Level_3// lines from non-English Class cards
|
||||
toracle = toracle.replace("//Level_2//\\n", "").replace("//Level_3//\\n", "");
|
||||
// Workaround for roll dice cards
|
||||
toracle = toracle.replace("\\n", "\r\n\r\n").replace("VERT", "|");
|
||||
translatedoracles.put(matches[0], toracle);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
@@ -91,7 +96,7 @@ public class CardTranslation {
|
||||
|
||||
public static void preloadTranslation(String language, String languagesDirectory) {
|
||||
languageSelected = language;
|
||||
|
||||
|
||||
if (needsTranslation()) {
|
||||
translatednames = new HashMap<>();
|
||||
translatedtypes = new HashMap<>();
|
||||
@@ -137,9 +142,10 @@ public class CardTranslation {
|
||||
|
||||
public static String translateMultipleDescriptionText(String descText, String cardName) {
|
||||
if (!needsTranslation()) return descText;
|
||||
String [] splitDescText = descText.split("\r\n");
|
||||
String [] splitDescText = descText.split("\n");
|
||||
String result = descText;
|
||||
for (String text : splitDescText) {
|
||||
text = text.trim();
|
||||
if (text.isEmpty()) continue;
|
||||
String translated = translateSingleDescriptionText(text, cardName);
|
||||
if (!text.equals(translated)) {
|
||||
|
||||
@@ -148,7 +148,6 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
|
||||
return getParamOrDefault("Secondary", "False").equals("True");
|
||||
}
|
||||
|
||||
|
||||
public final boolean isClassAbility() {
|
||||
return hasParam("ClassLevel");
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ public class ForgeScript {
|
||||
|
||||
public static boolean cardStateHasProperty(CardState cardState, String property, Player sourceController,
|
||||
Card source, CardTraitBase spellAbility) {
|
||||
|
||||
final boolean isColorlessSource = cardState.getCard().hasKeyword("Colorless Damage Source", cardState);
|
||||
final ColorSet colors = cardState.getCard().determineColor(cardState);
|
||||
if (property.contains("White") || property.contains("Blue") || property.contains("Black")
|
||||
@@ -123,7 +122,6 @@ public class ForgeScript {
|
||||
|
||||
return Expressions.compare(y, property, x);
|
||||
} else return cardState.getTypeWithChanges().hasStringType(property);
|
||||
|
||||
}
|
||||
|
||||
public static boolean spellAbilityHasProperty(SpellAbility sa, String property, Player sourceController,
|
||||
@@ -194,8 +192,7 @@ public class ForgeScript {
|
||||
// spell was on the stack
|
||||
if (sa.getCardState().getCard().isInZone(ZoneType.Stack)) {
|
||||
y = sa.getHostCard().getCMC();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
y = sa.getPayCosts().getTotalMana().getCMC();
|
||||
}
|
||||
int x = AbilityUtils.calculateAmount(spellAbility.getHostCard(), property.substring(5), spellAbility);
|
||||
|
||||
@@ -805,7 +805,7 @@ public class Game {
|
||||
getTriggerHandler().clearDelayedTrigger(c);
|
||||
} else {
|
||||
// return stolen permanents
|
||||
if ((c.getController().equals(p) || c.getZone().getPlayer().equals(p)) && c.isInZone(ZoneType.Battlefield)) {
|
||||
if (c.isInZone(ZoneType.Battlefield) && (c.getController().equals(p) || c.getZone().getPlayer().equals(p))) {
|
||||
c.removeTempController(p);
|
||||
getAction().controllerChangeZoneCorrection(c);
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ public final class GameActionUtil {
|
||||
continue;
|
||||
}
|
||||
// non basic are only allowed if PayManaCost is yes
|
||||
if (!sa.isBasicSpell() && o.getPayManaCost() == PayManaCost.NO) {
|
||||
if ((!sa.isBasicSpell() || (sa.costHasManaX() && !sa.getPayCosts().getCostMana().canXbe0())) && o.getPayManaCost() == PayManaCost.NO) {
|
||||
continue;
|
||||
}
|
||||
final Card host = o.getHost();
|
||||
|
||||
@@ -42,6 +42,7 @@ import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.CardFactoryUtil;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.card.CardPredicates;
|
||||
import forge.game.card.CardState;
|
||||
import forge.game.card.CardUtil;
|
||||
import forge.game.card.CounterType;
|
||||
import forge.game.card.CardPredicates.Presets;
|
||||
@@ -56,6 +57,7 @@ import forge.game.player.Player;
|
||||
import forge.game.player.PlayerCollection;
|
||||
import forge.game.player.PlayerPredicates;
|
||||
import forge.game.spellability.AbilitySub;
|
||||
import forge.game.spellability.LandAbility;
|
||||
import forge.game.spellability.OptionalCost;
|
||||
import forge.game.spellability.Spell;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
@@ -2856,24 +2858,45 @@ public class AbilityUtils {
|
||||
public static final List<SpellAbility> getBasicSpellsFromPlayEffect(final Card tgtCard, final Player controller) {
|
||||
List<SpellAbility> sas = new ArrayList<>();
|
||||
List<SpellAbility> list = Lists.newArrayList(tgtCard.getBasicSpells());
|
||||
if (tgtCard.isModal()) {
|
||||
list.addAll(Lists.newArrayList(tgtCard.getBasicSpells(tgtCard.getState(CardStateName.Modal))));
|
||||
|
||||
CardState original = tgtCard.getState(CardStateName.Original);
|
||||
if (tgtCard.isLand()) {
|
||||
LandAbility la = new LandAbility(tgtCard, controller, null);
|
||||
la.setCardState(original);
|
||||
list.add(la);
|
||||
}
|
||||
if (tgtCard.isModal()) {
|
||||
CardState modal = tgtCard.getState(CardStateName.Modal);
|
||||
list.addAll(Lists.newArrayList(tgtCard.getBasicSpells(modal)));
|
||||
if (modal.getType().isLand()) {
|
||||
LandAbility la = new LandAbility(tgtCard, controller, null);
|
||||
la.setCardState(modal);
|
||||
list.add(la);
|
||||
}
|
||||
}
|
||||
|
||||
for (SpellAbility s : list) {
|
||||
final Spell newSA = (Spell) s.copy();
|
||||
newSA.setActivatingPlayer(controller);
|
||||
SpellAbilityRestriction res = new SpellAbilityRestriction();
|
||||
// timing restrictions still apply
|
||||
res.setPlayerTurn(s.getRestrictions().getPlayerTurn());
|
||||
res.setOpponentTurn(s.getRestrictions().getOpponentTurn());
|
||||
res.setPhases(s.getRestrictions().getPhases());
|
||||
res.setZone(null);
|
||||
newSA.setRestrictions(res);
|
||||
// timing restrictions still apply
|
||||
if (res.checkTimingRestrictions(tgtCard, newSA)
|
||||
// still need to check the other restrictions like Aftermath
|
||||
&& res.checkOtherRestrictions(tgtCard, newSA, controller)) {
|
||||
sas.add(newSA);
|
||||
if (s instanceof LandAbility) {
|
||||
// CR 305.3
|
||||
if (controller.getGame().getPhaseHandler().isPlayerTurn(controller) && controller.canPlayLand(tgtCard, true, s)) {
|
||||
sas.add(s);
|
||||
}
|
||||
} else {
|
||||
final Spell newSA = (Spell) s.copy();
|
||||
newSA.setActivatingPlayer(controller);
|
||||
SpellAbilityRestriction res = new SpellAbilityRestriction();
|
||||
// timing restrictions still apply
|
||||
res.setPlayerTurn(s.getRestrictions().getPlayerTurn());
|
||||
res.setOpponentTurn(s.getRestrictions().getOpponentTurn());
|
||||
res.setPhases(s.getRestrictions().getPhases());
|
||||
res.setZone(null);
|
||||
newSA.setRestrictions(res);
|
||||
// timing restrictions still apply
|
||||
if (res.checkTimingRestrictions(tgtCard, newSA)
|
||||
// still need to check the other restrictions like Aftermath
|
||||
&& res.checkOtherRestrictions(tgtCard, newSA, controller)) {
|
||||
sas.add(newSA);
|
||||
}
|
||||
}
|
||||
}
|
||||
return sas;
|
||||
|
||||
@@ -11,7 +11,7 @@ import forge.game.spellability.TargetRestrictions;
|
||||
public class SpellApiBased extends Spell {
|
||||
private static final long serialVersionUID = -6741797239508483250L;
|
||||
private final SpellAbilityEffect effect;
|
||||
|
||||
|
||||
public SpellApiBased(ApiType api0, Card sourceCard, Cost abCost, TargetRestrictions tgt, Map<String, String> params0) {
|
||||
super(sourceCard, abCost);
|
||||
this.setTargetRestrictions(tgt);
|
||||
|
||||
@@ -31,6 +31,7 @@ import forge.game.replacement.ReplacementEffect;
|
||||
import forge.game.replacement.ReplacementHandler;
|
||||
import forge.game.replacement.ReplacementLayer;
|
||||
import forge.game.spellability.AlternativeCost;
|
||||
import forge.game.spellability.LandAbility;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.spellability.SpellAbilityPredicates;
|
||||
import forge.game.trigger.TriggerType;
|
||||
@@ -167,7 +168,7 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
if (sa.hasParam("ValidSA")) {
|
||||
final String valid[] = {sa.getParam("ValidSA")};
|
||||
final String valid[] = sa.getParam("ValidSA").split(",");
|
||||
Iterator<Card> it = tgtCards.iterator();
|
||||
while (it.hasNext()) {
|
||||
Card c = it.next();
|
||||
@@ -244,8 +245,8 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
tgtCards.remove(tgtCard);
|
||||
}
|
||||
|
||||
final Card original = tgtCard;
|
||||
if (sa.hasParam("CopyCard")) {
|
||||
final Card original = tgtCard;
|
||||
final Zone zone = tgtCard.getZone();
|
||||
tgtCard = Card.fromPaperCard(tgtCard.getPaperCard(), sa.getActivatingPlayer());
|
||||
|
||||
@@ -258,23 +259,10 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
}
|
||||
}
|
||||
|
||||
// lands will be played
|
||||
if (tgtCard.isLand()) {
|
||||
if (controller.playLand(tgtCard, true)) {
|
||||
amount--;
|
||||
if (remember) {
|
||||
source.addRemembered(tgtCard);
|
||||
}
|
||||
} else {
|
||||
tgtCards.remove(tgtCard);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// get basic spells (no flashback, etc.)
|
||||
List<SpellAbility> sas = AbilityUtils.getBasicSpellsFromPlayEffect(tgtCard, controller);
|
||||
if (sa.hasParam("ValidSA")) {
|
||||
final String valid[] = {sa.getParam("ValidSA")};
|
||||
final String valid[] = sa.getParam("ValidSA").split(",");
|
||||
sas = Lists.newArrayList(Iterables.filter(sas, SpellAbilityPredicates.isValid(valid, controller , source, sa)));
|
||||
}
|
||||
if (hasTotalCMCLimit) {
|
||||
@@ -290,11 +278,6 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
continue;
|
||||
}
|
||||
|
||||
// play copied cards with linked abilities, e.g. Elite Arcanist
|
||||
if (sa.hasParam("CopyOnce")) {
|
||||
tgtCards.remove(original);
|
||||
}
|
||||
|
||||
SpellAbility tgtSA;
|
||||
|
||||
if (!sa.hasParam("CastFaceDown")) {
|
||||
@@ -313,8 +296,22 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
continue;
|
||||
}
|
||||
|
||||
// lands will be played
|
||||
if (tgtSA instanceof LandAbility) {
|
||||
tgtSA.resolve();
|
||||
amount--;
|
||||
if (remember) {
|
||||
source.addRemembered(tgtCard);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
final int tgtCMC = tgtSA.getPayCosts().getTotalMana().getCMC();
|
||||
|
||||
// illegal action, cancel early
|
||||
if ((sa.hasParam("WithoutManaCost") || sa.hasParam("PlayCost")) && tgtSA.costHasManaX() && !tgtSA.getPayCosts().getCostMana().canXbe0()) {
|
||||
continue;
|
||||
}
|
||||
if (sa.hasParam("WithoutManaCost")) {
|
||||
tgtSA = tgtSA.copyWithNoManaCost();
|
||||
} else if (sa.hasParam("PlayCost")) {
|
||||
|
||||
@@ -12,16 +12,12 @@ import forge.card.CardRulesPredicates;
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
import forge.game.Game;
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardFactory;
|
||||
import forge.game.card.CardUtil;
|
||||
import forge.game.event.GameEventLandPlayed;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.trigger.TriggerType;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.item.PaperCard;
|
||||
import forge.util.Aggregates;
|
||||
|
||||
@@ -60,28 +56,18 @@ public class PlayLandVariantEffect extends SpellAbilityEffect {
|
||||
}, PaperCard.FN_GET_NAME);
|
||||
cards = Lists.newArrayList(Iterables.filter(cards, cp));
|
||||
// get a random basic land
|
||||
PaperCard ran = Aggregates.random(cards);
|
||||
Card random = CardFactory.getCard(ran, activator, source.getGame());
|
||||
Card random;
|
||||
// if activator cannot play the random land, loop
|
||||
while (!activator.canPlayLand(random, false) && !cards.isEmpty()) {
|
||||
cards.remove(ran);
|
||||
do {
|
||||
if (cards.isEmpty()) return;
|
||||
ran = Aggregates.random(cards);
|
||||
PaperCard ran = Aggregates.random(cards);
|
||||
random = CardFactory.getCard(ran, activator, game);
|
||||
}
|
||||
cards.remove(ran);
|
||||
} while (!activator.canPlayLand(random, false));
|
||||
|
||||
source.addCloneState(CardFactory.getCloneStates(random, source, sa), game.getNextTimestamp());
|
||||
source.updateStateForView();
|
||||
|
||||
source.setController(activator, 0);
|
||||
game.getAction().moveTo(activator.getZone(ZoneType.Battlefield), source, sa);
|
||||
|
||||
// play a sound
|
||||
game.fireEvent(new GameEventLandPlayed(activator, source));
|
||||
|
||||
// Run triggers
|
||||
game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, AbilityKey.mapFromCard(source), false);
|
||||
game.getStack().unfreezeStack();
|
||||
activator.addLandPlayedThisTurn();
|
||||
activator.playLandNoCheck(source, sa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1832,10 +1832,10 @@ public class CardFactoryUtil {
|
||||
if (sa.hasParam("NextRoom")) {
|
||||
boolean first = true;
|
||||
StringBuilder nextRoomParam = new StringBuilder();
|
||||
trigStr.append(" (→ ");
|
||||
trigStr.append(" (Leads to: ");
|
||||
for (String nextRoomSVar : sa.getParam("NextRoom").split(",")) {
|
||||
if (!first) {
|
||||
trigStr.append(" or ");
|
||||
trigStr.append(", ");
|
||||
nextRoomParam.append(",");
|
||||
}
|
||||
String nextRoomName = saMap.get(nextRoomSVar).getParam("RoomName");
|
||||
|
||||
@@ -80,7 +80,7 @@ public final class CardPlayOption {
|
||||
return toString(true);
|
||||
}
|
||||
|
||||
public String toString( final boolean withPlayer) {
|
||||
public String toString(final boolean withPlayer) {
|
||||
StringBuilder sb = new StringBuilder(withPlayer ? this.player.toString() : StringUtils.EMPTY);
|
||||
|
||||
switch (getPayManaCost()) {
|
||||
|
||||
@@ -1695,8 +1695,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
for (int i = 0; i < max; i++) {
|
||||
if (bottom) {
|
||||
milled.add(lib.get(lib.size() - i - 1));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
milled.add(lib.get(i));
|
||||
}
|
||||
}
|
||||
@@ -1758,7 +1757,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
public final boolean playLand(final Card land, final boolean ignoreZoneAndTiming) {
|
||||
// Dakkon Blackblade Avatar will use a similar effect
|
||||
if (canPlayLand(land, ignoreZoneAndTiming)) {
|
||||
playLandNoCheck(land);
|
||||
playLandNoCheck(land, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1766,20 +1765,22 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
return false;
|
||||
}
|
||||
|
||||
public final Card playLandNoCheck(final Card land) {
|
||||
public final Card playLandNoCheck(final Card land, SpellAbility cause) {
|
||||
land.setController(this, 0);
|
||||
if (land.isFaceDown()) {
|
||||
land.turnFaceUp(null);
|
||||
}
|
||||
game.copyLastState();
|
||||
final Card c = game.getAction().moveTo(getZone(ZoneType.Battlefield), land, null);
|
||||
final Card c = game.getAction().moveTo(getZone(ZoneType.Battlefield), land, cause);
|
||||
game.updateLastStateForCard(c);
|
||||
|
||||
// play a sound
|
||||
game.fireEvent(new GameEventLandPlayed(this, land));
|
||||
|
||||
// Run triggers
|
||||
game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, AbilityKey.mapFromCard(land), false);
|
||||
Map<AbilityKey, Object> runParams = AbilityKey.mapFromCard(land);
|
||||
runParams.put(AbilityKey.SpellAbility, cause);
|
||||
game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false);
|
||||
game.getStack().unfreezeStack();
|
||||
addLandPlayedThisTurn();
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ public class LandAbility extends Ability {
|
||||
@Override
|
||||
public void resolve() {
|
||||
getHostCard().setSplitStateToPlayAbility(this);
|
||||
final Card result = getActivatingPlayer().playLandNoCheck(getHostCard());
|
||||
final Card result = getActivatingPlayer().playLandNoCheck(getHostCard(), this);
|
||||
|
||||
// increase mayplay used
|
||||
if (getMayPlay() != null) {
|
||||
|
||||
@@ -1116,7 +1116,6 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
}
|
||||
|
||||
public SpellAbility copyWithManaCostReplaced(Player active, Cost abCost) {
|
||||
|
||||
final SpellAbility newSA = copy(active);
|
||||
if (newSA == null) {
|
||||
return null; // the ability was not copyable, e.g. a Suspend SA may get here
|
||||
@@ -1995,6 +1994,16 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (incR[0].equals("Instant")) {
|
||||
if (!root.getCardState().getType().isInstant()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (incR[0].equals("Sorcery")) {
|
||||
if (!root.getCardState().getType().isSorcery()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (incR[0].equals("Triggered")) {
|
||||
if (!root.isTrigger()) {
|
||||
return false;
|
||||
|
||||
@@ -877,7 +877,9 @@ public final class StaticAbilityContinuous {
|
||||
mayPlayAltCost = mayPlayAltCost.replace("ConvertedManaCost", costcmc);
|
||||
}
|
||||
|
||||
Player mayPlayController = params.containsKey("MayPlayCardOwner") ? affectedCard.getOwner() : controller;
|
||||
Player mayPlayController = params.containsKey("MayPlayPlayer") ?
|
||||
AbilityUtils.getDefinedPlayers(affectedCard, params.get("MayPlayPlayer"), stAb).get(0) :
|
||||
controller;
|
||||
affectedCard.setMayPlay(mayPlayController, mayPlayWithoutManaCost,
|
||||
mayPlayAltCost != null ? new Cost(mayPlayAltCost, false) : null,
|
||||
mayPlayWithFlash, mayPlayGrantZonePermissions, stAb);
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@@ -28,7 +28,7 @@ import forge.util.Localizer;
|
||||
* <p>
|
||||
* Trigger_LandPlayed class.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @author Forge
|
||||
* @version $Id$
|
||||
*/
|
||||
@@ -38,7 +38,7 @@ public class TriggerLandPlayed extends Trigger {
|
||||
* <p>
|
||||
* Constructor for Trigger_LandPlayed.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param params
|
||||
* a {@link java.util.HashMap} object.
|
||||
* @param host
|
||||
@@ -71,6 +71,10 @@ public class TriggerLandPlayed extends Trigger {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!matchesValidParam("ValidSA", runParams.get(AbilityKey.SpellAbility))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (hasParam("NotFirstLand")) {
|
||||
Card land = (Card) runParams.get(AbilityKey.Card);
|
||||
if (land.getController().getLandsPlayedThisTurn() < 1) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import forge.deck.DeckFormat;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.deck.DeckType;
|
||||
import forge.deck.DeckgenUtil;
|
||||
import forge.deck.NetDeckArchivePauper;
|
||||
import forge.deck.NetDeckArchiveBlock;
|
||||
import forge.deck.NetDeckArchiveLegacy;
|
||||
import forge.deck.NetDeckArchiveModern;
|
||||
@@ -60,6 +61,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
private NetDeckArchiveStandard NetDeckArchiveStandard;
|
||||
private NetDeckArchivePioneer NetDeckArchivePioneer;
|
||||
private NetDeckArchiveModern NetDeckArchiveModern;
|
||||
private NetDeckArchivePauper NetDeckArchivePauper;
|
||||
private NetDeckArchiveLegacy NetDeckArchiveLegacy;
|
||||
private NetDeckArchiveVintage NetDeckArchiveVintage;
|
||||
private NetDeckArchiveBlock NetDeckArchiveBlock;
|
||||
@@ -297,6 +299,13 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
updateDecks(DeckProxy.getNetArchiveModernDecks(NetDeckArchiveModern), ItemManagerConfig.NET_DECKS);
|
||||
}
|
||||
|
||||
private void updateNetArchivePauperDecks() {
|
||||
if (NetDeckArchivePauper != null) {
|
||||
decksComboBox.setText(NetDeckArchivePauper.getDeckType());
|
||||
}
|
||||
updateDecks(DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper), ItemManagerConfig.NET_DECKS);
|
||||
}
|
||||
|
||||
private void updateNetArchivePioneerDecks() {
|
||||
if (NetDeckArchivePioneer != null) {
|
||||
decksComboBox.setText(NetDeckArchivePioneer.getDeckType());
|
||||
@@ -322,8 +331,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
if (NetDeckArchiveBlock != null) {
|
||||
decksComboBox.setText(NetDeckArchiveBlock.getDeckType());
|
||||
}
|
||||
updateDecks(DeckProxy.getNetArchiveBlockecks(NetDeckArchiveBlock), ItemManagerConfig.NET_DECKS);
|
||||
updateDecks(DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock), ItemManagerConfig.NET_DECKS);
|
||||
}
|
||||
|
||||
public Deck getDeck() {
|
||||
final DeckProxy proxy = lstDecks.getSelectedItem();
|
||||
if (proxy == null) {
|
||||
@@ -459,6 +469,32 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
});
|
||||
return;
|
||||
|
||||
} else if (ev.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK&& !refreshingDeckType) {
|
||||
if(lstDecks.getGameType() != GameType.Constructed)
|
||||
return;
|
||||
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||
@Override
|
||||
public void run() {
|
||||
final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType());
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (category == null) {
|
||||
decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels
|
||||
if (selectedDeckType == DeckType.NET_ARCHIVE_PAUPER_DECK && NetDeckArchivePauper != null) {
|
||||
decksComboBox.setText(NetDeckArchivePauper.getDeckType());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
NetDeckArchivePauper = category;
|
||||
refreshDecksList(ev.getDeckType(), true, ev);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return;
|
||||
|
||||
} else if (ev.getDeckType() == DeckType.NET_ARCHIVE_LEGACY_DECK&& !refreshingDeckType) {
|
||||
if(lstDecks.getGameType() != GameType.Constructed)
|
||||
return;
|
||||
@@ -511,7 +547,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
});
|
||||
return;
|
||||
|
||||
|
||||
} else if (ev.getDeckType() == DeckType.NET_ARCHIVE_BLOCK_DECK&& !refreshingDeckType) {
|
||||
if(lstDecks.getGameType() != GameType.Constructed)
|
||||
return;
|
||||
@@ -525,7 +560,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
if (category == null) {
|
||||
decksComboBox.setDeckType(selectedDeckType); //restore old selection if user cancels
|
||||
if (selectedDeckType == DeckType.NET_ARCHIVE_BLOCK_DECK && NetDeckArchiveBlock != null) {
|
||||
decksComboBox.setText(NetDeckArchiveVintage.getDeckType());
|
||||
decksComboBox.setText(NetDeckArchiveBlock.getDeckType());
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -538,7 +573,6 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
});
|
||||
return;
|
||||
|
||||
|
||||
} else if ((ev.getDeckType() == DeckType.NET_DECK || ev.getDeckType() == DeckType.NET_COMMANDER_DECK) && !refreshingDeckType) {
|
||||
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||
@Override
|
||||
@@ -668,6 +702,9 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
case NET_ARCHIVE_MODERN_DECK:
|
||||
updateNetArchiveModernDecks();
|
||||
break;
|
||||
case NET_ARCHIVE_PAUPER_DECK:
|
||||
updateNetArchivePauperDecks();
|
||||
break;
|
||||
case NET_ARCHIVE_PIONEER_DECK:
|
||||
updateNetArchivePioneerDecks();
|
||||
break;
|
||||
@@ -707,12 +744,17 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_MODERN_DECK) {
|
||||
if (NetDeckArchiveModern == null) { return ""; }
|
||||
state.append(NetDeckArchiveModern.PREFIX).append(NetDeckArchiveModern.getName());
|
||||
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_PAUPER_DECK) {
|
||||
if (NetDeckArchivePauper == null) { return ""; }
|
||||
state.append(NetDeckArchivePauper.PREFIX).append(NetDeckArchivePauper.getName());
|
||||
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_LEGACY_DECK) {
|
||||
if (NetDeckArchiveLegacy == null) { return ""; }
|
||||
state.append(NetDeckArchiveLegacy.PREFIX).append(NetDeckArchiveLegacy.getName());
|
||||
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_VINTAGE_DECK) {
|
||||
if (NetDeckArchiveVintage == null) { return ""; }
|
||||
state.append(NetDeckArchiveVintage.PREFIX).append(NetDeckArchiveVintage.getName());
|
||||
} else if (decksComboBox.getDeckType() == DeckType.NET_ARCHIVE_BLOCK_DECK) {
|
||||
if (NetDeckArchiveBlock == null) { return ""; }
|
||||
state.append(NetDeckArchiveBlock.PREFIX).append(NetDeckArchiveBlock.getName());
|
||||
} else if (decksComboBox.getDeckType() == null || decksComboBox.getDeckType() == DeckType.NET_DECK) {
|
||||
//handle special case of net decks
|
||||
@@ -784,6 +826,10 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
||||
NetDeckArchiveModern = NetDeckArchiveModern.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveModern.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_MODERN_DECK;
|
||||
}
|
||||
if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) {
|
||||
NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_PAUPER_DECK;
|
||||
}
|
||||
if (deckType.startsWith(NetDeckArchiveLegacy.PREFIX)) {
|
||||
NetDeckArchiveLegacy = NetDeckArchiveLegacy.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveLegacy.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_LEGACY_DECK;
|
||||
|
||||
@@ -65,6 +65,7 @@ public class FDeckChooser extends FScreen {
|
||||
private NetDeckArchiveStandard NetDeckArchiveStandard;
|
||||
private NetDeckArchivePioneer NetDeckArchivePioneer;
|
||||
private NetDeckArchiveModern NetDeckArchiveModern;
|
||||
private NetDeckArchivePauper NetDeckArchivePauper;
|
||||
private NetDeckArchiveLegacy NetDeckArchiveLegacy;
|
||||
private NetDeckArchiveVintage NetDeckArchiveVintage;
|
||||
private NetDeckArchiveBlock NetDeckArchiveBlock;
|
||||
@@ -542,6 +543,7 @@ public class FDeckChooser extends FScreen {
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_STANDARD_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PIONEER_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_MODERN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK);
|
||||
@@ -578,6 +580,7 @@ public class FDeckChooser extends FScreen {
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_STANDARD_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PIONEER_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_MODERN_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_PAUPER_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_LEGACY_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_VINTAGE_DECK);
|
||||
cmbDeckTypes.addItem(DeckType.NET_ARCHIVE_BLOCK_DECK);
|
||||
@@ -703,6 +706,32 @@ public class FDeckChooser extends FScreen {
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_PAUPER_DECK)) {
|
||||
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||
@Override
|
||||
public void run() {
|
||||
GameType gameType = lstDecks.getGameType();
|
||||
final NetDeckArchivePauper category = NetDeckArchivePauper.selectAndLoad(gameType);
|
||||
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (category == null) {
|
||||
cmbDeckTypes.setSelectedItem(selectedDeckType); //restore old selection if user cancels
|
||||
if (selectedDeckType == deckType && NetDeckArchivePauper != null) {
|
||||
cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
NetDeckArchivePauper = category;
|
||||
refreshDecksList(deckType, true, e);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_LEGACY_DECK)) {
|
||||
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||
@Override
|
||||
@@ -755,9 +784,6 @@ public class FDeckChooser extends FScreen {
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!refreshingDeckType&&(deckType == DeckType.NET_ARCHIVE_BLOCK_DECK)) {
|
||||
FThreads.invokeInBackgroundThread(new Runnable() { //needed for loading net decks
|
||||
@Override
|
||||
@@ -787,7 +813,6 @@ public class FDeckChooser extends FScreen {
|
||||
|
||||
|
||||
|
||||
|
||||
refreshDecksList(deckType, false, e);
|
||||
}
|
||||
});
|
||||
@@ -1010,6 +1035,13 @@ public class FDeckChooser extends FScreen {
|
||||
pool = DeckProxy.getNetArchiveModernDecks(NetDeckArchiveModern);
|
||||
config = ItemManagerConfig.NET_ARCHIVE_MODERN_DECKS;
|
||||
break;
|
||||
case NET_ARCHIVE_PAUPER_DECK:
|
||||
if (NetDeckArchivePauper!= null) {
|
||||
cmbDeckTypes.setText(NetDeckArchivePauper.getDeckType());
|
||||
}
|
||||
pool = DeckProxy.getNetArchivePauperDecks(NetDeckArchivePauper);
|
||||
config = ItemManagerConfig.NET_ARCHIVE_PAUPER_DECKS;
|
||||
break;
|
||||
case NET_ARCHIVE_LEGACY_DECK:
|
||||
if (NetDeckArchiveLegacy != null) {
|
||||
cmbDeckTypes.setText(NetDeckArchiveLegacy.getDeckType());
|
||||
@@ -1028,7 +1060,7 @@ public class FDeckChooser extends FScreen {
|
||||
if (NetDeckArchiveBlock!= null) {
|
||||
cmbDeckTypes.setText(NetDeckArchiveBlock.getDeckType());
|
||||
}
|
||||
pool = DeckProxy.getNetArchiveBlockecks(NetDeckArchiveBlock);
|
||||
pool = DeckProxy.getNetArchiveBlockDecks(NetDeckArchiveBlock);
|
||||
config = ItemManagerConfig.NET_ARCHIVE_BLOCK_DECKS;
|
||||
break;
|
||||
case NET_DECK:
|
||||
@@ -1306,6 +1338,10 @@ public class FDeckChooser extends FScreen {
|
||||
NetDeckArchiveModern = NetDeckArchiveModern.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveModern.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_MODERN_DECK;
|
||||
}
|
||||
if (deckType.startsWith(NetDeckArchivePauper.PREFIX)) {
|
||||
NetDeckArchivePauper = NetDeckArchivePauper.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchivePauper.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_PAUPER_DECK;
|
||||
}
|
||||
if (deckType.startsWith(NetDeckArchiveLegacy.PREFIX)) {
|
||||
NetDeckArchiveLegacy = NetDeckArchiveLegacy.selectAndLoad(lstDecks.getGameType(), deckType.substring(NetDeckArchiveLegacy.PREFIX.length()));
|
||||
return DeckType.NET_ARCHIVE_LEGACY_DECK;
|
||||
@@ -1399,8 +1435,10 @@ public class FDeckChooser extends FScreen {
|
||||
DeckType.NET_ARCHIVE_STANDARD_DECK,
|
||||
DeckType.NET_ARCHIVE_PIONEER_DECK,
|
||||
DeckType.NET_ARCHIVE_MODERN_DECK,
|
||||
DeckType.NET_ARCHIVE_PAUPER_DECK,
|
||||
DeckType.NET_ARCHIVE_VINTAGE_DECK,
|
||||
DeckType.NET_ARCHIVE_LEGACY_DECK
|
||||
DeckType.NET_ARCHIVE_LEGACY_DECK,
|
||||
DeckType.NET_ARCHIVE_BLOCK_DECK
|
||||
|
||||
);
|
||||
if (!FModel.isdeckGenMatrixLoaded()) {
|
||||
|
||||
@@ -5,6 +5,6 @@ PT:3/4
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigPump | TriggerDescription$ Psionic Spells – When CARDNAME enters the battlefield, choose target instant or sorcery card in your graveyard, then ABILITY
|
||||
SVar:TrigPump:DB$ Pump | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtZone$ Graveyard | TgtPrompt$ Choose target instant or sorcery card in your graveyard | SubAbility$ DBRollDice
|
||||
SVar:DBRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:DBLibrary,10-20:DBHand | SpellDescription$ roll a d20.
|
||||
SVar:DBLibrary:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | Optional$ True | SpellDescription$ 1-9 VERT You may put that card on top of your library.
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Hand | SpellDescription$ 10-20 VERT Return that card to your hand.
|
||||
Oracle:Psionic Spells — When Aberrant Mind Sorcerer enters the battlefield, choose target instant or sorcery card in your graveyard, then roll a d20.\n1-9 | You may put that card on top of your library.\n10-20 | Return that card to your hand.
|
||||
SVar:DBLibrary:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Library | LibraryPosition$ 0 | Optional$ True | SpellDescription$ 1—9 VERT You may put that card on top of your library.
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Targeted | Origin$ Graveyard | Destination$ Hand | SpellDescription$ 10—20 VERT Return that card to your hand.
|
||||
Oracle:Psionic Spells — When Aberrant Mind Sorcerer enters the battlefield, choose target instant or sorcery card in your graveyard, then roll a d20.\n1—9 | You may put that card on top of your library.\n10—20 | Return that card to your hand.
|
||||
@@ -3,8 +3,8 @@ ManaCost:2 G G G
|
||||
Types:Legendary Creature Ooze
|
||||
PT:2/2
|
||||
K:Storm
|
||||
S:Mode$ Continuous | Affected$ Card.token+Self | RemoveType$ Legendary | Description$ CARDNAME isn't legendary as long as it's a token.
|
||||
S:Mode$ Continuous | Affected$ Card.token+Self | RemoveType$ Legendary | Description$ CARDNAME isn't legendary if it's a token.
|
||||
K:etbCounter:P1P1:X:no condition:CARDNAME enters the battlefield with a +1/+1 counter on it for each other Ooze you control.
|
||||
SVar:X:Count$LastStateBattlefield Ooze.YouCtrl+Other
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Storm (When you cast this spell, copy it for each spell cast before it this turn. Copies become tokens.)\nAeve, Progenitor Ooze isn't legendary as long as it's a token.\nAeve enters the battlefield with a +1/+1 counter on it for each other Ooze you control.
|
||||
Oracle:Storm (When you cast this spell, copy it for each spell cast before it this turn. Copies become tokens.)\nAeve, Progenitor Ooze isn't legendary if it's a token.\nAeve enters the battlefield with a +1/+1 counter on it for each other Ooze you control.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Name:Altar of the Goyf
|
||||
ManaCost:5
|
||||
Types:Tribal Artifact Lhurgoyf
|
||||
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyard.
|
||||
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | Alone$ True | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyards.
|
||||
SVar:TrigPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ +X | NumDef$ +X
|
||||
S:Mode$ Continuous | Affected$ Creature.Lhurgoyf+YouCtrl | AddKeyword$ Trample | Description$ Lhurgoyf creatures you control have trample.
|
||||
SVar:X:Count$CardTypes.Graveyard
|
||||
SVar:PlayMain1:TRUE
|
||||
Oracle:Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyard.\nLhurgoyf creatures you control have trample.
|
||||
Oracle:Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyards.\nLhurgoyf creatures you control have trample.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Aluren
|
||||
ManaCost:2 G G
|
||||
Types:Enchantment
|
||||
S:Mode$ Continuous | Affected$ Creature.cmcLE3+nonToken | MayPlay$ True | MayPlayCardOwner$ True | MayPlayWithoutManaCost$ True | MayPlayWithFlash$ True | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand,Graveyard,Library,Exile,Command | Description$ Any player may cast creature spells with mana value 3 or less without paying their mana costs and as though they had flash.
|
||||
S:Mode$ Continuous | Affected$ Creature.cmcLE3+nonToken | MayPlay$ True | MayPlayPlayer$ CardOwner | MayPlayWithoutManaCost$ True | MayPlayWithFlash$ True | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand,Graveyard,Library,Exile,Command | Description$ Any player may cast creature spells with mana value 3 or less without paying their mana costs and as though they had flash.
|
||||
SVar:NonStackingEffect:True
|
||||
AI:RemoveDeck:Random
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/aluren.jpg
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:5 U U
|
||||
Types:Sorcery
|
||||
A:SP$ RollDice | Amount$ 2 | Sides$ 8 | ChosenSVar$ X | OtherSVar$ Y | SubAbility$ DBDraw | StackDescription$ SpellDescription | SpellDescription$ Roll two d8 and choose one result. Draw cards equal to that result. Then you may cast an instant or sorcery spell with mana value less than or equal to the other result from your hand without paying its mana cost.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | SubAbility$ DBPlay | StackDescription$ None
|
||||
SVar:DBPlay:DB$ Play | Valid$ Instant,Sorcery | ValidSA$ Spell.cmcLEY | ValidZone$ Hand | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card | ValidSA$ Instant.cmcLEY,Sorcery.cmcLEY | ValidZone$ Hand | WithoutManaCost$ True | Amount$ 1 | Controller$ You | Optional$ True
|
||||
Oracle:Roll two d8 and choose one result. Draw cards equal to that result. Then you may cast an instant or sorcery spell with mana value less than or equal to the other result from your hand without paying its mana cost.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:1 U
|
||||
Types:Creature Elf Wizard
|
||||
PT:2/1
|
||||
A:AB$ RollDice | Cost$ 5 U | Sides$ 20 | ResultSubAbilities$ 1-9:DBDraw,10-20:DBDig | PrecostDesc$ Search the Room — | SpellDescription$ Roll a d20.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ 1-9 VERT Draw a card.
|
||||
SVar:DBDig:DB$ Dig | DigNum$ 3 | ChangeNum$ 1 | SpellDescription$ 10-20 VERT Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||
Oracle:Search the Room — {5}{U}: Roll a d20.\n1-9 | Draw a card.\n10-20 | Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ 1—9 VERT Draw a card.
|
||||
SVar:DBDig:DB$ Dig | DigNum$ 3 | ChangeNum$ 1 | SpellDescription$ 10—20 VERT Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||
Oracle:Search the Room — {5}{U}: Roll a d20.\n1—9 | Draw a card.\n10—20 | Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||
|
||||
@@ -8,6 +8,6 @@ SVar:DBExile:DB$ ChangeZone | Origin$ Sideboard | Destination$ Exile | ChangeTyp
|
||||
SVar:DBPump:DB$ Pump | NoteCards$ Remembered | NoteCardsFor$ ArcaneSavant | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerDescription$ When CARDNAME enters the battlefield, copy a card you exiled with cards named Arcane Savant. You may cast the copy without paying its mana cost.
|
||||
SVar:TrigPlay:DB$ Play | Valid$ Card.YouOwn+NotedForArcaneSavant | ValidZone$ Exile | Amount$ 1 | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ You may copy the exiled card. If you do, you may cast the copy without paying its mana cost. | SubAbility$ DBCleanup
|
||||
SVar:TrigPlay:DB$ Play | Valid$ Card.YouOwn+NotedForArcaneSavant | ValidSA$ Spell | ValidZone$ Exile | Amount$ 1 | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ You may copy the exiled card. If you do, you may cast the copy without paying its mana cost. | SubAbility$ DBCleanup
|
||||
SVar:Picture:https://img.scryfall.com/cards/large/en/cn2/27.jpg?1517813031
|
||||
Oracle:Before you shuffle your deck to start the game, you may reveal this card from your deck and exile an instant or sorcery card you drafted that isn't in your deck.\nWhen Arcane Savant enters the battlefield, copy a card you exiled with cards named Arcane Savant. You may cast the copy without paying its mana cost.
|
||||
|
||||
@@ -5,4 +5,4 @@ PT:0/0
|
||||
K:Modular:4
|
||||
K:Riot
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Modular 4 (This creature enters the battlefield with four +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.)\nRiot (This creature enters the battlefield with your choice of a +1/+1 counter or haste.)
|
||||
Oracle:Modular 4 (This creature enters the battlefield with four +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.)\nRiot (This creature enters the battlefield with your choice of an additional +1/+1 counter or haste.)
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Armory Veteran
|
||||
ManaCost:1 R
|
||||
Types:Creature Orc Warrior
|
||||
PT:2/2
|
||||
S:Mode$ Continuous | Affected$ Card.Self+equipped | AddKeyword$ Menace | Description$ As long as CARDNAME is equipped, it has menace. (It can’t be blocked except by two or more creatures.)
|
||||
S:Mode$ Continuous | Affected$ Card.Self+equipped | AddKeyword$ Menace | Description$ As long as CARDNAME is equipped, it has menace. (It can't be blocked except by two or more creatures.)
|
||||
SVar:EquipMe:Once
|
||||
Oracle:As long as Armory Veteran is equipped, it has menace. (It can’t be blocked except by two or more creatures.)
|
||||
Oracle:As long as Armory Veteran is equipped, it has menace. (It can't be blocked except by two or more creatures.)
|
||||
|
||||
@@ -5,6 +5,6 @@ Loyalty:5
|
||||
A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | TokenAmount$ 1 | TokenScript$ ub_2_3_nightmare_mill | TokenOwner$ You | LegacyImage$ ub 2 3 Nightmare mill thb | SpellDescription$ Create a 2/3 blue and black Nightmare creature token with "Whenever this creature attacks or blocks, each opponent exiles the top two cards of their library."
|
||||
A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBExile | SpellDescription$ Return target nonland permanent to its owner's hand, then that player exiles a card from their hand.
|
||||
SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | DefinedPlayer$ TargetedOwner | Chooser$ TargetedOwner
|
||||
A:AB$ Play | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Valid$ Card.nonLand+faceUp+OwnedBy Player.Opponent | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 3 | Optional$ True | SpellDescription$ You may cast up to three spells from among face-up cards your opponents own from exile without paying their mana costs.
|
||||
A:AB$ Play | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Valid$ Card.faceUp+OwnedBy Player.Opponent | ValidSA$ Spell | ValidZone$ Exile | WithoutManaCost$ True | Amount$ 3 | Optional$ True | SpellDescription$ You may cast up to three spells from among face-up cards your opponents own from exile without paying their mana costs.
|
||||
DeckHas:Ability$Token
|
||||
Oracle:[+1]: Create a 2/3 blue and black Nightmare creature token with "Whenever this creature attacks or blocks, each opponent exiles the top two cards of their library."\n[−3]: Return target nonland permanent to its owner's hand, then that player exiles a card from their hand.\n[−7]: You may cast up to three spells from among face-up cards your opponents own from exile without paying their mana costs.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:6/5
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY
|
||||
SVar:TrigCharm:DB$ Charm | Choices$ DBSacrifice,DBPumpAll
|
||||
SVar:DBSacrifice:DB$ Sacrifice | Defined$ Opponent | SacValid$ Enchantment | SpellDescription$ Antimagic Cone — Each opponent sacrifices an enchantment.
|
||||
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Menace | SpellDescription$ Fear Ray — Creatures you control gain menace until end of turn.
|
||||
Oracle:When Baleful Beholder enters the battlefield, choose one —\n• Antimagic Cone — Each opponent sacrifices an enchantment.\n• Fear Ray — Creatures you control gain menace until end of turn. (A creature with menance can't be blocked except by two or more creatures.)
|
||||
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Menace | SpellDescription$ Fear Ray — Creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.)
|
||||
Oracle:When Baleful Beholder enters the battlefield, choose one —\n• Antimagic Cone — Each opponent sacrifices an enchantment.\n• Fear Ray — Creatures you control gain menace until end of turn. (A creature with menace can't be blocked except by two or more creatures.)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Name:Barbed Spike
|
||||
ManaCost:1 W
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying and attach CARDNAME to it.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying, then attach CARDNAME to it.
|
||||
SVar:TrigToken:DB$ Token | TokenScript$ c_1_1_a_thopter_flying | RememberTokens$ True | SubAbility$ DBAttach
|
||||
SVar:DBAttach:DB$ Attach | Defined$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | Description$ Equipped creature gets +1/+0.
|
||||
K:Equip:2
|
||||
DeckHas:Ability$Token
|
||||
Oracle:When Barbed Spike enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying and attach Barbed Spike to it.\nEquipped creature gets +1/+0.\nEquip {2}
|
||||
Oracle:When Barbed Spike enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying, then attach Barbed Spike to it.\nEquipped creature gets +1/+0.\nEquip {2}
|
||||
|
||||
@@ -7,4 +7,4 @@ T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerZones$ Batt
|
||||
SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenScript$ r_1_1_goblin | TokenOwner$ You | TokenTapped$ True | TokenAttacking$ True
|
||||
SVar:PackTactics:Count$SumPower_Creature.attacking
|
||||
DeckHas:Ability$Token
|
||||
Oracle:{1}{R}: Goblins you control get +1/+0 and gain haste until end of turn.\nPack tactics — Whenever Battle Cry Goblin attacks, if you attacked with creatures with total power 6 or greater this combat, create a 1/1 red Goblin creature token that’s tapped and attacking.
|
||||
Oracle:{1}{R}: Goblins you control get +1/+0 and gain haste until end of turn.\nPack tactics — Whenever Battle Cry Goblin attacks, if you attacked with creatures with total power 6 or greater this combat, create a 1/1 red Goblin creature token that's tapped and attacking.
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Belt of Giant Strength
|
||||
ManaCost:1 G
|
||||
Types:Artifact Equipment
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | SetPower$ 10 | SetToughness$ 10 | Description$ Equipped creature has base power and toughness 10/10.
|
||||
K:Equip:10:::ReduceCost$ X:This ability costs {X} less to activate where X is the power of the creature it targets.
|
||||
K:Equip:10:::ReduceCost$ X:This ability costs {X} less to activate, where X is the power of the creature it targets.
|
||||
SVar:X:Targeted$CardPower
|
||||
Oracle:Equipped creature has base power and toughness 10/10.\nEquip {10}. This ability costs {X} less to activate where X is the power of the creature it targets.
|
||||
Oracle:Equipped creature has base power and toughness 10/10.\nEquip {10}. This ability costs {X} less to activate, where X is the power of the creature it targets.
|
||||
|
||||
@@ -2,8 +2,8 @@ Name:Berserker's Frenzy
|
||||
ManaCost:2 R
|
||||
Types:Instant
|
||||
A:SP$ RollDice | ActivationPhases$ Upkeep->Declare Attackers | Amount$ 2 | Sides$ 20 | IgnoreLower$ 1 | ResultSubAbilities$ 1-14:MustBlock,15-20:ChooseBlock | SpellDescription$ Cast this spell only before combat or during combat before blockers are declared. Roll two d20 and ignore the lower roll.
|
||||
SVar:MustBlock:DB$ ChooseCard | Choices$ Creature | Amount$ X | MinAmount$ 0 | ChoiceTitle$ Choose any number of creatures | SubAbility$ DBPump | SpellDescription$ 1-14 VERT Choose any number of creatures. They block this turn if able.
|
||||
SVar:MustBlock:DB$ ChooseCard | Choices$ Creature | Amount$ X | MinAmount$ 0 | ChoiceTitle$ Choose any number of creatures | SubAbility$ DBPump | SpellDescription$ 1—14 VERT Choose any number of creatures. They block this turn if able.
|
||||
SVar:DBPump:DB$ Pump | Defined$ ChosenCard | KW$ HIDDEN CARDNAME blocks each combat if able.
|
||||
SVar:X:Count$Valid Creature
|
||||
SVar:ChooseBlock:DB$ DeclareCombatants | DeclareBlockers$ True | Until$ EndOfTurn | SpellDescription$ 15-20 VERT You choose which creatures block this turn and how those creatures block.
|
||||
Oracle:Cast this spell only before combat or during combat before blockers are declared.\nRoll two d20 and ignore the lower roll.\n1-14 | Choose any number of creatures. They block this turn if able.\n15-20 | You choose which creatures block this turn and how those creatures block.
|
||||
SVar:ChooseBlock:DB$ DeclareCombatants | DeclareBlockers$ True | Until$ EndOfTurn | SpellDescription$ 15—20 VERT You choose which creatures block this turn and how those creatures block.
|
||||
Oracle:Cast this spell only before combat or during combat before blockers are declared.\nRoll two d20 and ignore the lower roll.\n1—14 | Choose any number of creatures. They block this turn if able.\n15—20 | You choose which creatures block this turn and how those creatures block.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Birchlore Rangers
|
||||
ManaCost:G
|
||||
Types:Creature Elf Druid
|
||||
Types:Creature Elf Druid Ranger
|
||||
PT:1/1
|
||||
A:AB$ Mana | Cost$ tapXType<2/Elf> | Produced$ Any | SpellDescription$ Add one mana of any color.
|
||||
K:Morph:G
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Black Poplar Shaman
|
||||
ManaCost:2 B
|
||||
Types:Creature Treefolk Shaman
|
||||
PT:1/3
|
||||
A:AB$ Regenerate | ValidTgts$ Creature.Treefolk | TgtPrompt$ Select target Treefolk. | Cost$ 2 B | SpellDescription$ Regenerate target Treefolk.
|
||||
A:AB$ Regenerate | ValidTgts$ Treefolk | TgtPrompt$ Select target Treefolk. | Cost$ 2 B | SpellDescription$ Regenerate target Treefolk.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/black_poplar_shaman.jpg
|
||||
Oracle:{2}{B}: Regenerate target Treefolk.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Borderland Ranger
|
||||
ManaCost:2 G
|
||||
Types:Creature Human Scout
|
||||
Types:Creature Human Scout Ranger
|
||||
PT:2/2
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Name:Brain in a Jar
|
||||
ManaCost:2
|
||||
Types:Artifact
|
||||
A:AB$ PutCounter | Cost$ 1 T | CounterType$ CHARGE | CounterNum$ 1 | SubAbility$ DBCast | SpellDescription$ Put a charge counter on Brain in a Jar, then you may cast an instant or sorcery card with mana value equal to the number of charge counters on Brain in a Jar from your hand without paying its mana cost.
|
||||
SVar:DBCast:DB$ Play | ValidZone$ Hand | Valid$ Instant.YouOwn,Sorcery.YouOwn| ValidSA$ Spell.cmcEQY | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ 1
|
||||
A:AB$ PutCounter | Cost$ 1 T | CounterType$ CHARGE | CounterNum$ 1 | SubAbility$ DBCast | SpellDescription$ Put a charge counter on Brain in a Jar, then you may cast an instant or sorcery spell with mana value equal to the number of charge counters on Brain in a Jar from your hand without paying its mana cost.
|
||||
SVar:DBCast:DB$ Play | ValidZone$ Hand | Valid$ Card | ValidSA$ Instant.cmcEQY,Sorcery.cmcEQY | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ 1
|
||||
A:AB$ Scry | Cost$ 3 T SubCounter<X/CHARGE> | ScryNum$ X | AILogic$ BrainJar | SpellDescription$ Scry X.
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:Count$CardCounters.CHARGE
|
||||
|
||||
@@ -3,4 +3,4 @@ ManaCost:1
|
||||
Types:Artifact
|
||||
A:AB$ Draw | Cost$ 2 T Sac<1/CARDNAME> | NumCards$ 3 | SubAbility$ DBChangeZone | StackDescription$ {p:You} draws three cards, | SpellDescription$ Draw three cards, then put two cards from your hand on top of your library in any order.
|
||||
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeNum$ 2 | Mandatory$ True | StackDescription$ then puts two cards from their hand on top of their library in any order.
|
||||
Oracle:{2},{T}, Sacrifice Brainstone: Draw three cards, then put two cards from your hand on top of your library in any order.
|
||||
Oracle:{2}, {T}, Sacrifice Brainstone: Draw three cards, then put two cards from your hand on top of your library in any order.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Bring to Light
|
||||
ManaCost:3 G U
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | Cost$ 3 G U | Origin$ Library | Destination$ Exile | ChangeType$ Creature.cmcLEX,Instant.cmcLEX,Sorcery.cmcLEX | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ DBPlay | SpellDescription$ Converge — Search your library for a creature, instant, or sorcery card with mana value less than or equal to the number of colors of mana spent to cast this spell, exile that card, then shuffle. You may cast that card without paying its mana cost.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$Converge
|
||||
AI:RemoveDeck:All
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:1 B
|
||||
Types:Creature Human Warlock
|
||||
PT:2/1
|
||||
A:AB$ Pump | Cost$ Discard<1/Card> | KW$ Lifelink | SpellDescription$ CARDNAME gains lifelink until end of turn.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 2 | Condition$ Threshold | Description$ Threshold — CARDNAME get +1/+2 as long as seven or more cards are in your graveyard.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 2 | Condition$ Threshold | Description$ Threshold — CARDNAME gets +1/+2 as long as seven or more cards are in your graveyard.
|
||||
DeckHas:Ability$LifeGain & Ability$Discard
|
||||
Oracle:Discard a card: Cabal Initiate gains lifelink until end of turn.\nThreshold — Cabal Initiate get +1/+2 as long as seven or more cards are in your graveyard.
|
||||
Oracle:Discard a card: Cabal Initiate gains lifelink until end of turn.\nThreshold — Cabal Initiate gets +1/+2 as long as seven or more cards are in your graveyard.
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
A:SP$ Attach | Cost$ 1 G W | ValidTgts$ Creature | AILogic$ Curse
|
||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ Enchanted creature can't attack or block.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, support 2. (Put a +1/+1 counter on each of up to two other target creatures.)
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, support 2. (Put a +1/+1 counter on each of up to two target creatures.)
|
||||
SVar:TrigPut:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select up to two target creatures | TargetMin$ 0 | TargetMax$ 2 | CounterType$ P1P1 | CounterNum$ 1
|
||||
Oracle:Enchant creature\nEnchanted creature can't attack or block.\nWhen Captured by Lagacs enters the battlefield, support 2. (Put a +1/+1 counter on each of up to two other target creatures.)
|
||||
Oracle:Enchant creature\nEnchanted creature can't attack or block.\nWhen Captured by Lagacs enters the battlefield, support 2. (Put a +1/+1 counter on each of up to two target creatures.)
|
||||
|
||||
@@ -5,6 +5,6 @@ PT:3/5
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Whenever CARDNAME enters the battlefield or a planeswalker you control dies, look at the top seven cards of your library. You may reveal a planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Planeswalker.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDig | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or a planeswalker you control dies, look at the top seven cards of your library. You may reveal a planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
|
||||
SVar:TrigDig:DB$ Dig | DigNum$ 7 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Planeswalker | RestRandomOrder$ True | Reveal$ True
|
||||
S:Mode$ RaiseCost | ValidCard$ Planeswalker.YouCtrl | Type$ Loyalty | Cost$ AddCounter<1/LOYALTY> | Description$ Planeswalkers' loyalty abilities you activate cost an additional {+1} to activate.
|
||||
S:Mode$ RaiseCost | ValidCard$ Planeswalker.YouCtrl | Type$ Loyalty | Cost$ AddCounter<1/LOYALTY> | Description$ Planeswalkers' loyalty abilities you activate cost an additional [+1] to activate.
|
||||
DeckNeeds:Type$Planeswalker
|
||||
Oracle:Whenever Carth the Lion enters the battlefield or a planeswalker you control dies, look at the top seven cards of your library. You may reveal a planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.\nPlaneswalkers' loyalty abilities you activate cost an additional {+1} to activate.
|
||||
Oracle:Whenever Carth the Lion enters the battlefield or a planeswalker you control dies, look at the top seven cards of your library. You may reveal a planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.\nPlaneswalkers' loyalty abilities you activate cost an additional [+1] to activate.
|
||||
|
||||
@@ -5,5 +5,5 @@ K:ETBReplacement:Other:LandTapped
|
||||
SVar:LandTapped:DB$ Tap | Defined$ Self | ETB$ True | ConditionCheckSVar$ ETBCheckSVar2 | ConditionSVarCompare$ GE2 | SpellDescription$ If you control two or more other lands, CARDNAME enters the battlefield tapped.
|
||||
SVar:ETBCheckSVar2:Count$LastStateBattlefield Land.YouCtrl
|
||||
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
|
||||
A:AB$ Animate | Cost$ 4 W | Defined$ Self | Power$ 3 | Toughness$ 4 | Types$ Creature,Dragon | Colors$ White | Keywords$ Flying | SpellDescription$ CARDNAME becomes a 3/4 white Dragon creature with flying until end of turn. It’s still a land.
|
||||
Oracle:If you control two or more other lands, Cave of the Frost Dragon enters the battlefield tapped.\n{T}: Add {W}.\n{4}{W}: Cave of the Frost Dragon becomes a 3/4 white Dragon creature with flying until end of turn. It’s still a land.
|
||||
A:AB$ Animate | Cost$ 4 W | Defined$ Self | Power$ 3 | Toughness$ 4 | Types$ Creature,Dragon | Colors$ White | Keywords$ Flying | SpellDescription$ CARDNAME becomes a 3/4 white Dragon creature with flying until end of turn. It's still a land.
|
||||
Oracle:If you control two or more other lands, Cave of the Frost Dragon enters the battlefield tapped.\n{T}: Add {W}.\n{4}{W}: Cave of the Frost Dragon becomes a 3/4 white Dragon creature with flying until end of turn. It's still a land.
|
||||
|
||||
@@ -6,8 +6,7 @@ A:AB$ PutCounterAll | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | ValidCa
|
||||
A:AB$ Token | Cost$ AddCounter<0/LOYALTY> | Planeswalker$ True | TokenAmount$ 2 | TokenScript$ r_1_1_elemental | TokenOwner$ You | LegacyImage$ r 1 1 elemental m20 | AtEOT$ Sacrifice | RememberTokens$ True | SubAbility$ DBPump | SpellDescription$ Create two 1/1 red Elemental creature tokens. They gain haste. Sacrifice them at the beginning of the next end step.
|
||||
SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ Haste | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:AB$ Effect | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | AILogic$ CastFromGraveThisTurn | ValidTgts$ Instant.YouCtrl+cmcLE3,Sorcery.YouCtrl+cmcLE3 | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card with mana cost 3 or less | RememberObjects$ Targeted | StaticAbilities$ Play | ExileOnMoved$ Graveyard | SubAbility$ DBEffect | SpellDescription$ You may cast target instant or sorcery card with mana cost 3 or less from your graveyard this turn. If that card would be put into your graveyard this turn, exile it instead.
|
||||
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Graveyard | Description$ You may play remembered card.
|
||||
A:AB$ Play | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Instant.YouCtrl+cmcLE3,Sorcery.YouCtrl+cmcLE3 | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card with mana cost 3 or less | AILogic$ ReplaySpell | ValidSA$ Spell | Optional$ True | ExileOnMoved$ Graveyard | SubAbility$ DBEffect | SpellDescription$ You may cast target instant or sorcery card with mana cost 3 or less from your graveyard. If that card would be put into your graveyard this turn, exile it instead.
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | ExileOnMoved$ Stack | ReplacementEffects$ ReplaceGraveyard
|
||||
SVar:ReplaceGraveyard:Event$ Moved | ValidCard$ Card.IsRemembered | Origin$ Stack | Destination$ Graveyard | ReplaceWith$ MoveExile | Description$ If that card would be put into your graveyard this turn, exile it instead.
|
||||
SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Exile
|
||||
|
||||
@@ -12,6 +12,6 @@ SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Car
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:AB$ Dig | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Defined$ You | DigNum$ 10 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBChoose | SpellDescription$ Exile the top ten cards of your library. Choose an instant or sorcery card exiled this way and copy it three times. You may cast the copies without paying their mana costs.
|
||||
SVar:DBChoose:DB$ ChooseCard | Choices$ Instant.IsRemembered,Sorcery.IsRemembered | Mandatory$ True | ChoiceZone$ Exile | Defined$ You | SubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ ChosenCard | WithoutManaCost$ True | CopyCard$ True | Amount$ 3 | AllowRepeats$ True | Controller$ You | Optional$ True | SubAbility$ DBCleanup
|
||||
SVar:DBPlay:DB$ Play | Defined$ ChosenCard | ValidSA$ Spell | WithoutManaCost$ True | CopyCard$ True | Amount$ 3 | AllowRepeats$ True | Controller$ You | Optional$ True | SubAbility$ DBCleanup
|
||||
AI:RemoveDeck:All
|
||||
Oracle:[+1]: Chandra, Pyromaster deals 1 damage to target player or planeswalker and 1 damage to up to one target creature that player or that planeswalker's controller controls. That creature can't block this turn.\n[0]: Exile the top card of your library. You may play it this turn.\n[−7]: Exile the top ten cards of your library. Choose an instant or sorcery card exiled this way and copy it three times. You may cast the copies without paying their mana costs.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:2 R R
|
||||
Types:Legendary Planeswalker Chandra
|
||||
Loyalty:4
|
||||
A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | Imprint$ True | SubAbility$ DBPlay | AILogic$ ExileAndPlayOrDealDamage | SpellDescription$ Exile the top card of your library. You may cast that card. If you don't, Chandra, Torch of Defiance deals 2 damage to each opponent.
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.nonLand+IsImprinted | ValidZone$ Exile | Controller$ You | Optional$ True | Amount$ All | RememberPlayed$ True | ShowCardToActivator$ True | SubAbility$ DBDamage
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.IsImprinted | ValidSA$ Spell | ValidZone$ Exile | Controller$ You | Optional$ True | Amount$ All | RememberPlayed$ True | ShowCardToActivator$ True | SubAbility$ DBDamage
|
||||
SVar:DBDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 2 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
||||
A:AB$ Mana | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Produced$ R | Amount$ 2 | AILogic$ ManaRitual | AINoRecursiveCheck$ True | SpellDescription$ Add {R}{R}.
|
||||
|
||||
@@ -4,10 +4,10 @@ Types:Creature Human Shaman
|
||||
PT:4/3
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigRollDice | TriggerDescription$ Wild Magic Surge — Whenever CARDNAME attacks, ABILITY
|
||||
SVar:TrigRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:Exile1,10-19:Exile2,20:Exile3 | SpellDescription$ roll a d20.
|
||||
SVar:Exile1:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ 1-9 VERT Exile the top card of your library. You may play it this turn.
|
||||
SVar:Exile2:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ 10-19 VERT Exile the top two cards of your library. You may play them this turn.
|
||||
SVar:Exile1:DB$ Dig | Defined$ You | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ 1—9 VERT Exile the top card of your library. You may play it this turn.
|
||||
SVar:Exile2:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ 10—19 VERT Exile the top two cards of your library. You may play them this turn.
|
||||
SVar:Exile3:DB$ Dig | Defined$ You | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ 20 VERT Exile the top three cards of your library. You may play them this turn.
|
||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | ForgetOnMoved$ Exile | SubAbility$ DBCleanup
|
||||
SVar:STPlay:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Exile | Affected$ Card.IsRemembered | MayPlay$ True | Description$ You may play the card(s) this turn.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Wild Magic Surge — Whenever Chaos Channeler attacks, roll a d20.\n1-9 | Exile the top card of your library. You may play it this turn.\n10-19 | Exile the top two cards of your library. You may play them this turn.\n20 | Exile the top three cards of your library. You may play them this turn.
|
||||
Oracle:Wild Magic Surge — Whenever Chaos Channeler attacks, roll a d20.\n1—9 | Exile the top card of your library. You may play it this turn.\n10—19 | Exile the top two cards of your library. You may play them this turn.\n20 | Exile the top three cards of your library. You may play them this turn.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Chaos Wand
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ DigUntil | Cost$ 4 T | ValidTgts$ Opponent | Valid$ Instant,Sorcery | ValidDescription$ instant or sorcery | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | RememberRevealed$ True | IsCurse$ True | SubAbility$ DBPlay | SpellDescription$ Target opponent exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then put the exiled cards that weren't cast this way on the bottom of that library in a random order.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidZone$ Exile | Valid$ Instant.IsRemembered,Sorcery.IsRemembered | WithoutManaCost$ True | RememberObjects$ Remembered | Optional$ True | ForgetTargetRemembered$ True | SubAbility$ DBRestRandomOrder
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidZone$ Exile | Valid$ Instant.IsRemembered,Sorcery.IsRemembered | ValidSA$ Spell | WithoutManaCost$ True | RememberObjects$ Remembered | Optional$ True | ForgetTargetRemembered$ True | SubAbility$ DBRestRandomOrder
|
||||
SVar:DBRestRandomOrder:DB$ ChangeZone | Defined$ Remembered | AtRandom$ True | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/chaos_wand.jpg
|
||||
|
||||
@@ -4,4 +4,4 @@ Types:Sorcery
|
||||
K:Storm
|
||||
A:SP$ Token | Cost$ 1 G | TokenAmount$ 1 | TokenScript$ g_1_1_squirrel | TokenOwner$ You | SpellDescription$ Create a 1/1 green Squirrel creature token.
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Create a 1/1 green Squirrel creature token.\nStorm (When you cast this spell, copy it for each spell cast before it this turn. You may choose new targets for the copies.)
|
||||
Oracle:Create a 1/1 green Squirrel creature token.\nStorm (When you cast this spell, copy it for each spell cast before it this turn.)
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Dinosaur
|
||||
PT:2/1
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigEffect | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may cast Dinosaur spells this turn as though they had flash, and whenever you cast a Dinosaur spell this turn, it gains "When this creature enters the battlefield, you may have it fight another target creature."
|
||||
SVar:TrigEffect:DB$ Effect | Name$ Cherished Hatchling Effect | StaticAbilities$ STFlash | Triggers$ HatchlingCast
|
||||
SVar:STFlash:Mode$ Continuous | EffectZone$ Command | Affected$ Dinosaur.nonToken+YouCtrl | MayPlay$ True | MayPlayCardOwner$ True | MayPlayWithFlash$ True | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand,Graveyard,Library,Exile | Description$ You may cast Dinosaur spells this turn as though they had flash.
|
||||
SVar:STFlash:Mode$ Continuous | EffectZone$ Command | Affected$ Dinosaur.nonToken+YouCtrl | MayPlay$ True | MayPlayPlayer$ CardOwner | MayPlayWithFlash$ True | MayPlayDontGrantZonePermissions$ True | AffectedZone$ Hand,Graveyard,Library,Exile | Description$ You may cast Dinosaur spells this turn as though they had flash.
|
||||
SVar:HatchlingCast:Mode$ SpellCast | ValidCard$ Dinosaur | ValidActivatingPlayer$ You | Execute$ TrigHatchlingAnimate | TriggerZones$ Command | TriggerDescription$ Whenever you cast a Dinosaur spell this turn, it gains "When this creature enters the battlefield, you may have it fight another target creature."
|
||||
SVar:TrigHatchlingAnimate:DB$ Animate | Defined$ TriggeredCard | Duration$ Permanent | Triggers$ TrigETBHatchling | sVars$ HatchlingFight
|
||||
SVar:TrigETBHatchling:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ HatchlingFight | OptionalDecider$ You | TriggerDescription$ When this creature enters the battlefield, you may have it fight another target creature.
|
||||
|
||||
@@ -6,4 +6,4 @@ SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature |
|
||||
SVar:X:Targeted$CardPower
|
||||
SVar:Y:Targeted$CardToughness
|
||||
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying | NumDmg$ 5 | SpellDescription$ Archery — This spell deals 5 damage to target creature with flying.
|
||||
Oracle:Choose one —\n• Two-Weapon Fighting — Double target creature’s power and toughness until end of turn.\n• Archery — This spell deals 5 damage to target creature with flying.
|
||||
Oracle:Choose one —\n• Two-Weapon Fighting — Double target creature's power and toughness until end of turn.\n• Archery — This spell deals 5 damage to target creature with flying.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Circle of the Moon Druid
|
||||
Name:Circle of the Moon Druid
|
||||
ManaCost:2 G
|
||||
Types:Creature Human Elf Druid
|
||||
PT:2/4
|
||||
S:Mode$ Continuous | Affected$ Card.Self | Condition$ PlayerTurn | EffectZone$ Battlefield | SetPower$ 4 | SetToughness$ 2 | AddType$ Creature & Bear | RemoveCreatureTypes$ True | Description$ Bear Form — As long as it’s your turn, CARDNAME is a Bear with base power and toughness 4/2. (It loses all other creature types.)
|
||||
Oracle:Bear Form — As long as it’s your turn, Circle of the Moon Druid is a Bear with base power and toughness 4/2. (It loses all other creature types.)
|
||||
S:Mode$ Continuous | Affected$ Card.Self | Condition$ PlayerTurn | EffectZone$ Battlefield | SetPower$ 4 | SetToughness$ 2 | AddType$ Creature & Bear | RemoveCreatureTypes$ True | Description$ Bear Form — As long as it's your turn, CARDNAME is a Bear with base power and toughness 4/2. (It loses all other creature types.)
|
||||
Oracle:Bear Form — As long as it's your turn, Circle of the Moon Druid is a Bear with base power and toughness 4/2. (It loses all other creature types.)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Cloudgoat Ranger
|
||||
ManaCost:3 W W
|
||||
Types:Creature Giant Warrior
|
||||
Types:Creature Giant Warrior Ranger
|
||||
PT:3/3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create three 1/1 white Kithkin Soldier creature tokens.
|
||||
SVar:TrigToken:DB$ Token | TokenAmount$ 3 | TokenScript$ w_1_1_kithkin_soldier | TokenOwner$ You | LegacyImage$ w 1 1 kithkin soldier lrw
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ Mana | Cost$ T SubCounter<1/COMPONENT> | Amount$ 2 | Produced$ Combo AnyDifferent | SpellDescription$ Add two mana of different colors.
|
||||
A:AB$ RollDice | Cost$ T | Sides$ 20 | ResultSubAbilities$ 1-9:PutOne,10-20:PutTwo | SpellDescription$ Roll a d20.
|
||||
SVar:PutOne:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 1 | SpellDescription$ 1-9 VERT Put a component counter on CARDNAME.
|
||||
SVar:PutTwo:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 2 | SpellDescription$ 10-20 VERT Put two component counters on CARDNAME.
|
||||
SVar:PutOne:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 1 | SpellDescription$ 1—9 VERT Put a component counter on CARDNAME.
|
||||
SVar:PutTwo:DB$ PutCounter | Defined$ Self | CounterType$ COMPONENT | CounterNum$ 2 | SpellDescription$ 10—20 VERT Put two component counters on CARDNAME.
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:{T}, Remove a component counter from Component Pouch: Add two mana of different colors.\n{T}: Roll a d20.\n1-9 | Put a component counter on Component Pouch.\n10-20 | Put two component counters on Component Pouch.
|
||||
Oracle:{T}, Remove a component counter from Component Pouch: Add two mana of different colors.\n{T}: Roll a d20.\n1—9 | Put a component counter on Component Pouch.\n10—20 | Put two component counters on Component Pouch.
|
||||
|
||||
@@ -2,8 +2,8 @@ Name:Contact Other Plane
|
||||
ManaCost:3 U
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Cost$ 3 U | Sides$ 20 | ResultSubAbilities$ 1-9:DBDraw2,10-19:DBScry2,20:DBScry3 | SpellDescription$ Roll a d20.
|
||||
SVar:DBDraw2:DB$ Draw | NumCards$ 2 | SpellDescription$ 1-9 VERT Draw two cards.
|
||||
SVar:DBScry2:DB$ Scry | ScryNum$ 2 | SubAbility$ DBDraw2 | SpellDescription$ 10-19 VERT Scry 2, then draw two cards.
|
||||
SVar:DBDraw2:DB$ Draw | NumCards$ 2 | SpellDescription$ 1—9 VERT Draw two cards.
|
||||
SVar:DBScry2:DB$ Scry | ScryNum$ 2 | SubAbility$ DBDraw2 | SpellDescription$ 10—19 VERT Scry 2, then draw two cards.
|
||||
SVar:DBScry3:DB$ Scry | ScryNum$ 3 | SubAbility$ DBDraw3 | SpellDescription$ 20 VERT Scry 3, then draw three cards.
|
||||
SVar:DBDraw3:DB$ Draw | NumCards$ 3
|
||||
Oracle:Roll a d20.\n1-9 | Draw two cards.\n10-19 | Scry 2, then draw two cards.\n20 | Scry 3, then draw three cards.
|
||||
Oracle:Roll a d20.\n1—9 | Draw two cards.\n10—19 | Scry 2, then draw two cards.\n20 | Scry 3, then draw three cards.
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Counterlash
|
||||
ManaCost:4 U U
|
||||
Types:Instant
|
||||
A:SP$ Counter | Cost$ 4 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | SubAbility$ DBPlay | SpellDescription$ Counter target spell. You may cast a spell that shares a card type with it from your hand without paying its mana cost.
|
||||
SVar:DBPlay:DB$ Play | Valid$ Targeted.sharesCardTypeWith+nonLand+YouCtrl | ValidZone$ Hand | WithoutManaCost$ True | Optional$ True
|
||||
SVar:DBPlay:DB$ Play | Valid$ Targeted.sharesCardTypeWith+YouCtrl | ValidSA$ Spell | ValidZone$ Hand | WithoutManaCost$ True | Optional$ True
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/counterlash.jpg
|
||||
Oracle:Counter target spell. You may cast a spell that shares a card type with it from your hand without paying its mana cost.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Sorcery
|
||||
K:Demonstrate
|
||||
A:SP$ Shuffle | SubAbility$ DBDigUntil | StackDescription$ {p:You} shuffles their library, | SpellDescription$ Shuffle your library,
|
||||
SVar:DBDigUntil:DB$ DigUntil | Defined$ You | Valid$ Card.nonLand | FoundDestination$ Exile | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | RememberFound$ True | SubAbility$ DBPlay | StackDescription$ then reveals cards from the top of it until they reveal a nonland card. {p:You} exiles that card and puts the rest on the bottom of their library in a random order. | SpellDescription$ then reveal cards from the top of it until you reveal a nonland card. Exile that card and put the rest on the bottom of your library in a random order.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | StackDescription$ {p:You} may cast the exiled card without paying its mana cost. | SpellDescription$ You may cast the exiled card without paying its mana cost.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | StackDescription$ {p:You} may cast the exiled card without paying its mana cost. | SpellDescription$ You may cast the exiled card without paying its mana cost.
|
||||
Oracle:Demonstrate (When you cast this spell, you may copy it. If you do, choose an opponent to also copy it.)\nShuffle your library, then reveal cards from the top of it until you reveal a nonland card. Exile that card and put the rest on the bottom of your library in a random order. You may cast the exiled card without paying its mana cost.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Dancing Sword
|
||||
ManaCost:1 W
|
||||
Types:Artifact Equipment
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$ 1 | Description$ Equipped creature gets +2/+1.
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigAnimate | OptionalDecider$ You | TriggerDescription$ When equipped creature dies, you may have CARDNAME become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn’t an Equipment.
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigAnimate | OptionalDecider$ You | TriggerDescription$ When equipped creature dies, you may have CARDNAME become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.
|
||||
SVar:TrigAnimate:DB$ Animate | Defined$ Self | Types$ Artifact,Creature,Construct | Power$ 2 | Toughness$ 1 | Keywords$ Flying & Ward:1 | RemoveCardTypes$ True | RemoveSubTypes$ True | Duration$ Permanent
|
||||
K:Equip:1
|
||||
Oracle:Equipped creature gets +2/+1.\nWhen equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn’t an Equipment.\nEquip {1}
|
||||
Oracle:Equipped creature gets +2/+1.\nWhen equipped creature dies, you may have Dancing Sword become a 2/1 Construct artifact creature with flying and ward {1}. If you do, it isn't an Equipment.\nEquip {1}
|
||||
|
||||
@@ -8,4 +8,4 @@ SVar:DBGainLife:DB$ GainLife | LifeAmount$ 2 | SpellDescription$ Cure Wounds —
|
||||
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment | SpellDescription$ Dispel Magic — Destroy target enchantment.
|
||||
SVar:DBExileCard:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target card in a graveyard | ValidTgts$ Card | SpellDescription$ Gentle Repose — Exile target card from a graveyard.
|
||||
DeckHas:Ability$LifeGain
|
||||
Oracle:When Dawnbringer Cleric enters the battlefield, choose one — \n• Cure Wounds — You gain 2 life.\n• Dispel Magic — Destroy target enchantment.\n• Gentle Repose — Exile target card from a graveyard.
|
||||
Oracle:When Dawnbringer Cleric enters the battlefield, choose one —\n• Cure Wounds — You gain 2 life.\n• Dispel Magic — Destroy target enchantment.\n• Gentle Repose — Exile target card from a graveyard.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Daybreak Ranger
|
||||
ManaCost:2 G
|
||||
Types:Creature Human Archer Werewolf
|
||||
Types:Creature Human Archer Ranger Werewolf
|
||||
PT:2/2
|
||||
A:AB$DealDamage | Cost$ T | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with flying. | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to target creature with flying.
|
||||
T:Mode$Phase | Phase$ Upkeep | WerewolfTransformCondition$ True | TriggerZones$ Battlefield | Execute$ TrigTransform | TriggerDescription$ At the beginning of each upkeep, if no spells were cast last turn, transform CARDNAME.
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:4/5
|
||||
K:Flying
|
||||
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDigUntil | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order.
|
||||
SVar:TrigDigUntil:DB$ DigUntil | Defined$ TriggeredTarget | Valid$ Instant,Sorcery | ValidDescription$ instant or sorcery | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | RememberRevealed$ True | IsCurse$ True | SubAbility$ DBPlay | SpellDescription$ Whenever CARDNAME deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidZone$ Exile | Valid$ Instant.IsRemembered,Sorcery.IsRemembered | WithoutManaCost$ True | RememberObjects$ Remembered | Optional$ True | ForgetTargetRemembered$ True | SubAbility$ DBRestRandomOrder
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidZone$ Exile | Valid$ Instant.IsRemembered,Sorcery.IsRemembered | ValidSA$ Spell | WithoutManaCost$ True | RememberObjects$ Remembered | Optional$ True | ForgetTargetRemembered$ True | SubAbility$ DBRestRandomOrder
|
||||
SVar:DBRestRandomOrder:DB$ ChangeZone | Defined$ Remembered | AtRandom$ True | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Flying\nWhenever Dazzling Sphinx deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Deadly Dispute
|
||||
ManaCost:1 B
|
||||
Types:Instant
|
||||
A:SP$ Draw | Cost$ 1 B Sac<1/Artifact;Creature/artifact or creature> | NumCards$ 2 | SubAbility$ DBToken | StackDescription$ SpellDescription | SpellDescription$ Draw two cards and create a Treasure token.
|
||||
A:SP$ Draw | Cost$ 1 B Sac<1/Artifact;Creature/artifact or creature> | NumCards$ 2 | SubAbility$ DBToken | StackDescription$ SpellDescription | SpellDescription$ Draw two cards and create a Treasure token.
|
||||
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Draw two cards and create a Treasure token. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.")
|
||||
Oracle:As an additional cost to cast this spell, sacrifice an artifact or creature.\nDraw two cards and create a Treasure token. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.")
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Creature Spirit Avatar
|
||||
PT:7/7
|
||||
K:Trample
|
||||
K:etbCounter:M1M1:2
|
||||
A:AB$ Regenerate | Cost$ BG SubCounter<1/M1M1> | SpellDescription$ Regenerate Deity of Scars.
|
||||
A:AB$ Regenerate | Cost$ BG SubCounter<1/M1M1> | SpellDescription$ Regenerate CARDNAME.
|
||||
SVar:Picture:http://wizards.com/global/images/magic/general/deity_of_scars.jpg
|
||||
Oracle:Trample\nDeity of Scars enters the battlefield with two -1/-1 counters on it.\n{B/G}, Remove a -1/-1 counter from Deity of Scars: Regenerate Deity of Scars.
|
||||
|
||||
@@ -5,13 +5,13 @@ PT:3/2
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DBLoop | TriggerDescription$ Whenever CARDNAME attacks, choose target creature you control, then ABILITY
|
||||
SVar:DBLoop:DB$ Repeat | ValidTgts$ Creature.YouCtrl | RepeatCheckSVar$ RepeatCheck | RepeatSVarCompare$ GT0 | RepeatSubAbility$ DBRollDice | RepeatOptional$ True
|
||||
SVar:DBRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-14:DBCopy,15-20:DBCopyRepeat | SpellDescription$ roll a d20.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBNotRepeat | SpellDescription$ 1-14 VERT Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBNotRepeat | SpellDescription$ 1—14 VERT Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat."
|
||||
SVar:DBNotRepeat:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 0
|
||||
SVar:DBCopyRepeat:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBRepeat | SpellDescription$ 15-20 VERT Create one of those tokens. You may roll again.
|
||||
SVar:DBCopyRepeat:DB$ CopyPermanent | Defined$ Targeted | TokenTapped$ True | TokenAttacking$ True | NonLegendary$ True | AddSVars$ DelinaTrigExile | AddTriggers$ TrigPhase | SubAbility$ DBRepeat | SpellDescription$ 15—20 VERT Create one of those tokens. You may roll again.
|
||||
SVar:TrigPhase:Mode$ Phase | Phase$ EndCombat | TriggerZones$ Battlefield | Execute$ DelinaTrigExile | TriggerDescription$ Exile this creature at end of combat.
|
||||
SVar:DelinaTrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile
|
||||
SVar:DBRepeat:DB$ StoreSVar | SVar$ RepeatCheck | Type$ Number | Expression$ 1
|
||||
SVar:RepeatCheck:Number$1
|
||||
SVar:HasAttackEffect:TRUE
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Whenever Delina, Wild Mage attacks, choose target creature you control, then roll a d20.\n1-14 | Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat."\n15-20 | Create one of those tokens. You may roll again.
|
||||
Oracle:Whenever Delina, Wild Mage attacks, choose target creature you control, then roll a d20.\n1—14 | Create a tapped and attacking token that's a copy of that creature, except it's not legendary and it has "Exile this creature at end of combat."\n15—20 | Create one of those tokens. You may roll again.
|
||||
|
||||
@@ -4,10 +4,10 @@ Types:Creature Skeleton Wizard
|
||||
PT:4/3
|
||||
S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Color$ U | Amount$ X | EffectZone$ All | Description$ This spell costs {U} less to cast for each instant and sorcery spell you've cast this turn.
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile up to one target instant or sorcery card from your graveyard. Copy it. You may cast the copy.
|
||||
SVar:TrigExile:DB$ChangeZone | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose up to one target instant or sorcery card in your graveyard | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | RememberChanged$ True | SubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | CopyOnce$ True | Optional$ True | CopyCard$ True | SubAbility$ DBCleanup
|
||||
SVar:TrigExile:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose up to one target instant or sorcery card in your graveyard | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | RememberChanged$ True | SubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell | Optional$ True | CopyCard$ True | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:AltCost:Cost$ U U U U ExileFromGrave<4/Instant;Sorcery/instant or sorcery cards> | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs.
|
||||
SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl
|
||||
DeckNeeds:Type$Instant|Sorcery
|
||||
Oracle:This spell costs {U} less to cast for each instant and sorcery spell you've cast this turn.\nWhenever Demilich attacks, exile up to one target instant or sorcery card from your graveyard. Copy it. You may cast the copy.\nYou may cast Demilich from your graveyard by exiling four instants and/or sorcery cards from your graveyard in addition to paying its other costs.
|
||||
Oracle:This spell costs {U} less to cast for each instant and sorcery spell you've cast this turn.\nWhenever Demilich attacks, exile up to one target instant or sorcery card from your graveyard. Copy it. You may cast the copy.\nYou may cast Demilich from your graveyard by exiling four instant and/or sorcery cards from your graveyard in addition to paying its other costs.
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Artifact Vehicle
|
||||
PT:0/0
|
||||
K:ETBReplacement:Other:Imprint
|
||||
SVar:Imprint:DB$ ChangeZone | Imprint$ True | ChangeType$ Creature | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Exile | Mandatory$ True | Hidden$ True | Chooser$ You | SpellDescription$ Imprint - As CARDNAME enters the battlefield, exile a creature card from a graveyard.
|
||||
A:AB$ Clone | Cost$ tapXType<2/Creature> | Defined$ Imprinted | Duration$ UntilEndOfTurn | ImprintRememberedNoCleanup$ True | AddTypes$ Vehicle & Artifact | StackDescription$ Until end of turn, CARDNAME becomes a copy of {c:Imprinted}, except it’s a Vehicle artifact in addition to its other types. | SpellDescription$ Until end of turn, CARDNAME becomes a copy of the imprinted card, except it's a Vehicle artifact in addition to its other types.
|
||||
A:AB$ Clone | Cost$ tapXType<2/Creature> | Defined$ Imprinted | Duration$ UntilEndOfTurn | ImprintRememberedNoCleanup$ True | AddTypes$ Vehicle & Artifact | StackDescription$ Until end of turn, CARDNAME becomes a copy of {c:Imprinted}, except it’s a Vehicle artifact in addition to its other types. | SpellDescription$ Until end of turn, CARDNAME becomes a copy of the exiled card, except it's a Vehicle artifact in addition to its other types.
|
||||
SVar:NeedsToPlay:Creature.inZoneGraveyard
|
||||
Oracle:Imprint — As Dermotaxi enters the battlefield, exile a creature card from a graveyard.\nTap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the imprinted card, except it's a Vehicle artifact in addition to its other types.
|
||||
Oracle:Imprint — As Dermotaxi enters the battlefield, exile a creature card from a graveyard.\nTap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the exiled card, except it's a Vehicle artifact in addition to its other types.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:2 G
|
||||
Types:Enchantment
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBReveal | TriggerDescription$ At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast it without paying its mana cost. If you don't cast it, put it on the bottom of your library.
|
||||
SVar:DBReveal:DB$ PeekAndReveal | PeekAmount$ 1 | RevealValid$ Card | RememberRevealed$ True | SubAbility$ DBMayCast
|
||||
SVar:DBMayCast:DB$ Play | Defined$ Remembered | ForgetRemembered$ True | WithoutManaCost$ True | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Creature.sharesCreatureTypeWith Valid Creature.YouCtrl | SubAbility$ DBChangeZone
|
||||
SVar:DBMayCast:DB$ Play | Defined$ Remembered | ValidSA$ Spell | ForgetRemembered$ True | WithoutManaCost$ True | Optional$ True | ConditionDefined$ Remembered | ConditionPresent$ Creature.sharesCreatureTypeWith Valid Creature.YouCtrl | SubAbility$ DBChangeZone
|
||||
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | Shuffle$ False | ForgetChanged$ True
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:At the beginning of your upkeep, reveal the top card of your library. If it's a creature card that shares a creature type with a creature you control, you may cast it without paying its mana cost. If you don't cast it, put it on the bottom of your library.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Avatar
|
||||
PT:5/5
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ CastEach | TriggerDescription$ When CARDNAME enters the battlefield, for each opponent, you may cast up to one target instant or sorcery card from that player's graveyard without paying its mana cost. If a spell cast this way would be put into a graveyard this turn, exile it instead.
|
||||
SVar:CastEach:DB$ Play | ValidTgts$ Instant.OppCtrl,Sorcery.OppCtrl | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card in each opponent's graveyard | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | Amount$ All | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
SVar:CastEach:DB$ Play | ValidTgts$ Instant.OppCtrl,Sorcery.OppCtrl | TgtZone$ Graveyard | TgtPrompt$ Select target instant or sorcery card in each opponent's graveyard | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | Amount$ All | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
SVar:OneEach:PlayerCountOpponents$Amount
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/diluvian_primordial.jpg
|
||||
Oracle:Flying\nWhen Diluvian Primordial enters the battlefield, for each opponent, you may cast up to one target instant or sorcery card from that player's graveyard without paying its mana cost. If a spell cast this way would be put into a graveyard this turn, exile it instead.
|
||||
|
||||
@@ -2,9 +2,9 @@ Name:Diviner's Portent
|
||||
ManaCost:X U U U
|
||||
Types:Instant
|
||||
A:SP$ RollDice | Sides$ 20 | Modifier$ Y | ResultSubAbilities$ 1-14:DBDraw,Else:DBScry | SpellDescription$ Roll a d20 and add the number of cards in your hand.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | SpellDescription$ 1-14 VERT Draw X cards.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ X | SpellDescription$ 1—14 VERT Draw X cards.
|
||||
SVar:DBScry:DB$ Scry | ScryNum$ X | SubAbility$ DBDraw2 | SpellDescription$ 15+ VERT Scry X, then draw X cards.
|
||||
SVar:DBDraw2:DB$ Draw | NumCards$ X
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:Count$InYourHand
|
||||
Oracle:Roll a d20 and add the number of cards in your hand.\n1-14 | Draw X cards.\n15+ | Scry X, then draw X cards.
|
||||
Oracle:Roll a d20 and add the number of cards in your hand.\n1—14 | Draw X cards.\n15+ | Scry X, then draw X cards.
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:3/3
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigRollDice | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY
|
||||
SVar:TrigRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:Scry1,10-19:Scry2,20:Scry3 | SpellDescription$ roll a d20.
|
||||
SVar:Scry1:DB$ Scry | ScryNum$ 1 | SpellDescription$ 1-9 VERT Scry 1.
|
||||
SVar:Scry2:DB$ Scry | ScryNum$ 2 | SpellDescription$ 10-19 VERT Scry 2.
|
||||
SVar:Scry1:DB$ Scry | ScryNum$ 1 | SpellDescription$ 1—9 VERT Scry 1.
|
||||
SVar:Scry2:DB$ Scry | ScryNum$ 2 | SpellDescription$ 10—19 VERT Scry 2.
|
||||
SVar:Scry3:DB$ Scry | ScryNum$ 3 | SpellDescription$ 20 VERT Scry 3.
|
||||
Oracle:Flying\nWhen Djinni Windseer enters the battlefield, roll a d20.\n1-9 | Scry 1.\n10-19 | Scry 2.\n20 | Scry 3.
|
||||
Oracle:Flying\nWhen Djinni Windseer enters the battlefield, roll a d20.\n1—9 | Scry 1.\n10—19 | Scry 2.\n20 | Scry 3.
|
||||
|
||||
@@ -3,9 +3,9 @@ ManaCost:1 U U
|
||||
Types:Creature Dragon Turtle
|
||||
PT:3/5
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Drag Below – When CARDNAME enters the battlefield, tap it and up to one target creature an opponent controls. They don’t untap during their controllers' next untap steps.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ Drag Below — When CARDNAME enters the battlefield, tap it and up to one target creature an opponent controls. They don't untap during their controllers' next untap steps.
|
||||
SVar:TrigTap:DB$ Tap | Defined$ Self | RememberTapped$ True | SubAbility$ DBTap
|
||||
SVar:DBTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select up to one target creature an opponent controls | TargetMin$ 0 | TargetMax$ 1 | AlwaysRemember$ True | SubAbility$ DBPump
|
||||
SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Flash\nDrag Below — When Dragon Turtle enters the battlefield, tap it and up to one target creature an opponent controls. They don’t untap during their controllers' next untap steps.
|
||||
Oracle:Flash\nDrag Below — When Dragon Turtle enters the battlefield, tap it and up to one target creature an opponent controls. They don't untap during their controllers' next untap steps.
|
||||
|
||||
@@ -11,4 +11,4 @@ SVar:DragonControlled:Count$Valid Dragon.inZoneBattlefield+YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Dragon.YouCtrl | AddKeyword$ Ward:1 | Description$ Dragons you control have ward {1}. (Whenever a Dragon you control becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.)
|
||||
DeckHas:Ability$Counters
|
||||
DeckNeeds:Type$Dragon
|
||||
Oracle:As Dragon's Disciple enters the battlefield, you may reveal a Dragon card from your hand. If you do, or if you control a Dragon, Dragon's Disciple enters the battlefield with a +1/+1 counter on it.\nDragons you control have ward {1}. (Whenever a Dragon you control becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.)
|
||||
Oracle:As Dragon's Disciple enters the battlefield, you may reveal a Dragon card from your hand. If you do or if you control a Dragon, Dragon's Disciple enters the battlefield with a +1/+1 counter on it.\nDragons you control have ward {1}. (Whenever a Dragon you control becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.)
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Creature Zombie Wizard
|
||||
PT:1/3
|
||||
K:Trample
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerDescription$ Whenever CARDNAME attacks, you may cast target instant or sorcery card with mana value less than or equal to CARDNAME's power from your graveyard without paying its mana cost. If that spell would be put into your graveyard this turn, exile it instead.
|
||||
SVar:TrigPlay:DB$ Play | TgtZone$ Graveyard | ValidTgts$ Instant.YouCtrl+cmcLEX,Sorcery.YouCtrl+cmcLEX | TgtPrompt$ Choose target instant or sorcery card with mana value X or less from your graveyard | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
SVar:TrigPlay:DB$ Play | TgtZone$ Graveyard | ValidTgts$ Instant.YouCtrl+cmcLEX,Sorcery.YouCtrl+cmcLEX | TgtPrompt$ Choose target instant or sorcery card with mana value X or less from your graveyard | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
SVar:X:Count$CardPower
|
||||
Oracle:Trample\nWhenever Dreadhorde Arcanist attacks, you may cast target instant or sorcery card with mana value less than or equal to Dreadhorde Arcanist's power from your graveyard without paying its mana cost. If that spell would be put into your graveyard this turn, exile it instead.
|
||||
|
||||
@@ -5,5 +5,5 @@ K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | Description$ Equipped creature gets +2/+0.
|
||||
K:Equip:3
|
||||
Oracle:Flash\nWhen Dueling Rapier enters the battlefield, attach it to target creature you control.\nEquipped creature gets +2/+0.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
K:Equip:4
|
||||
Oracle:Flash\nWhen Dueling Rapier enters the battlefield, attach it to target creature you control.\nEquipped creature gets +2/+0.\nEquip {4} ({4}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
|
||||
@@ -4,5 +4,6 @@ Types:Creature Zombie
|
||||
PT:2/1
|
||||
K:CARDNAME enters the battlefield tapped.
|
||||
T:Mode$ DungeonCompleted | ValidPlayer$ You | TriggerZones$ Graveyard | OptionalDecider$ You | Execute$ DBReturn | TriggerDescription$ Whenever you complete a dungeon, you may return CARDNAME from your graveyard to your hand.
|
||||
SVar:DBReturn:DB$ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ Self
|
||||
SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ Self
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Dungeon Crawler enters the battlefield tapped.\nWhenever you complete a dungeon, you may return Dungeon Crawler from your graveyard to your hand.
|
||||
|
||||
@@ -14,5 +14,5 @@ SVar:DBGraveyard:DB$ Token | TokenScript$ b_1_1_skeleton | TokenOwner$ You | Tok
|
||||
SVar:DBMines:DB$ Scry | ScryNum$ 3 | RoomName$ Deep Mines | SpellDescription$ Scry 3. | NextRoom$ DBLair
|
||||
SVar:DBLair:DB$ Draw | Defined$ You | NumCards$ 3 | RememberDrawn$ True | SubAbility$ DBReveal | RoomName$ Mad Wizard's Lair | SpellDescription$ Draw three cards and reveal them. You may cast one of them without paying its mana cost.
|
||||
SVar:DBReveal:DB$ Reveal | Defined$ You | RevealDefined$ Remembered | SubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered.nonLand | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
Oracle:Yawning Portal — You gain 1 life. (→ Dungeon Level)\nDungeon Level — Scry 1. (→ Goblin Bazaar or Twisted Caverns)\nGoblin Bazaar — Create a Treasure token. (→ Lost Level)\nTwisted Caverns — Target creature can't attack until your next turn. (→ Lost Level)\nLost Level — Scry 2. (→ Runestone Caverns or Muiral's Graveyard)\nRunestone Caverns — Exile the top two cards of your library. You may play them. (→ Deep Mines)\nMuiral's Graveyard — Create two 1/1 black Skeleton creature tokens. (→ Deep Mines)\nDeep Mines — Scry 3. (→ Mad Wizard's Lair)\nMad Wizard's Lair — Draw three cards and reveal them. You may cast one of them without paying its mana cost.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
Oracle:Yawning Portal — You gain 1 life. (Leads to: Dungeon Level)\nDungeon Level — Scry 1. (Leads to: Goblin Bazaar, Twisted Caverns)\nGoblin Bazaar — Create a Treasure token. (Leads to: Lost Level)\nTwisted Caverns — Target creature can't attack until your next turn. (Leads to: Lost Level)\nLost Level — Scry 2. (Leads to: Runestone Caverns, Muiral's Graveyard)\nRunestone Caverns — Exile the top two cards of your library. You may play them. (Leads to: Deep Mines)\nMuiral's Graveyard — Create two 1/1 black Skeleton creature tokens. (Leads to: Deep Mines)\nDeep Mines — Scry 3. (Leads to: Mad Wizard's Lair)\nMad Wizard's Lair — Draw three cards and reveal them. You may cast one of them without paying its mana cost.
|
||||
|
||||
@@ -4,8 +4,8 @@ Types:Creature Elemental
|
||||
PT:6/6
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigRollDice | TriggerDescription$ Siege Monster — When CARDNAME enters the battlefield, ABILITY
|
||||
SVar:TrigRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:Sac1,10-19:SacOpp,20:SacOpp2 | SpellDescription$ roll a d20.
|
||||
SVar:Sac1:DB$ Sacrifice | SacValid$ Permanent | Defined$ Player | SpellDescription$ 1-9 VERT Each player sacrifices a permanent.
|
||||
SVar:SacOpp:DB$ Sacrifice | SacValid$ Permanent | Defined$ Player.Opponent | SpellDescription$ 10-19 VERT Each opponent sacrifices a permanent.
|
||||
SVar:Sac1:DB$ Sacrifice | SacValid$ Permanent | Defined$ Player | SpellDescription$ 1—9 VERT Each player sacrifices a permanent.
|
||||
SVar:SacOpp:DB$ Sacrifice | SacValid$ Permanent | Defined$ Player.Opponent | SpellDescription$ 10—19 VERT Each opponent sacrifices a permanent.
|
||||
SVar:SacOpp2:DB$ Sacrifice | SacValid$ Permanent | Amount$ 2 | Defined$ Player.Opponent | SpellDescription$ 20 VERT Each opponent sacrifices two permanents.
|
||||
DeckHas:Ability$Sacrifice
|
||||
Oracle:Siege Monster — When Earth-Cult Elemental enters the battlefield, roll a d20.\n1-9 | Each player sacrifices a permanent.\n10-19 | Each opponent sacrifices a permanent.\n20 | Each opponent sacrifices two permanents.
|
||||
Oracle:Siege Monster — When Earth-Cult Elemental enters the battlefield, roll a d20.\n1—9 | Each player sacrifices a permanent.\n10—19 | Each opponent sacrifices a permanent.\n20 | Each opponent sacrifices two permanents.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Creature Efreet Shaman
|
||||
PT:1/4
|
||||
K:Double Strike
|
||||
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPlay | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that spell would be put into your graveyard, exile it instead.
|
||||
SVar:TrigPlay:DB$ Play | TgtZone$ Graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtPrompt$ Choose target instant or sorcery card from your graveyard | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
SVar:TrigPlay:DB$ Play | TgtZone$ Graveyard | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn | TgtPrompt$ Choose target instant or sorcery card from your graveyard | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
|
||||
Oracle:Double strike\nWhenever Efreet Flamepainter deals combat damage to a player, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that spell would be put into your graveyard, exile it instead.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Elephant Graveyard
|
||||
ManaCost:no cost
|
||||
Types:Land
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}.
|
||||
A:AB$ Regenerate | ValidTgts$ Creature.Elephant | TgtPrompt$ Select target Elephant | Cost$ T | SpellDescription$ Regenerate target Elephant.
|
||||
A:AB$ Regenerate | ValidTgts$ Elephant | TgtPrompt$ Select target Elephant | Cost$ T | SpellDescription$ Regenerate target Elephant.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/elephant_graveyard.jpg
|
||||
AI:RemoveDeck:Random
|
||||
DeckNeeds:Type$Elephant
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Human Wizard
|
||||
PT:1/1
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, you may exile an instant card from your hand.
|
||||
SVar:TrigExile:DB$ ChangeZone | RememberChanged$ True | Origin$ Hand | Destination$ Exile | ChangeType$ Instant | ChangeNum$ 1
|
||||
A:AB$ Play | Cost$ X T | Valid$ Card.IsRemembered+ExiledWithSource | ValidZone$ Exile | Amount$ All | CopyOnce$ True | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ Copy the exiled card. You may cast the copy without paying its mana cost. X is the mana value of the exiled card.
|
||||
A:AB$ Play | Cost$ X T | Valid$ Card.IsRemembered+ExiledWithSource | ValidSA$ Spell | ValidZone$ Exile | Amount$ All | WithoutManaCost$ True | Optional$ True | CopyCard$ True | SpellDescription$ Copy the exiled card. You may cast the copy without paying its mana cost. X is the mana value of the exiled card.
|
||||
SVar:X:Remembered$CardManaCost
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Any | Execute$ ForgetCard | Static$ True
|
||||
SVar:ForgetCard:DB$ Cleanup | ForgetDefined$ TriggeredCard
|
||||
|
||||
@@ -8,7 +8,7 @@ SVar:TrigLook:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target op
|
||||
SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.nonLand+IsRemembered | ChoiceTitle$ You may exile a nonland card from it | MinAmount$ 0 | Amount$ 1 | SubAbility$ DBChangeZone
|
||||
SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Hand | Destination$ Exile | Imprint$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | Duration$ Permanent | StaticAbilities$ MayPlay,CostsMore | RememberObjects$ Imprinted | ForgetOnMoved$ Exile | SubAbility$ DBCleanup
|
||||
SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | MayPlayCardOwner$ True
|
||||
SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | MayPlayPlayer$ CardOwner
|
||||
SVar:CostsMore:Mode$ RaiseCost | ValidCard$ Card.IsRemembered | AffectedZone$ Exile | Type$ Spell | Amount$ 2
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True | ClearImprinted$ True
|
||||
Oracle:Flying\nWhen Elite Spellbinder enters the battlefield, look at target opponent's hand. You may exile a nonland card from it. For as long as that card remains exiled, its owner may play it. A spell cast this way costs {2} more to cast.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:World Enchantment
|
||||
T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ At the beginning of each player's upkeep, that player exiles a card at random from their hand. The player may play that card this turn. At the beginning of the next end step, if the player hasn't played the card, they put it into their graveyard.
|
||||
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | DefinedPlayer$ TriggeredPlayer | ChangeNum$ 1 | Hidden$ True | Mandatory$ True | AtRandom$ True | RememberChanged$ True | SubAbility$ ElkinEffect
|
||||
SVar:ElkinEffect:DB$ Effect | StaticAbilities$ ElkinPlay | Duration$ Permanent | ExileOnMoved$ True | RememberObjects$ RememberedCard | Triggers$ TrigReturn,TrigDuration | SubAbility$ DBResetSVar
|
||||
SVar:ElkinPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | MayPlayCardOwner$ True | EffectZone$ Command | AffectedZone$ Exile | CheckSVar$ ElkinSVar | Description$ The player may play that card this turn.
|
||||
SVar:ElkinPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | MayPlayPlayer$ CardOwner | EffectZone$ Command | AffectedZone$ Exile | CheckSVar$ ElkinSVar | Description$ The player may play that card this turn.
|
||||
# Even though the Effect is "Permanent", it's not really permanent
|
||||
SVar:DBResetSVar:DB$ StoreSVar | SVar$ ElkinSVar | Type$ Number | Expression$ 1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
|
||||
@@ -10,6 +10,4 @@ SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:AB$ Effect | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Ellywick Tumblestrum | Image$ emblem_ellywick_tumblestrum | StaticAbilities$ STOverrun | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Creatures you control have trample and haste and get +2/+2 for each differently named dungeon you've completed."
|
||||
SVar:STOverrun:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AffectedZone$ Battlefield | AddPower$ X | AddToughness$ X | AddKeyword$ Trample & Haste | Description$ Creatures you control have trample and haste and get +2/+2 for each differently named dungeon you've completed.
|
||||
SVar:X:PlayerCountPropertyYou$DifferentlyNamedDungeonsCompleted/Twice
|
||||
Oracle:[+1]: Venture into the dungeon. (Enter the first room or advance to the next room.)
|
||||
[−2]: Look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. If it's legendary, you gain 3 life. Put the rest on the bottom of your library in a random order.
|
||||
[−7]: You get an emblem with "Creatures you control have trample and haste and get +2/+2 for each differently named dungeon you've completed."
|
||||
Oracle:[+1]: Venture into the dungeon. (Enter the first room or advance to the next room.)\n[−2]: Look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. If it's legendary, you gain 3 life. Put the rest on the bottom of your library in a random order.\n[−7]: You get an emblem with "Creatures you control have trample and haste and get +2/+2 for each differently named dungeon you've completed."
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Elvish Bard
|
||||
ManaCost:3 G G
|
||||
Types:Creature Elf Shaman
|
||||
Types:Creature Elf Shaman Bard
|
||||
PT:2/4
|
||||
K:All creatures able to block CARDNAME do so.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/elvish_bard.jpg
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Elvish Ranger
|
||||
ManaCost:2 G
|
||||
Types:Creature Elf
|
||||
Types:Creature Elf Ranger
|
||||
PT:4/1
|
||||
SVar:Picture:http://resources.wizards.com/magic/cards/po/en-us/card4296.jpg
|
||||
Oracle:
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Sorcery
|
||||
A:SP$ ChangeZone | Cost$ B B G G G U U | Origin$ Library | Hidden$ True | ChangeNum$ 3 | ChangeType$ Card.MonoColor | DifferentNames$ True | Destination$ Exile | RememberChanged$ True | SubAbility$ DBChooseCard | Shuffle$ False | StackDescription$ SpellDescription | SpellDescription$ Search your library for up to three monocolored cards with different names and exile them. An opponent chooses one of those cards. Shuffle that card into your library. You may cast the other cards without paying their mana costs. Exile CARDNAME.
|
||||
SVar:DBChooseCard:DB$ ChooseCard | Defined$ Opponent | Choices$ Card.IsRemembered | Amount$ 1 | Mandatory$ True | ChoiceTitle$ Choose a card to shuffle back into the library | ChoiceZone$ Exile | AILogic$ BestCard | SubAbility$ DBShuffle | StackDescription$ None
|
||||
SVar:DBShuffle:DB$ ChangeZone | Origin$ Exile | Destination$ Library | Defined$ ChosenCard | ForgetChanged$ True | Shuffle$ True | SubAbility$ DBCast | StackDescription$ None
|
||||
SVar:DBCast:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBExileSelf | StackDescription$ None
|
||||
SVar:DBCast:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Exile | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBExileSelf | StackDescription$ None
|
||||
SVar:DBExileSelf:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
||||
Oracle:Search your library for up to three monocolored cards with different names and exile them. An opponent chooses one of those cards. Shuffle that card into your library. You may cast the other cards without paying their mana costs. Exile Emergent Ultimatum.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Epic Experiment
|
||||
ManaCost:X U R
|
||||
Types:Sorcery
|
||||
A:SP$ Dig | Cost$ X U R | Defined$ You | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBPlay | SpellDescription$ Exile the top X cards of your library. You may cast instant and sorcery spells with mana value X or less from among them without paying their mana costs. Then put all cards exiled this way that weren't cast into your graveyard.
|
||||
SVar:DBPlay:DB$ Play | Valid$ Instant.cmcLEX+IsRemembered+YouOwn,Sorcery.cmcLEX+IsRemembered+YouOwn | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBGrave
|
||||
SVar:DBPlay:DB$ Play | Valid$ Instant.cmcLEX+IsRemembered+YouOwn,Sorcery.cmcLEX+IsRemembered+YouOwn | ValidZone$ Exile | ValidSA$ Spell | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBGrave
|
||||
SVar:DBGrave:DB$ ChangeZoneAll | Origin$ Exile | Destination$ Graveyard | ChangeType$ Card.IsRemembered+YouOwn | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$xPaid
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Legendary Creature Elder Dinosaur
|
||||
PT:6/6
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile the top card of each player's library, then you may cast any number of spells from among those cards without paying their mana costs.
|
||||
SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | Defined$ Player | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.nonLand+IsRemembered | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBCleanup
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidSA$ Spell | ValidZone$ Exile | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:HasAttackEffect:TRUE
|
||||
Oracle:Whenever Etali, Primal Storm attacks, exile the top card of each player's library, then you may cast any number of spells from among those cards without paying their mana costs.
|
||||
|
||||
@@ -6,4 +6,4 @@ K:Affinity:Artifact
|
||||
K:Flying
|
||||
K:Cascade
|
||||
DeckNeeds:Type$Artifact
|
||||
Oracle:Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)\nFlying\nCascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)
|
||||
Oracle:Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)\nFlying\nCascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card with lesser mana value. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
Name:Extract Brain
|
||||
ManaCost:X U B
|
||||
Types:Sorcery
|
||||
A:SP$ Reveal | Cost$ X U B | ValidTgts$ Opponent | IsCurse$ True | NumCards$ X | RememberRevealed$ True | SubAbility$ PickOne |StackDescription$ {p:Targeted} chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost. | SpellDescription$ Target opponent chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost.
|
||||
SVar:PickOne:DB$ ChooseCard | Defined$ You | Amount$ 1 | ChoiceTitle$ Choose card to cast | Choices$ Card.IsRemembered | ChoiceZone$ Hand | SubAbility$ PlayChosen | StackDescription$ None
|
||||
SVar:PlayChosen:DB$ Play | Defined$ ChosenCard | Controller$ You | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
||||
A:SP$ Reveal | Cost$ X U B | ValidTgts$ Opponent | IsCurse$ True | NumCards$ X | RememberRevealed$ True | SubAbility$ PlayChosen | StackDescription$ {p:Targeted} chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost. | SpellDescription$ Target opponent chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost.
|
||||
SVar:PlayChosen:DB$ Play | ValidZone$ Hand | Valid$ Card.IsRemembered | Controller$ You | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$xPaid
|
||||
Oracle:Target opponent chooses X cards from their hand. Look at those cards. You may cast a spell from among them without paying its mana cost.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Enchantment
|
||||
T:Mode$ SpellCast | ValidCard$ Instant.nonToken,Sorcery.nonToken | Execute$ TrigExileSpell | TriggerZones$ Battlefield | TriggerDescription$ Whenever a player casts an instant or sorcery card, exile it. Then that player copies each instant or sorcery card exiled with CARDNAME. For each copy, the player may cast the copy without paying its mana cost.
|
||||
SVar:TrigExileSpell:DB$ ChangeZone | Defined$ TriggeredCardLKICopy | Origin$ Stack | Destination$ Exile | Fizzle$ True | RememberChanged$ True | SubAbility$ DBPlaySpell
|
||||
SVar:DBPlaySpell:DB$ RepeatEach | UseImprinted$ True | RepeatCards$ Card.IsRemembered | ChooseOrder$ True | Zone$ Exile | RepeatSubAbility$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ Imprinted | Controller$ TriggeredCardController | WithoutManaCost$ True | CopyCard$ True | Optional$ True
|
||||
SVar:DBPlay:DB$ Play | Defined$ Imprinted | Controller$ TriggeredCardController | WithoutManaCost$ True | ValidSA$ Spell | CopyCard$ True | Optional$ True
|
||||
T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBForget
|
||||
SVar:DBForget:DB$ Pump | Defined$ TriggeredCard | ForgetObjects$ TriggeredCard
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:1 G G
|
||||
Types:Legendary Creature Elf Warrior
|
||||
PT:2/2
|
||||
A:AB$ PumpAll | Cost$ 2 G G G | ValidCards$ Creature.Elf+YouCtrl | NumAtt$ +3 | NumDef$ +3 | KW$ Trample | SpellDescription$ Elf creatures you control get +3/+3 and gain trample until end of turn.
|
||||
A:AB$ Regenerate | ValidTgts$ Creature.Elf+Other | TgtPrompt$ Select another target Elf | Cost$ G | SpellDescription$ Regenerate another target Elf.
|
||||
A:AB$ Regenerate | ValidTgts$ Elf.Other | TgtPrompt$ Select another target Elf | Cost$ G | SpellDescription$ Regenerate another target Elf.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/ezuri_renegade_leader.jpg
|
||||
Oracle:{G}: Regenerate another target Elf.\n{2}{G}{G}{G}: Elf creatures you control get +3/+3 and gain trample until end of turn.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:3 R R
|
||||
Types:Instant
|
||||
A:SP$ DealDamage | ValidTgts$ Creature,Planeswalker | NumDmg$ 5 | SubAbility$ DBRollDice | SpellDescription$ CARDNAME deals 5 damage to target creature or planeswalker. Roll a d20.
|
||||
SVar:DBRollDice:DB$ RollDice | Sides$ 20 | ResultSubAbilities$ 1-9:DamageAll,10-20:DamageOpp
|
||||
SVar:DamageAll:DB$ DealDamage | Defined$ Player | NumDmg$ 2 | SpellDescription$ 1-9 VERT CARDNAME deals 2 damage to each player.
|
||||
SVar:DamageOpp:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 2 | SpellDescription$ 10-20 VERT CARDNAME deals 2 damage to each opponent.
|
||||
Oracle:Farideh's Fireball deals 5 damage to target creature or planeswalker. Roll a d20.\n1-9 | Farideh's Fireball deals 2 damage to each player.\n10-20 | Farideh's Fireball deals 2 damage to each opponent.
|
||||
SVar:DamageAll:DB$ DealDamage | Defined$ Player | NumDmg$ 2 | SpellDescription$ 1—9 VERT CARDNAME deals 2 damage to each player.
|
||||
SVar:DamageOpp:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 2 | SpellDescription$ 10—20 VERT CARDNAME deals 2 damage to each opponent.
|
||||
Oracle:Farideh's Fireball deals 5 damage to target creature or planeswalker. Roll a d20.\n1—9 | Farideh's Fireball deals 2 damage to each player.\n10—20 | Farideh's Fireball deals 2 damage to each opponent.
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:6 B R
|
||||
Types:Sorcery
|
||||
K:Rebound
|
||||
A:SP$ DigUntil | Cost$ 6 B R | Defined$ Player.Opponent | Valid$ Card.nonLand | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBPlay | StackDescription$ SpellDescription | SpellDescription$ Each opponent exiles cards from the top of their library until they exile a nonland card. You may cast any number of spells from among those nonland cards without paying their mana costs.
|
||||
SVar:DBPlay:DB$ Play | Controller$ You | OptionalDecider$ You | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBPlay:DB$ Play | Controller$ You | OptionalDecider$ You | Defined$ Remembered | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | Amount$ All | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Each opponent exiles cards from the top of their library until they exile a nonland card. You may cast any number of spells from among those nonland cards without paying their mana costs.\nRebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)
|
||||
@@ -3,7 +3,7 @@ ManaCost:X R R
|
||||
Types:Sorcery
|
||||
A:SP$ Pump | Cost$ X R R | ValidTgts$ Instant.YouOwn+cmcLEX | TgtZone$ Graveyard | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target instant card in your graveyard with mana value X or less | RememberObjects$ Targeted | SubAbility$ DBPump | SpellDescription$ You may cast up to one target instant card and/or up to one target sorcery card from your graveyard each with mana value X or less without paying their mana costs. If a spell cast this way would be put into your graveyard this turn, exile it instead. If X is 10 or more, copy each of those spells twice. You may choose new targets for the copies.
|
||||
SVar:DBPump:DB$ Pump | ValidTgts$ Sorcery.YouOwn+cmcLEX | TgtZone$ Graveyard | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select target sorcery card in your graveyard with mana value X or less | RememberObjects$ Targeted | SubAbility$ DBPlay | StackDescription$ None
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Graveyard | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBRepeat | ReplaceGraveyard$ Exile
|
||||
SVar:DBPlay:DB$ Play | Valid$ Card.IsRemembered | ValidZone$ Graveyard | ValidSA$ Spell | Controller$ You | WithoutManaCost$ True | Optional$ True | Amount$ All | SubAbility$ DBRepeat | ReplaceGraveyard$ Exile
|
||||
SVar:DBRepeat:DB$ RepeatEach | DefinedCards$ Remembered | ClearRemembered$ True | ChooseOrder$ True | RepeatSubAbility$ DBCopy | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10
|
||||
SVar:DBCopy:DB$ CopySpellAbility | Amount$ 2 | Defined$ Remembered | MayChooseTarget$ True
|
||||
SVar:X:Count$xPaid
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Firebrand Ranger
|
||||
ManaCost:1 R
|
||||
Types:Creature Human Soldier
|
||||
Types:Creature Human Soldier Ranger
|
||||
PT:2/1
|
||||
A:AB$ ChangeZone | Cost$ G T | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Optional$ You | AILogic$ AtOppEOT | SpellDescription$ You may put a basic land card from your hand onto the battlefield.
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/firebrand_ranger.jpg
|
||||
|
||||
@@ -11,4 +11,4 @@ SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Ma
|
||||
SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | MayPlayLimit$ 1 | EffectZone$ Command | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play one of these cards. (If you cast EFFECTSOURCE this way, you can't play the other card, and vice versa.)
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:SacMe:3
|
||||
Oracle:Flying\nFlameskull can’t block.\nRejuvenation — When Flameskull dies, exile it. If you do, exile the top card of your library. Until the end of your next turn, you may play one of those cards. (If you cast Flameskull this way, you can't play the other card, and vice versa.)
|
||||
Oracle:Flying\nFlameskull can't block.\nRejuvenation — When Flameskull dies, exile it. If you do, exile the top card of your library. Until the end of your next turn, you may play one of those cards. (If you cast Flameskull this way, you can't play the other card, and vice versa.)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user