diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 387d4a83e07..304c825596c 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -2809,7 +2809,7 @@ public class ComputerUtil { || type.is(CounterEnumType.GOLD) || type.is(CounterEnumType.MUSIC) || type.is(CounterEnumType.PUPA) || type.is(CounterEnumType.PARALYZATION) || type.is(CounterEnumType.SHELL) || type.is(CounterEnumType.SLEEP) || type.is(CounterEnumType.SLUMBER) || type.is(CounterEnumType.SLEIGHT) || type.is(CounterEnumType.WAGE) - || type.is(CounterEnumType.INCARNATION) || type.is(CounterEnumType.RUST); + || type.is(CounterEnumType.INCARNATION) || type.is(CounterEnumType.RUST) || type.is(CounterEnumType.STUN); } // this countertypes has no effect diff --git a/forge-core/src/main/java/forge/card/ColorSet.java b/forge-core/src/main/java/forge/card/ColorSet.java index 30a6c5d6571..d7aa9933d7b 100644 --- a/forge-core/src/main/java/forge/card/ColorSet.java +++ b/forge-core/src/main/java/forge/card/ColorSet.java @@ -190,6 +190,15 @@ public final class ColorSet implements Comparable, Iterable, Ser return this.countColors() > 1; } + /** + * Checks if is all colors. + * + * @return true, if is all colors + */ + public boolean isAllColors() { + return this == ALL_COLORS; + } + /** * Checks if is mono color. * diff --git a/forge-game/src/main/java/forge/game/ForgeScript.java b/forge-game/src/main/java/forge/game/ForgeScript.java index 3568ca5e9ac..93897c40050 100644 --- a/forge-game/src/main/java/forge/game/ForgeScript.java +++ b/forge-game/src/main/java/forge/game/ForgeScript.java @@ -59,6 +59,11 @@ public class ForgeScript { return false; return property.startsWith("non") != colors.isMulticolor(); + } else if (property.contains("AllColors")) { + if (property.endsWith("Source") && isColorlessSource) + return false; + return property.startsWith("non") != colors.isAllColors(); + } else if (property.contains("MonoColor")) { // ... Card is monocolored if (property.endsWith("Source") && isColorlessSource) return false; diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index a3f9d0598ec..76e000ca8e5 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -366,7 +366,9 @@ public class GameAction { } } - if (zoneFrom == null) { + // in addition to actual tokens, cards "made" by digital-only mechanics + // are also added to inbound tokens so their etb replacements will work + if (zoneFrom == null || zoneFrom.is(ZoneType.None)) { copied.getOwner().addInboundToken(copied); } diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index c1578443353..806ba8a6b40 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -3478,8 +3478,8 @@ public class AbilityUtils { } if (value.equals("OpponentsAttackedThisTurn")) { - final List opps = player.getAttackedPlayersMyTurn(); - return doXMath(opps == null ? 0 : opps.size(), m, source, ctb); + final Iterable opps = player.getAttackedPlayersMyTurn(); + return doXMath(opps == null ? 0 : Iterables.size(opps), m, source, ctb); } if (value.equals("OpponentsAttackedThisCombat")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 89702bac9aa..2c873cb317d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -596,7 +596,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (sa.hasParam("GainControl")) { final String g = sa.getParam("GainControl"); - Player newController = g.equals("True") ? sa.getActivatingPlayer() : + Player newController = g.equals("True") ? player : AbilityUtils.getDefinedPlayers(sa.getHostCard(), g, sa).get(0); if (newController != null) { if (newController != gameCard.getController()) { @@ -764,7 +764,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { movedCard.setForetoldThisTurn(true); movedCard.setForetoldByEffect(true); // look at the exiled card - movedCard.addMayLookTemp(sa.getActivatingPlayer()); + movedCard.addMayLookTemp(player); } if (sa.hasParam("TrackDiscarded")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index fa835122984..f41b7cbdcd0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -439,6 +439,9 @@ public class CountersPutEffect extends SpellAbilityEffect { } if (obj instanceof Card) { + if (sa.hasParam("CounterNumPerDefined")) { + counterAmount = AbilityUtils.calculateAmount(gameCard, sa.getParam("CounterNumPerDefined"), sa); + } counterAmount = sa.usesTargeting() && sa.isDividedAsYouChoose() ? sa.getDividedValue(gameCard) : counterAmount; if (!sa.usesTargeting() || gameCard.canBeTargetedBy(sa)) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index c6ecc4d7610..d1c406e986a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -1,8 +1,12 @@ package forge.game.ability.effects; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Map; import forge.StaticData; +import forge.card.ICardFace; import forge.game.Game; import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; @@ -14,6 +18,9 @@ import forge.game.player.Player; import forge.game.player.PlayerCollection; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; +import forge.util.Aggregates; +import forge.util.CardTranslation; +import forge.util.Localizer; public class MakeCardEffect extends SpellAbilityEffect { @Override @@ -40,6 +47,20 @@ public class MakeCardEffect extends SpellAbilityEffect { if (def.size() > 0) { name = def.getFirst().getName(); } + } else if (sa.hasParam("Spellbook")) { + List spellbook = Arrays.asList(sa.getParam("Spellbook").split(",")); + List faces = new ArrayList<>(); + for (String s : spellbook) { + // Cardnames that include "," must use ";" instead in Spellbook$ (i.e. Tovolar; Dire Overlord) + s = s.replace(";", ","); + faces.add(StaticData.instance().getCommonCards().getFaceByName(s)); + } + if (sa.hasParam("AtRandom")) { + name = Aggregates.random(faces).getName(); + } else { + name = player.getController().chooseCardName(sa, faces, + Localizer.getInstance().getMessage("lblChooseFromSpellbook", CardTranslation.getTranslatedName(source.getName()))); + } } final ZoneType zone = ZoneType.smartValueOf(sa.getParamOrDefault("Zone", "Library")); int amount = sa.hasParam("Amount") ? @@ -50,12 +71,7 @@ public class MakeCardEffect extends SpellAbilityEffect { if (!name.equals("")) { while (amount > 0) { Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player); - if (sa.hasParam("IsToken")) { - card.setToken(true); - } - if (!sa.hasParam("NotToken")) { - card.setTokenCard(true); - } + card.setTokenCard(true); game.getAction().moveTo(ZoneType.None, card, sa, moveParams); cards.add(card); amount--; diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index eab8afa5f4e..fe29ac14162 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -334,6 +334,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { private ReplacementEffect shieldCounterReplaceDamage = null; private ReplacementEffect shieldCounterReplaceDestroy = null; + private ReplacementEffect stunCounterReplaceUntap = null; // Enumeration for CMC request types public enum SplitCMCMode { @@ -6100,16 +6101,16 @@ public class Card extends GameEntity implements Comparable, IHasSVars { } // Shield Counter aren't affected by Changed Card Traits - if (this.getCounters(CounterEnumType.SHIELD) > 0) { + if (getCounters(CounterEnumType.SHIELD) > 0) { String sa = "DB$ RemoveCounter | Defined$ Self | CounterType$ Shield | CounterNum$ 1"; if (shieldCounterReplaceDamage == null) { - String reStr = "Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self | PreventionEffect$ True | AlwaysReplace$ True " + String reStr = "Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self | PreventionEffect$ True | AlwaysReplace$ True | Secondary$ True " + "| Description$ If damage would be dealt to this permanent, prevent that damage and remove a shield counter from it."; shieldCounterReplaceDamage = ReplacementHandler.parseReplacement(reStr, this, false, null); shieldCounterReplaceDamage.setOverridingAbility(AbilityFactory.getAbility(sa, this)); } if (shieldCounterReplaceDestroy == null) { - String reStr = "Event$ Destroy | ActiveZones$ Battlefield | ValidCard$ Card.Self | ValidSource$ SpellAbility " + String reStr = "Event$ Destroy | ActiveZones$ Battlefield | ValidCard$ Card.Self | ValidSource$ SpellAbility | Secondary$ True " + "| Description$ If this permanent would be destroyed as the result of an effect, instead remove a shield counter from it."; shieldCounterReplaceDestroy = ReplacementHandler.parseReplacement(reStr, this, false, null); shieldCounterReplaceDestroy.setOverridingAbility(AbilityFactory.getAbility(sa, this)); @@ -6118,6 +6119,17 @@ public class Card extends GameEntity implements Comparable, IHasSVars { list.add(shieldCounterReplaceDamage); list.add(shieldCounterReplaceDestroy); } + if (getCounters(CounterEnumType.STUN) > 0) { + String sa = "DB$ RemoveCounter | Defined$ Self | CounterType$ Stun | CounterNum$ 1"; + if (stunCounterReplaceUntap == null) { + String reStr = "Event$ Untap | ActiveZones$ Battlefield | ValidCard$ Card.Self | Secondary$ True " + + "| Description$ If this permanent would become untapped, instead remove a stun counter from it."; + + stunCounterReplaceUntap = ReplacementHandler.parseReplacement(reStr, this, false, null); + stunCounterReplaceUntap.setOverridingAbility(AbilityFactory.getAbility(sa, this)); + } + list.add(stunCounterReplaceUntap); + } } public boolean hasReplacementEffect(final ReplacementEffect re) { diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index a8de2c51e0f..9a703130bc8 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1391,6 +1391,10 @@ public class CardProperty { if (card.getNetPower() <= card.getNetToughness()) { return false; } + } else if (property.equals("powerGTbasePower")) { + if (card.getNetPower() <= card.getCurrentPower()) { + return false; + } } else if (property.equals("powerLTtoughness")) { if (card.getNetPower() >= card.getNetToughness()) { return false; diff --git a/forge-game/src/main/java/forge/game/card/CounterEnumType.java b/forge-game/src/main/java/forge/game/card/CounterEnumType.java index 6bd9a2fb41b..ab66a3ab70f 100644 --- a/forge-game/src/main/java/forge/game/card/CounterEnumType.java +++ b/forge-game/src/main/java/forge/game/card/CounterEnumType.java @@ -329,6 +329,8 @@ public enum CounterEnumType { STUDY("STUDY", 226, 192, 165), + STUN("STUN", 226, 192, 165), + TASK("TASK", 191, 63, 49), THEFT("THEFT", 255, 176, 125), diff --git a/forge-game/src/main/java/forge/game/combat/CombatUtil.java b/forge-game/src/main/java/forge/game/combat/CombatUtil.java index 9dad2411453..a9daa7aedaa 100644 --- a/forge-game/src/main/java/forge/game/combat/CombatUtil.java +++ b/forge-game/src/main/java/forge/game/combat/CombatUtil.java @@ -407,10 +407,7 @@ public class CombatUtil { c.getDamageHistory().setCreatureAttackedThisCombat(defender); c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf(); - c.getController().addCreaturesAttackedThisTurn(CardUtil.getLKICopy(c)); - if (defender instanceof Player) { - c.getController().addAttackedPlayersMyTurn(combat.getDefenderPlayerByAttacker(c)); - } + c.getController().addCreaturesAttackedThisTurn(CardUtil.getLKICopy(c), defender); } /** diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 78827701494..0dc1738b021 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Deque; import java.util.EnumSet; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -202,9 +203,8 @@ public class Player extends GameEntity implements Comparable { private Table changedKeywords = TreeBasedTable.create(); private ManaPool manaPool = new ManaPool(this); - private List creatureAttackedThisTurn = new ArrayList<>(); - private List attackedPlayersThisTurn = new ArrayList<>(); - private List attackedPlayersLastTurn = new ArrayList<>(); + private Map> attackedThisTurn = new HashMap<>(); + private List attackedPlayersLastTurn = new ArrayList<>(); private List attackedPlayersThisCombat = new ArrayList<>(); private boolean activateLoyaltyAbilityThisTurn = false; @@ -1826,37 +1826,37 @@ public class Player extends GameEntity implements Comparable { } public final List getCreaturesAttackedThisTurn() { - return creatureAttackedThisTurn; + List result = Lists.newArrayList(Iterables.concat(attackedThisTurn.values())); + return result; } - public final void addCreaturesAttackedThisTurn(final Card c) { - creatureAttackedThisTurn.add(c); + public final List getCreaturesAttackedThisTurn(final GameEntity e) { + return attackedThisTurn.getOrDefault(e, Lists.newArrayList()); } - public final void clearCreaturesAttackedThisTurn() { - creatureAttackedThisTurn.clear(); - } - - public final void addAttackedPlayersMyTurn(final Player p) { - if (!attackedPlayersThisTurn.contains(p)) { - attackedPlayersThisCombat.add(p); - attackedPlayersThisTurn.add(p); + public final void addCreaturesAttackedThisTurn(final Card c, final GameEntity e) { + final List creatures = attackedThisTurn.getOrDefault(e, Lists.newArrayList()); + creatures.add(c); + attackedThisTurn.putIfAbsent(e, creatures); + if (e instanceof Player && !attackedPlayersThisCombat.contains(e)) { + attackedPlayersThisCombat.add((Player) e); } } - public final List getAttackedPlayersMyTurn() { - return attackedPlayersThisTurn; + + public final Iterable getAttackedPlayersMyTurn() { + return Iterables.filter(attackedThisTurn.keySet(), Player.class); } public final List getAttackedPlayersMyLastTurn() { return attackedPlayersLastTurn; } - public final void clearAttackedPlayersMyTurn() { - attackedPlayersThisTurn.clear(); + public final void clearAttackedMyTurn() { + attackedThisTurn.clear(); } - public final void setAttackedPlayersMyLastTurn(List players) { + public final void setAttackedPlayersMyLastTurn(Iterable players) { attackedPlayersLastTurn.clear(); - attackedPlayersLastTurn.addAll(players); + Iterables.addAll(attackedPlayersLastTurn, players); } public final List getAttackedPlayersMyCombat() { - return attackedPlayersThisTurn; + return attackedPlayersThisCombat; } public final void clearAttackedPlayersMyCombat() { attackedPlayersThisCombat.clear(); @@ -2390,7 +2390,6 @@ public class Player extends GameEntity implements Comparable { resetNumForetoldThisTurn(); resetNumTokenCreatedThisTurn(); setNumCardsInHandStartedThisTurnWith(getCardsIn(ZoneType.Hand).size()); - clearCreaturesAttackedThisTurn(); setActivateLoyaltyAbilityThisTurn(false); setTappedLandForManaThisTurn(false); setLandsPlayedLastTurn(getLandsPlayedThisTurn()); @@ -2417,8 +2416,8 @@ public class Player extends GameEntity implements Comparable { // set last turn nr if (game.getPhaseHandler().isPlayerTurn(this)) { - setAttackedPlayersMyLastTurn(attackedPlayersThisTurn); - clearAttackedPlayersMyTurn(); + setAttackedPlayersMyLastTurn(getAttackedPlayersMyTurn()); + clearAttackedMyTurn(); this.lastTurnNr = game.getPhaseHandler().getTurn(); } } diff --git a/forge-game/src/main/java/forge/game/player/PlayerProperty.java b/forge-game/src/main/java/forge/game/player/PlayerProperty.java index 9d14fe11f54..e997cd039df 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerProperty.java +++ b/forge-game/src/main/java/forge/game/player/PlayerProperty.java @@ -381,6 +381,14 @@ public class PlayerProperty { if (player.getCreaturesAttackedThisTurn().isEmpty()) { return false; } + } else if (property.startsWith("wasAttackedThisTurnBy")) { + String restriction = property.split(" ")[1]; + for (Card c : sourceController.getCreaturesAttackedThisTurn(player)) { + if (c.isValid(restriction, sourceController, source, spellAbility)) { + return true; + } + } + return false; } else if (property.equals("attackedYouTheirLastTurn")) { if (!player.getAttackedPlayersMyLastTurn().contains(sourceController)) { return false; diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index abb22e116ea..3f3bada1a48 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -361,6 +361,10 @@ public class AbilityManaPart implements java.io.Serializable { } } + if (restriction.equals("CantCastNonArtifactSpells")) { + return !sa.isSpell() || sa.getHostCard().isArtifact(); + } + // the payment is for a resolving SA, currently no other restrictions would allow that if (getSourceCard().getGame().getStack().getInstanceFromSpellAbility(sa.getRootAbility()) != null) { return false; diff --git a/forge-gui-desktop/src/test/java/forge/card/CardEditionCollectionCardMockTestCase.java b/forge-gui-desktop/src/test/java/forge/card/CardEditionCollectionCardMockTestCase.java index 8adf304e4d3..e44f21462d1 100644 --- a/forge-gui-desktop/src/test/java/forge/card/CardEditionCollectionCardMockTestCase.java +++ b/forge-gui-desktop/src/test/java/forge/card/CardEditionCollectionCardMockTestCase.java @@ -41,7 +41,7 @@ public class CardEditionCollectionCardMockTestCase extends CardMockTestCase { CardDb cardDb = FModel.getMagicDb().getCommonCards(); String[] cardNames = { "Shivan Dragon", "Animate Wall", "Balance", "Blessing", "Force of Will" }; - String[] expectedSets = { "M20", "MED", "SLD", "M14", "2XM" }; + String[] expectedSets = { "M20", "MED", "SLD", "M14", "DMR" }; List cards = new ArrayList<>(); for (int i = 0; i < 5; i++) { String cardName = cardNames[i]; diff --git a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java index 1ed1ed24152..90d53c43d6a 100644 --- a/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java +++ b/forge-gui-mobile/src/forge/adventure/player/AdventurePlayer.java @@ -60,6 +60,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent { // Fantasy/Chaos mode settings. private boolean fantasyMode = false; private boolean announceFantasy = false; + private boolean usingCustomDeck = false; + private boolean announceCustom = false; // Signals SignalList onLifeTotalChangeList = new SignalList(); @@ -83,6 +85,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent { //Reset all properties HERE. fantasyMode = false; announceFantasy = false; + usingCustomDeck = false; blessing = null; gold = 0; maxLife = 20; @@ -104,9 +107,10 @@ public class AdventurePlayer implements Serializable, SaveFileContent { private final CardPool cards=new CardPool(); private final ItemPool newCards=new ItemPool<>(InventoryItem.class); - public void create(String n, Deck startingDeck, boolean male, int race, int avatar, boolean isFantasy, DifficultyData difficultyData) { + public void create(String n, Deck startingDeck, boolean male, int race, int avatar, boolean isFantasy, boolean isUsingCustomDeck, DifficultyData difficultyData) { clear(); announceFantasy = fantasyMode = isFantasy; //Set Chaos mode first. + announceCustom = usingCustomDeck = isUsingCustomDeck; deck = startingDeck; decks[0] = deck; @@ -289,6 +293,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent { fantasyMode = data.containsKey("fantasyMode") ? data.readBool("fantasyMode") : false; announceFantasy = data.containsKey("announceFantasy") ? data.readBool("announceFantasy") : false; + usingCustomDeck = data.containsKey("usingCustomDeck") ? data.readBool("usingCustomDeck") : false; + announceCustom = data.containsKey("announceCustom") ? data.readBool("announceCustom") : false; onLifeTotalChangeList.emit(); onGoldChangeList.emit(); @@ -315,6 +321,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent { data.store("fantasyMode",fantasyMode); data.store("announceFantasy",announceFantasy); + data.store("usingCustomDeck", usingCustomDeck); + data.store("announceCustom", announceCustom); data.store("worldPosX",worldPosX); data.store("worldPosY",worldPosY); @@ -493,6 +501,9 @@ public class AdventurePlayer implements Serializable, SaveFileContent { public boolean isFantasyMode(){ return fantasyMode; } + public boolean isUsingCustomDeck(){ + return usingCustomDeck; + } public boolean hasAnnounceFantasy(){ return announceFantasy; @@ -501,6 +512,12 @@ public class AdventurePlayer implements Serializable, SaveFileContent { public void clearAnnounceFantasy(){ announceFantasy = false; } + public boolean hasAnnounceCustom(){ + return announceCustom; + } + public void clearAnnounceCustom(){ + announceCustom = false; + } public boolean hasColorView() { for(String name:equippedItems.values()) { diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index 897dd259d6e..69092074475 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -73,8 +73,9 @@ public class DuelScene extends ForgeScene { public void GameEnd() { boolean winner = humanPlayer == hostedMatch.getGame().getMatch().getWinner(); String enemyName = (enemy.nameOverride.isEmpty() ? enemy.getData().name : enemy.nameOverride); + boolean showMessages = enemy.getData().copyPlayerDeck && Current.player().isUsingCustomDeck(); Current.player().clearBlessing(); - if (chaosBattle && !winner) { + if ((chaosBattle||showMessages) && !winner) { callbackExit = true; List insult = Lists.newArrayList("I'm sorry...", "... ....", "Learn from your defeat.", "I haven't begun to use my full power.", "No matter how much you try, you still won't beat me.", @@ -233,7 +234,7 @@ public class DuelScene extends ForgeScene { this.AIExtras = aiCards; deck = deckProxy.getDeck(); } else { - deck = currentEnemy.copyPlayerDeck ? this.playerDeck : currentEnemy.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); + deck = currentEnemy.copyPlayerDeck ? this.playerDeck : currentEnemy.generateDeck(Current.player().isFantasyMode(), Current.player().isUsingCustomDeck()||Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); } RegisteredPlayer aiPlayer = RegisteredPlayer.forVariants(playerCount, appliedVariants, deck, null, false, null, null); @@ -285,7 +286,8 @@ public class DuelScene extends ForgeScene { hostedMatch.setEndGameHook(() -> DuelScene.this.GameEnd()); hostedMatch.startMatch(rules, appliedVariants, players, guiMap); MatchController.instance.setGameView(hostedMatch.getGameView()); - if (chaosBattle) { + boolean showMessages = enemy.getData().copyPlayerDeck && Current.player().isUsingCustomDeck(); + if (chaosBattle||showMessages) { List list = Lists.newArrayList("It all depends on your skill!", "It's showtime!", "Let's party!", "You've proved yourself!", "Are you ready? Go!", "Prepare to strike, now!", "Let's go!", "What's next?", "Yeah, I've been waitin' for this!", "The stage of battle is set!", "And the battle begins!", "Let's get started!", diff --git a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java index 43210b3777f..e0d0f37b6eb 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java @@ -15,6 +15,7 @@ import forge.adventure.util.Selector; import forge.adventure.util.UIActor; import forge.adventure.world.WorldSave; import forge.card.ColorSet; +import forge.deck.DeckProxy; import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; import forge.player.GamePlayerUtil; @@ -36,7 +37,8 @@ public class NewGameScene extends UIScene { private Selector gender; private Selector mode; private Selector difficulty; - private Array stringList, random; + private Array stringList, random, custom; + private Label colorLabel; public NewGameScene() { super(Forge.isLandscapeMode() ? "ui/new_game.json" : "ui/new_game_portrait.json"); @@ -54,7 +56,7 @@ public class NewGameScene extends UIScene { avatarIndex, colorIds[colorId.getCurrentIndex()], Config.instance().getConfigData().difficulties[difficulty.getCurrentIndex()], - mode.getCurrentIndex()==2, mode.getCurrentIndex()==1, 0);//maybe replace with enum + mode.getCurrentIndex() == 2, mode.getCurrentIndex() == 1, mode.getCurrentIndex() == 3, colorId.getCurrentIndex(), 0);//maybe replace with enum GamePlayerUtil.getGuiPlayer().setName(selectedName.getText()); Forge.switchScene(SceneType.GameScene.instance); }; @@ -70,64 +72,69 @@ public class NewGameScene extends UIScene { @Override public void resLoaded() { super.resLoaded(); - selectedName = ui.findActor("nameField"); - selectedName.setText(NameGenerator.getRandomName("Any", "Any", "")); - avatarImage = ui.findActor("avatarPreview"); - gender = ui.findActor("gender"); - mode = ui.findActor("mode"); - mode.setTextList(new String[]{"Standard", "Constructed","Chaos"}); - gender.setTextList(new String[]{"Male", "Female"}); - gender.addListener(event -> NewGameScene.this.updateAvatar()); - Random rand = new Random(); - colorId = ui.findActor("colorId"); - String[] colorSet=Config.instance().colorIds(); - String[] colorIdNames=Config.instance().colorIdNames(); - colorIds = new ColorSet[colorSet.length]; - for(int i = 0; i< colorIds.length; i++) - colorIds[i]= ColorSet.fromNames(colorSet[i].toCharArray()); - stringList = new Array<>(colorIds.length); - for (String idName : colorIdNames) - stringList.add(UIActor.localize(idName)); - colorId.setTextList(stringList); - random = new Array<>(); - random.add(Forge.getLocalizer().getMessage("lblRandomDeck")); - mode.addListener(new ChangeListener() { - @Override - public void changed(ChangeEvent changeEvent, Actor actor) { - if (mode.getCurrentIndex() == 2) - colorId.setTextList(random); - else - colorId.setTextList(stringList); - } - }); - race = ui.findActor("race"); - race.addListener(event -> NewGameScene.this.updateAvatar()); - race.setTextList(HeroListData.getRaces()); - difficulty = ui.findActor("difficulty"); - - Array diffList = new Array<>(colorIds.length); - int i = 0; - int startingDifficulty = 0; - for (DifficultyData diff : Config.instance().getConfigData().difficulties) { - if (diff.startingDifficulty) - startingDifficulty = i; - diffList.add(diff.name); - i++; + selectedName = ui.findActor("nameField"); + selectedName.setText(NameGenerator.getRandomName("Any", "Any", "")); + avatarImage = ui.findActor("avatarPreview"); + gender = ui.findActor("gender"); + mode = ui.findActor("mode"); + colorLabel = ui.findActor("colorIdL"); + String colorIdLabel = colorLabel.getText().toString(); + custom = new Array<>(); + for (DeckProxy deckProxy : DeckProxy.getAllCustomStarterDecks()) + custom.add(deckProxy.getName()); + mode.setTextList(custom.isEmpty() ? new String[]{"Standard", "Constructed", "Chaos"} : new String[]{"Standard", "Constructed", "Chaos", "Custom"}); + gender.setTextList(new String[]{"Male", "Female"}); + gender.addListener(event -> NewGameScene.this.updateAvatar()); + Random rand = new Random(); + colorId = ui.findActor("colorId"); + String[] colorSet = Config.instance().colorIds(); + String[] colorIdNames = Config.instance().colorIdNames(); + colorIds = new ColorSet[colorSet.length]; + for (int i = 0; i < colorIds.length; i++) + colorIds[i] = ColorSet.fromNames(colorSet[i].toCharArray()); + stringList = new Array<>(colorIds.length); + for (String idName : colorIdNames) + stringList.add(UIActor.localize(idName)); + colorId.setTextList(stringList); + random = new Array<>(); + random.add(Forge.getLocalizer().getMessage("lblRandomDeck")); + mode.addListener(new ChangeListener() { + @Override + public void changed(ChangeEvent changeEvent, Actor actor) { + colorLabel.setText(mode.getCurrentIndex() < 2 ? colorIdLabel : Forge.getLocalizer().getMessage("lblDeck")+":"); + if (mode.getCurrentIndex() == 3) + colorId.setTextList(custom); + if (mode.getCurrentIndex() == 2) + colorId.setTextList(random); + if (mode.getCurrentIndex() < 2) + colorId.setTextList(stringList); } - difficulty.setTextList(diffList); - difficulty.setCurrentIndex(startingDifficulty); - avatarIndex = rand.nextInt(); - updateAvatar(); - gender.setCurrentIndex(rand.nextInt()); - colorId.setCurrentIndex(rand.nextInt()); - race.setCurrentIndex(rand.nextInt()); - ui.onButtonPress("back", () -> NewGameScene.this.back()); - ui.onButtonPress("start", () -> NewGameScene.this.start()); - ui.onButtonPress("leftAvatar", () -> NewGameScene.this.leftAvatar()); - ui.onButtonPress("rightAvatar", () -> NewGameScene.this.rightAvatar()); - - + }); + race = ui.findActor("race"); + race.addListener(event -> NewGameScene.this.updateAvatar()); + race.setTextList(HeroListData.getRaces()); + difficulty = ui.findActor("difficulty"); + Array diffList = new Array<>(colorIds.length); + int i = 0; + int startingDifficulty = 0; + for (DifficultyData diff : Config.instance().getConfigData().difficulties) { + if (diff.startingDifficulty) + startingDifficulty = i; + diffList.add(diff.name); + i++; + } + difficulty.setTextList(diffList); + difficulty.setCurrentIndex(startingDifficulty); + avatarIndex = rand.nextInt(); + updateAvatar(); + gender.setCurrentIndex(rand.nextInt()); + colorId.setCurrentIndex(rand.nextInt()); + race.setCurrentIndex(rand.nextInt()); + ui.onButtonPress("back", () -> NewGameScene.this.back()); + ui.onButtonPress("start", () -> NewGameScene.this.start()); + ui.onButtonPress("leftAvatar", () -> NewGameScene.this.leftAvatar()); + ui.onButtonPress("rightAvatar", () -> NewGameScene.this.rightAvatar()); } private void rightAvatar() { @@ -156,8 +163,7 @@ public class NewGameScene extends UIScene { updateAvatar(); Gdx.input.setInputProcessor(stage); //Start taking input from the ui - if(Forge.createNewAdventureMap) - { + if (Forge.createNewAdventureMap) { FModel.getPreferences().setPref(ForgePreferences.FPref.UI_ENABLE_MUSIC, false); WorldSave.generateNewWorld(selectedName.getText(), gender.getCurrentIndex() == 0, @@ -165,7 +171,7 @@ public class NewGameScene extends UIScene { avatarIndex, colorIds[colorId.getCurrentIndex()], Config.instance().getConfigData().difficulties[difficulty.getCurrentIndex()], - mode.getCurrentIndex()==2, mode.getCurrentIndex()==1, 0);//maybe replace with enum + mode.getCurrentIndex() == 2, mode.getCurrentIndex() == 1, mode.getCurrentIndex() == 3, colorId.getCurrentIndex(), 0);//maybe replace with enum GamePlayerUtil.getGuiPlayer().setName(selectedName.getText()); Forge.switchScene(SceneType.GameScene.instance); } diff --git a/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java b/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java index 8d55bcc2829..82e55b9f4a8 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java +++ b/forge-gui-mobile/src/forge/adventure/stage/ConsoleCommandInterpreter.java @@ -195,7 +195,7 @@ public static ConsoleCommandInterpreter getInstance() }); registerCommand(new String[]{"dumpEnemyDeckColors"}, s -> { for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){ - Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); + Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().isUsingCustomDeck()||Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null); ColorSet colorSet = DP.getColor(); System.out.printf("%s: Colors: %s (%s%s%s%s%s%s)\n", D.getName(), DP.getColor(), @@ -211,7 +211,7 @@ public static ConsoleCommandInterpreter getInstance() }); registerCommand(new String[]{"dumpEnemyDeckList"}, s -> { for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){ - Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); + Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().isUsingCustomDeck()||Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null); ColorSet colorSet = DP.getColor(); System.out.printf("Deck: %s\n%s\n\n", D.getName(), DP.getDeck().getMain().toCardList("\n") @@ -221,7 +221,7 @@ public static ConsoleCommandInterpreter getInstance() }); registerCommand(new String[]{"dumpEnemyColorIdentity"}, s -> { for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){ - Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); + Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().isUsingCustomDeck()||Current.player().getDifficulty().name.equalsIgnoreCase("Hard")); DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null); ColorSet colorSet = DP.getColor(); System.out.printf("%s Colors: %s | Deck Colors: %s (%s)\n", E.name, E.colors, DP.getColorIdentity().toEnumSet().toString(), DP.getName() diff --git a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java index 6871af4be50..ffacb151d10 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java +++ b/forge-gui-mobile/src/forge/adventure/stage/WorldStage.java @@ -153,25 +153,19 @@ public class WorldStage extends GameStage implements SaveFileContent { if (playerIsWinner) { player.setAnimation(CharacterSprite.AnimationTypes.Attack); currentMob.setAnimation(CharacterSprite.AnimationTypes.Death); - startPause(0.5f, new Runnable() { - @Override - public void run() { - ((RewardScene) SceneType.RewardScene.instance).loadRewards(currentMob.getRewards(), RewardScene.Type.Loot, null); - WorldStage.this.removeEnemy(currentMob); - currentMob = null; - Forge.switchScene(SceneType.RewardScene.instance); - } + startPause(0.5f, () -> { + ((RewardScene) SceneType.RewardScene.instance).loadRewards(currentMob.getRewards(), RewardScene.Type.Loot, null); + WorldStage.this.removeEnemy(currentMob); + currentMob = null; + Forge.switchScene(SceneType.RewardScene.instance); }); } else { player.setAnimation(CharacterSprite.AnimationTypes.Hit); currentMob.setAnimation(CharacterSprite.AnimationTypes.Attack); - startPause(0.5f, new Runnable() { - @Override - public void run() { - Current.player().defeated(); - WorldStage.this.removeEnemy(currentMob); - currentMob = null; - } + startPause(0.5f, () -> { + Current.player().defeated(); + WorldStage.this.removeEnemy(currentMob); + currentMob = null; }); } @@ -269,6 +263,11 @@ public class WorldStage extends GameStage implements SaveFileContent { WorldSave.getCurrentSave().getPlayer().getSelectedDeck().getName()+ "\nEnemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck()); WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy(); + } else if (WorldSave.getCurrentSave().getPlayer().hasAnnounceCustom()) { + MapStage.getInstance().showDeckAwardDialog("{GRADIENT}Custom Deck Mode!{ENDGRADIENT}\n"+ WorldSave.getCurrentSave().getPlayer().getName()+ "'s Deck: "+ + WorldSave.getCurrentSave().getPlayer().getSelectedDeck().getName()+ + "\nSome enemies will use Genetic AI Decks randomly.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck()); + WorldSave.getCurrentSave().getPlayer().clearAnnounceCustom(); } } diff --git a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java index 0baec9318e4..78a22de5828 100644 --- a/forge-gui-mobile/src/forge/adventure/util/CardUtil.java +++ b/forge-gui-mobile/src/forge/adventure/util/CardUtil.java @@ -535,7 +535,7 @@ public class CardUtil { if(path.endsWith(".dck")) return DeckSerializer.fromFile(new File(Config.instance().getFilePath(path))); - if(forAI && isFantasyMode) { + if(forAI && (isFantasyMode||useGeneticAI)) { Deck deck = DeckgenUtil.getRandomOrPreconOrThemeDeck(colors, forAI, isTheme, useGeneticAI); if (deck != null) return deck; diff --git a/forge-gui-mobile/src/forge/adventure/world/WorldSave.java b/forge-gui-mobile/src/forge/adventure/world/WorldSave.java index 41e16823b5a..914f040ea7e 100644 --- a/forge-gui-mobile/src/forge/adventure/world/WorldSave.java +++ b/forge-gui-mobile/src/forge/adventure/world/WorldSave.java @@ -9,6 +9,7 @@ import forge.adventure.util.SaveFileData; import forge.adventure.util.SignalList; import forge.card.ColorSet; import forge.deck.Deck; +import forge.deck.DeckProxy; import forge.deck.DeckgenUtil; import forge.localinstance.properties.ForgeConstants; import forge.player.GamePlayerUtil; @@ -122,20 +123,15 @@ public class WorldSave { return currentSave; } - public static WorldSave generateNewWorld(String name, boolean male, int race, int avatarIndex, ColorSet startingColorIdentity, DifficultyData diff, boolean chaos, boolean constructed, long seed) { + public static WorldSave generateNewWorld(String name, boolean male, int race, int avatarIndex, ColorSet startingColorIdentity, DifficultyData diff, boolean chaos, boolean constructed, boolean custom, int customDeckIndex, long seed) { currentSave.world.generateNew(seed); currentSave.pointOfInterestChanges.clear(); - Deck starterDeck = chaos ? DeckgenUtil.getRandomOrPreconOrThemeDeck("", false, false, false) : Config.instance().starterDeck(startingColorIdentity,diff,constructed); - - currentSave.player.create(name, starterDeck, male, race, avatarIndex, chaos, diff); + Deck starterDeck = chaos ? DeckgenUtil.getRandomOrPreconOrThemeDeck("", false, false, false) : custom ? DeckProxy.getAllCustomStarterDecks().get(customDeckIndex).getDeck() : Config.instance().starterDeck(startingColorIdentity,diff,constructed); + currentSave.player.create(name, starterDeck, male, race, avatarIndex, chaos, custom, diff); currentSave.player.setWorldPosY((int) (currentSave.world.getData().playerStartPosY * currentSave.world.getData().height * currentSave.world.getTileSize())); currentSave.player.setWorldPosX((int) (currentSave.world.getData().playerStartPosX * currentSave.world.getData().width * currentSave.world.getTileSize())); - //after getting deck override starting color identity to match - //if (identity != startingColorIdentity) - // currentSave.player.setColorIdentity(identity); currentSave.onLoadList.emit(); return currentSave; - //return currentSave = ret; } public boolean autoSave() { diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 8b6a752f2f7..7a2288737a9 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -43,7 +43,7 @@ com.github.tommyettinger textratypist - 2f773002a8 + 0.7.1 com.github.tommyettinger diff --git a/forge-gui/res/cardsfolder/upcoming/aarakocra_sneak.txt b/forge-gui/res/cardsfolder/a/aarakocra_sneak.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/aarakocra_sneak.txt rename to forge-gui/res/cardsfolder/a/aarakocra_sneak.txt diff --git a/forge-gui/res/cardsfolder/upcoming/abdel_adrian_gorions_ward.txt b/forge-gui/res/cardsfolder/a/abdel_adrian_gorions_ward.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/abdel_adrian_gorions_ward.txt rename to forge-gui/res/cardsfolder/a/abdel_adrian_gorions_ward.txt diff --git a/forge-gui/res/cardsfolder/upcoming/aboleth_spawn.txt b/forge-gui/res/cardsfolder/a/aboleth_spawn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/aboleth_spawn.txt rename to forge-gui/res/cardsfolder/a/aboleth_spawn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/acolyte_of_bahamut.txt b/forge-gui/res/cardsfolder/a/acolyte_of_bahamut.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/acolyte_of_bahamut.txt rename to forge-gui/res/cardsfolder/a/acolyte_of_bahamut.txt diff --git a/forge-gui/res/cardsfolder/a/aetherling.txt b/forge-gui/res/cardsfolder/a/aetherling.txt index 9447efc8c81..1905f033198 100644 --- a/forge-gui/res/cardsfolder/a/aetherling.txt +++ b/forge-gui/res/cardsfolder/a/aetherling.txt @@ -3,8 +3,8 @@ ManaCost:4 U U Types:Creature Shapeshifter PT:4/5 A:AB$ ChangeZone | Cost$ U | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | RememberChanged$ True | SpellDescription$ Exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile | Destination$ Battlefield +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile | Destination$ Battlefield A:AB$ Pump | Cost$ U | Defined$ Self | KW$ HIDDEN Unblockable | SpellDescription$ CARDNAME can't be blocked this turn. A:AB$ Pump | Cost$ 1 | Defined$ Self | NumAtt$ +1 | NumDef$ -1 | SpellDescription$ CARDNAME gets +1/-1 until end of turn. A:AB$ Pump | Cost$ 1 | Defined$ Self | NumAtt$ -1 | NumDef$ +1 | SpellDescription$ CARDNAME gets -1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/upcoming/agent_of_raffine.txt b/forge-gui/res/cardsfolder/a/agent_of_raffine.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/agent_of_raffine.txt rename to forge-gui/res/cardsfolder/a/agent_of_raffine.txt diff --git a/forge-gui/res/cardsfolder/upcoming/agent_of_the_iron_throne.txt b/forge-gui/res/cardsfolder/a/agent_of_the_iron_throne.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/agent_of_the_iron_throne.txt rename to forge-gui/res/cardsfolder/a/agent_of_the_iron_throne.txt diff --git a/forge-gui/res/cardsfolder/upcoming/agent_of_the_shadow_thieves.txt b/forge-gui/res/cardsfolder/a/agent_of_the_shadow_thieves.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/agent_of_the_shadow_thieves.txt rename to forge-gui/res/cardsfolder/a/agent_of_the_shadow_thieves.txt diff --git a/forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt b/forge-gui/res/cardsfolder/a/alaundo_the_seer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/alaundo_the_seer.txt rename to forge-gui/res/cardsfolder/a/alaundo_the_seer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/alora_merry_thief.txt b/forge-gui/res/cardsfolder/a/alora_merry_thief.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/alora_merry_thief.txt rename to forge-gui/res/cardsfolder/a/alora_merry_thief.txt diff --git a/forge-gui/res/cardsfolder/upcoming/altar_of_bhaal_bone_offering.txt b/forge-gui/res/cardsfolder/a/altar_of_bhaal_bone_offering.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/altar_of_bhaal_bone_offering.txt rename to forge-gui/res/cardsfolder/a/altar_of_bhaal_bone_offering.txt diff --git a/forge-gui/res/cardsfolder/upcoming/amber_gristle_omaul.txt b/forge-gui/res/cardsfolder/a/amber_gristle_omaul.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/amber_gristle_omaul.txt rename to forge-gui/res/cardsfolder/a/amber_gristle_omaul.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ambitious_dragonborn.txt b/forge-gui/res/cardsfolder/a/ambitious_dragonborn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ambitious_dragonborn.txt rename to forge-gui/res/cardsfolder/a/ambitious_dragonborn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/amethyst_dragon_explosive_crystal.txt b/forge-gui/res/cardsfolder/a/amethyst_dragon_explosive_crystal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/amethyst_dragon_explosive_crystal.txt rename to forge-gui/res/cardsfolder/a/amethyst_dragon_explosive_crystal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_bronze_dragon.txt b/forge-gui/res/cardsfolder/a/ancient_bronze_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ancient_bronze_dragon.txt rename to forge-gui/res/cardsfolder/a/ancient_bronze_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_copper_dragon.txt b/forge-gui/res/cardsfolder/a/ancient_copper_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ancient_copper_dragon.txt rename to forge-gui/res/cardsfolder/a/ancient_copper_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_gold_dragon.txt b/forge-gui/res/cardsfolder/a/ancient_gold_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ancient_gold_dragon.txt rename to forge-gui/res/cardsfolder/a/ancient_gold_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ancient_silver_dragon.txt b/forge-gui/res/cardsfolder/a/ancient_silver_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ancient_silver_dragon.txt rename to forge-gui/res/cardsfolder/a/ancient_silver_dragon.txt diff --git a/forge-gui/res/cardsfolder/a/anurid_brushhopper.txt b/forge-gui/res/cardsfolder/a/anurid_brushhopper.txt index fa43a2d7a5f..6d01a6a9909 100644 --- a/forge-gui/res/cardsfolder/a/anurid_brushhopper.txt +++ b/forge-gui/res/cardsfolder/a/anurid_brushhopper.txt @@ -3,7 +3,7 @@ ManaCost:1 G W Types:Creature Frog Beast PT:3/4 A:AB$ ChangeZone | Cost$ Discard<2/Card> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | RememberChanged$ True | SpellDescription$ Exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Self +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRememberedLKI AI:RemoveDeck:All Oracle:Discard two cards: Exile Anurid Brushhopper. Return it to the battlefield under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/archivist_of_oghma.txt b/forge-gui/res/cardsfolder/a/archivist_of_oghma.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/archivist_of_oghma.txt rename to forge-gui/res/cardsfolder/a/archivist_of_oghma.txt diff --git a/forge-gui/res/cardsfolder/upcoming/arming_gala.txt b/forge-gui/res/cardsfolder/a/arming_gala.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/arming_gala.txt rename to forge-gui/res/cardsfolder/a/arming_gala.txt diff --git a/forge-gui/res/cardsfolder/upcoming/armor_of_shadows.txt b/forge-gui/res/cardsfolder/a/armor_of_shadows.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/armor_of_shadows.txt rename to forge-gui/res/cardsfolder/a/armor_of_shadows.txt diff --git a/forge-gui/res/cardsfolder/upcoming/arms_of_hadar.txt b/forge-gui/res/cardsfolder/a/arms_of_hadar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/arms_of_hadar.txt rename to forge-gui/res/cardsfolder/a/arms_of_hadar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/artificer_class.txt b/forge-gui/res/cardsfolder/a/artificer_class.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/artificer_class.txt rename to forge-gui/res/cardsfolder/a/artificer_class.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ascend_from_avernus.txt b/forge-gui/res/cardsfolder/a/ascend_from_avernus.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ascend_from_avernus.txt rename to forge-gui/res/cardsfolder/a/ascend_from_avernus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/astarions_thirst.txt b/forge-gui/res/cardsfolder/a/astarions_thirst.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/astarions_thirst.txt rename to forge-gui/res/cardsfolder/a/astarions_thirst.txt diff --git a/forge-gui/res/cardsfolder/upcoming/astral_confrontation.txt b/forge-gui/res/cardsfolder/a/astral_confrontation.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/astral_confrontation.txt rename to forge-gui/res/cardsfolder/a/astral_confrontation.txt diff --git a/forge-gui/res/cardsfolder/upcoming/astral_dragon.txt b/forge-gui/res/cardsfolder/a/astral_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/astral_dragon.txt rename to forge-gui/res/cardsfolder/a/astral_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/atrocious_experiment.txt b/forge-gui/res/cardsfolder/a/atrocious_experiment.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/atrocious_experiment.txt rename to forge-gui/res/cardsfolder/a/atrocious_experiment.txt diff --git a/forge-gui/res/cardsfolder/upcoming/avenging_hunter.txt b/forge-gui/res/cardsfolder/a/avenging_hunter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/avenging_hunter.txt rename to forge-gui/res/cardsfolder/a/avenging_hunter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/baba_lysaga_night_witch.txt b/forge-gui/res/cardsfolder/b/baba_lysaga_night_witch.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/baba_lysaga_night_witch.txt rename to forge-gui/res/cardsfolder/b/baba_lysaga_night_witch.txt diff --git a/forge-gui/res/cardsfolder/upcoming/back_alley_gardener.txt b/forge-gui/res/cardsfolder/b/back_alley_gardener.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/back_alley_gardener.txt rename to forge-gui/res/cardsfolder/b/back_alley_gardener.txt diff --git a/forge-gui/res/cardsfolder/upcoming/baeloth_barrityl_entertainer.txt b/forge-gui/res/cardsfolder/b/baeloth_barrityl_entertainer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/baeloth_barrityl_entertainer.txt rename to forge-gui/res/cardsfolder/b/baeloth_barrityl_entertainer.txt diff --git a/forge-gui/res/cardsfolder/b/baird_argivian_recruiter.txt b/forge-gui/res/cardsfolder/b/baird_argivian_recruiter.txt new file mode 100644 index 00000000000..0b63d9f4dba --- /dev/null +++ b/forge-gui/res/cardsfolder/b/baird_argivian_recruiter.txt @@ -0,0 +1,9 @@ +Name:Baird, Argivian Recruiter +ManaCost:R W +Types:Legendary Creature Human Soldier +PT:2/2 +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | IsPresent$ Creature.YouCtrl+powerGTbasePower | TriggerDescription$ At the beginning of your end step, if you control a creature with power greater than its base power, create a 1/1 white Soldier creature token. +SVar:TrigToken:DB$ Token | TokenScript$ w_1_1_soldier +DeckHas:Ability$Token +AI:RemoveDeck:Random +Oracle:At the beginning of your end step, if you control a creature with power greater than its base power, create a 1/1 white Soldier creature token. diff --git a/forge-gui/res/cardsfolder/upcoming/baldurs_gate.txt b/forge-gui/res/cardsfolder/b/baldurs_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/baldurs_gate.txt rename to forge-gui/res/cardsfolder/b/baldurs_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/balor.txt b/forge-gui/res/cardsfolder/b/balor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/balor.txt rename to forge-gui/res/cardsfolder/b/balor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bane_lord_of_darkness.txt b/forge-gui/res/cardsfolder/b/bane_lord_of_darkness.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bane_lord_of_darkness.txt rename to forge-gui/res/cardsfolder/b/bane_lord_of_darkness.txt diff --git a/forge-gui/res/cardsfolder/upcoming/banes_contingency.txt b/forge-gui/res/cardsfolder/b/banes_contingency.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/banes_contingency.txt rename to forge-gui/res/cardsfolder/b/banes_contingency.txt diff --git a/forge-gui/res/cardsfolder/upcoming/banishment.txt b/forge-gui/res/cardsfolder/b/banishment.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/banishment.txt rename to forge-gui/res/cardsfolder/b/banishment.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bank_job.txt b/forge-gui/res/cardsfolder/b/bank_job.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bank_job.txt rename to forge-gui/res/cardsfolder/b/bank_job.txt diff --git a/forge-gui/res/cardsfolder/upcoming/barroom_brawl.txt b/forge-gui/res/cardsfolder/b/barroom_brawl.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/barroom_brawl.txt rename to forge-gui/res/cardsfolder/b/barroom_brawl.txt diff --git a/forge-gui/res/cardsfolder/upcoming/basilisk_gate.txt b/forge-gui/res/cardsfolder/b/basilisk_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/basilisk_gate.txt rename to forge-gui/res/cardsfolder/b/basilisk_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/battle_angels_of_tyr.txt b/forge-gui/res/cardsfolder/b/battle_angels_of_tyr.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/battle_angels_of_tyr.txt rename to forge-gui/res/cardsfolder/b/battle_angels_of_tyr.txt diff --git a/forge-gui/res/cardsfolder/upcoming/beckoning_will_o_wisp.txt b/forge-gui/res/cardsfolder/b/beckoning_will_o_wisp.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/beckoning_will_o_wisp.txt rename to forge-gui/res/cardsfolder/b/beckoning_will_o_wisp.txt diff --git a/forge-gui/res/cardsfolder/upcoming/big_spender.txt b/forge-gui/res/cardsfolder/b/big_spender.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/big_spender.txt rename to forge-gui/res/cardsfolder/b/big_spender.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bind_to_secrecy.txt b/forge-gui/res/cardsfolder/b/bind_to_secrecy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bind_to_secrecy.txt rename to forge-gui/res/cardsfolder/b/bind_to_secrecy.txt diff --git a/forge-gui/res/cardsfolder/upcoming/black_dragon_gate.txt b/forge-gui/res/cardsfolder/b/black_dragon_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/black_dragon_gate.txt rename to forge-gui/res/cardsfolder/b/black_dragon_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/black_market_connections.txt b/forge-gui/res/cardsfolder/b/black_market_connections.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/black_market_connections.txt rename to forge-gui/res/cardsfolder/b/black_market_connections.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blessed_hippogriff_tyrs_blesing.txt b/forge-gui/res/cardsfolder/b/blessed_hippogriff_tyrs_blesing.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/blessed_hippogriff_tyrs_blesing.txt rename to forge-gui/res/cardsfolder/b/blessed_hippogriff_tyrs_blesing.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blood_money.txt b/forge-gui/res/cardsfolder/b/blood_money.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/blood_money.txt rename to forge-gui/res/cardsfolder/b/blood_money.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bloodboil_sorceror.txt b/forge-gui/res/cardsfolder/b/bloodboil_sorceror.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bloodboil_sorceror.txt rename to forge-gui/res/cardsfolder/b/bloodboil_sorceror.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blur.txt b/forge-gui/res/cardsfolder/b/blur.txt similarity index 98% rename from forge-gui/res/cardsfolder/upcoming/blur.txt rename to forge-gui/res/cardsfolder/b/blur.txt index 5a87dc42d3f..93d49618165 100644 --- a/forge-gui/res/cardsfolder/upcoming/blur.txt +++ b/forge-gui/res/cardsfolder/b/blur.txt @@ -1,8 +1,8 @@ -Name:Blur -ManaCost:2 U -Types:Instant -A:SP$ ChangeZone | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you control, then return that card to the battlefield under their owner's control. -SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBDraw -SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. -Oracle:Exile target creature you control, then return that card to the battlefield under their owner's control.\nDraw a card. +Name:Blur +ManaCost:2 U +Types:Instant +A:SP$ ChangeZone | ValidTgts$ Creature.YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you control | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you control, then return that card to the battlefield under their owner's control. +SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. +Oracle:Exile target creature you control, then return that card to the battlefield under their owner's control.\nDraw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/bonecaller_cleric.txt b/forge-gui/res/cardsfolder/b/bonecaller_cleric.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bonecaller_cleric.txt rename to forge-gui/res/cardsfolder/b/bonecaller_cleric.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bothersome_quasit.txt b/forge-gui/res/cardsfolder/b/bothersome_quasit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bothersome_quasit.txt rename to forge-gui/res/cardsfolder/b/bothersome_quasit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/brainstealer_dragon.txt b/forge-gui/res/cardsfolder/b/brainstealer_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/brainstealer_dragon.txt rename to forge-gui/res/cardsfolder/b/brainstealer_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/breath_weapon.txt b/forge-gui/res/cardsfolder/b/breath_weapon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/breath_weapon.txt rename to forge-gui/res/cardsfolder/b/breath_weapon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/brokers_safeguard.txt b/forge-gui/res/cardsfolder/b/brokers_safeguard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/brokers_safeguard.txt rename to forge-gui/res/cardsfolder/b/brokers_safeguard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bronze_walrus.txt b/forge-gui/res/cardsfolder/b/bronze_walrus.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bronze_walrus.txt rename to forge-gui/res/cardsfolder/b/bronze_walrus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/burakos_party_leader.txt b/forge-gui/res/cardsfolder/b/burakos_party_leader.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/burakos_party_leader.txt rename to forge-gui/res/cardsfolder/b/burakos_party_leader.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cabaretti_revels.txt b/forge-gui/res/cardsfolder/c/cabaretti_revels.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cabaretti_revels.txt rename to forge-gui/res/cardsfolder/c/cabaretti_revels.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cadira_caller_of_the_small.txt b/forge-gui/res/cardsfolder/c/cadira_caller_of_the_small.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cadira_caller_of_the_small.txt rename to forge-gui/res/cardsfolder/c/cadira_caller_of_the_small.txt diff --git a/forge-gui/res/cardsfolder/upcoming/calim_djinn_emperor.txt b/forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/calim_djinn_emperor.txt rename to forge-gui/res/cardsfolder/c/calim_djinn_emperor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/call_to_the_void.txt b/forge-gui/res/cardsfolder/c/call_to_the_void.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/call_to_the_void.txt rename to forge-gui/res/cardsfolder/c/call_to_the_void.txt diff --git a/forge-gui/res/cardsfolder/upcoming/campfire.txt b/forge-gui/res/cardsfolder/c/campfire.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/campfire.txt rename to forge-gui/res/cardsfolder/c/campfire.txt diff --git a/forge-gui/res/cardsfolder/upcoming/candlekeep_inspiration.txt b/forge-gui/res/cardsfolder/c/candlekeep_inspiration.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/candlekeep_inspiration.txt rename to forge-gui/res/cardsfolder/c/candlekeep_inspiration.txt diff --git a/forge-gui/res/cardsfolder/upcoming/candlekeep_sage.txt b/forge-gui/res/cardsfolder/c/candlekeep_sage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/candlekeep_sage.txt rename to forge-gui/res/cardsfolder/c/candlekeep_sage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/carefree_swinemaster.txt b/forge-gui/res/cardsfolder/c/carefree_swinemaster.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/carefree_swinemaster.txt rename to forge-gui/res/cardsfolder/c/carefree_swinemaster.txt diff --git a/forge-gui/res/cardsfolder/upcoming/carnelian_orb_of_dragonkind.txt b/forge-gui/res/cardsfolder/c/carnelian_orb_of_dragonkind.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/carnelian_orb_of_dragonkind.txt rename to forge-gui/res/cardsfolder/c/carnelian_orb_of_dragonkind.txt diff --git a/forge-gui/res/cardsfolder/upcoming/caves_of_chaos_adventurer.txt b/forge-gui/res/cardsfolder/c/caves_of_chaos_adventurer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/caves_of_chaos_adventurer.txt rename to forge-gui/res/cardsfolder/c/caves_of_chaos_adventurer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/celestial_vault.txt b/forge-gui/res/cardsfolder/c/celestial_vault.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/celestial_vault.txt rename to forge-gui/res/cardsfolder/c/celestial_vault.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chain_devil.txt b/forge-gui/res/cardsfolder/c/chain_devil.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chain_devil.txt rename to forge-gui/res/cardsfolder/c/chain_devil.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chaos_balor.txt b/forge-gui/res/cardsfolder/c/chaos_balor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chaos_balor.txt rename to forge-gui/res/cardsfolder/c/chaos_balor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chardalyn_dragon.txt b/forge-gui/res/cardsfolder/c/chardalyn_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chardalyn_dragon.txt rename to forge-gui/res/cardsfolder/c/chardalyn_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/choice_of_fortunes.txt b/forge-gui/res/cardsfolder/c/choice_of_fortunes.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/choice_of_fortunes.txt rename to forge-gui/res/cardsfolder/c/choice_of_fortunes.txt diff --git a/forge-gui/res/cardsfolder/upcoming/circle_of_the_land_druid.txt b/forge-gui/res/cardsfolder/c/circle_of_the_land_druid.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/circle_of_the_land_druid.txt rename to forge-gui/res/cardsfolder/c/circle_of_the_land_druid.txt diff --git a/forge-gui/res/cardsfolder/upcoming/clan_crafter.txt b/forge-gui/res/cardsfolder/c/clan_crafter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/clan_crafter.txt rename to forge-gui/res/cardsfolder/c/clan_crafter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cloak_of_the_bat.txt b/forge-gui/res/cardsfolder/c/cloak_of_the_bat.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cloak_of_the_bat.txt rename to forge-gui/res/cardsfolder/c/cloak_of_the_bat.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cloakwood_hermit.txt b/forge-gui/res/cardsfolder/c/cloakwood_hermit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cloakwood_hermit.txt rename to forge-gui/res/cardsfolder/c/cloakwood_hermit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cloakwood_swarmkeeper.txt b/forge-gui/res/cardsfolder/c/cloakwood_swarmkeeper.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cloakwood_swarmkeeper.txt rename to forge-gui/res/cardsfolder/c/cloakwood_swarmkeeper.txt diff --git a/forge-gui/res/cardsfolder/upcoming/clockwork_fox.txt b/forge-gui/res/cardsfolder/c/clockwork_fox.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/clockwork_fox.txt rename to forge-gui/res/cardsfolder/c/clockwork_fox.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cloudkill.txt b/forge-gui/res/cardsfolder/c/cloudkill.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cloudkill.txt rename to forge-gui/res/cardsfolder/c/cloudkill.txt diff --git a/forge-gui/res/cardsfolder/c/codie_vociferous_codex.txt b/forge-gui/res/cardsfolder/c/codie_vociferous_codex.txt index ee4aca18494..220fdd5ec63 100644 --- a/forge-gui/res/cardsfolder/c/codie_vociferous_codex.txt +++ b/forge-gui/res/cardsfolder/c/codie_vociferous_codex.txt @@ -7,7 +7,7 @@ A:AB$ Mana | Cost$ 4 T | Produced$ W U B R G | SubAbility$ DBTrigger | SpellDesc SVar:DBTrigger:DB$ DelayedTrigger | Mode$ SpellCast | ValidActivatingPlayer$ You | ThisTurn$ True | Execute$ DBDig | TriggerDescription$ When you cast your next spell this turn, exile cards from the top of your library until you exile an instant or sorcery card with lesser mana value. Until end of turn, you may cast that card without paying its mana cost. Put each other card exiled this way on the bottom of your library in a random order. SVar:DBDig:DB$ DigUntil | Defined$ You | Valid$ Instant.cmcLTX,Sorcery.cmcLTX | FoundDestination$ Exile | RevealedDestination$ Exile | RememberRevealed$ True | ImprintFound$ True | SkipReorder$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ MayPlay | RememberObjects$ Imprinted | ForgetOnMoved$ Exile | SubAbility$ DBRestRandomOrder -SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | MayPlayWithoutManaCost$ True | EffectZone$ Command | AffectedZone$ Exile +SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | MayPlayWithoutManaCost$ True | EffectZone$ Command | AffectedZone$ Exile | Description$ Until end of turn, you may cast that card without paying its mana cost. SVar:DBRestRandomOrder:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Exile | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True SVar:X:TriggeredCard$CardManaCost AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/upcoming/colossal_badger_dig_deep.txt b/forge-gui/res/cardsfolder/c/colossal_badger_dig_deep.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/colossal_badger_dig_deep.txt rename to forge-gui/res/cardsfolder/c/colossal_badger_dig_deep.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cone_of_cold.txt b/forge-gui/res/cardsfolder/c/cone_of_cold.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cone_of_cold.txt rename to forge-gui/res/cardsfolder/c/cone_of_cold.txt diff --git a/forge-gui/res/cardsfolder/upcoming/contraband_livestock.txt b/forge-gui/res/cardsfolder/c/contraband_livestock.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/contraband_livestock.txt rename to forge-gui/res/cardsfolder/c/contraband_livestock.txt diff --git a/forge-gui/res/cardsfolder/upcoming/coronation_of_chaos.txt b/forge-gui/res/cardsfolder/c/coronation_of_chaos.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/coronation_of_chaos.txt rename to forge-gui/res/cardsfolder/c/coronation_of_chaos.txt diff --git a/forge-gui/res/cardsfolder/upcoming/craving_of_yeenoghu.txt b/forge-gui/res/cardsfolder/c/craving_of_yeenoghu.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/craving_of_yeenoghu.txt rename to forge-gui/res/cardsfolder/c/craving_of_yeenoghu.txt diff --git a/forge-gui/res/cardsfolder/upcoming/criminal_past.txt b/forge-gui/res/cardsfolder/c/criminal_past.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/criminal_past.txt rename to forge-gui/res/cardsfolder/c/criminal_past.txt diff --git a/forge-gui/res/cardsfolder/upcoming/crystal_dragon_rob_the_hoard.txt b/forge-gui/res/cardsfolder/c/crystal_dragon_rob_the_hoard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/crystal_dragon_rob_the_hoard.txt rename to forge-gui/res/cardsfolder/c/crystal_dragon_rob_the_hoard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cultist_of_the_absolute.txt b/forge-gui/res/cardsfolder/c/cultist_of_the_absolute.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cultist_of_the_absolute.txt rename to forge-gui/res/cardsfolder/c/cultist_of_the_absolute.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cut_a_deal.txt b/forge-gui/res/cardsfolder/c/cut_a_deal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cut_a_deal.txt rename to forge-gui/res/cardsfolder/c/cut_a_deal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/death_kiss.txt b/forge-gui/res/cardsfolder/d/death_kiss.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/death_kiss.txt rename to forge-gui/res/cardsfolder/d/death_kiss.txt diff --git a/forge-gui/res/cardsfolder/upcoming/decanter_of_endless_water.txt b/forge-gui/res/cardsfolder/d/decanter_of_endless_water.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/decanter_of_endless_water.txt rename to forge-gui/res/cardsfolder/d/decanter_of_endless_water.txt diff --git a/forge-gui/res/cardsfolder/upcoming/deep_gnome_terramancer.txt b/forge-gui/res/cardsfolder/d/deep_gnome_terramancer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/deep_gnome_terramancer.txt rename to forge-gui/res/cardsfolder/d/deep_gnome_terramancer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/delayed_blast_fireball.txt b/forge-gui/res/cardsfolder/d/delayed_blast_fireball.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/delayed_blast_fireball.txt rename to forge-gui/res/cardsfolder/d/delayed_blast_fireball.txt diff --git a/forge-gui/res/cardsfolder/upcoming/descent_into_avernus.txt b/forge-gui/res/cardsfolder/d/descent_into_avernus.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/descent_into_avernus.txt rename to forge-gui/res/cardsfolder/d/descent_into_avernus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dire_mimic.txt b/forge-gui/res/cardsfolder/d/dire_mimic.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dire_mimic.txt rename to forge-gui/res/cardsfolder/d/dire_mimic.txt diff --git a/forge-gui/res/cardsfolder/upcoming/displacer_kitten.txt b/forge-gui/res/cardsfolder/d/displacer_kitten.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/displacer_kitten.txt rename to forge-gui/res/cardsfolder/d/displacer_kitten.txt diff --git a/forge-gui/res/cardsfolder/upcoming/diviner_of_fates.txt b/forge-gui/res/cardsfolder/d/diviner_of_fates.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/diviner_of_fates.txt rename to forge-gui/res/cardsfolder/d/diviner_of_fates.txt diff --git a/forge-gui/res/cardsfolder/upcoming/draconic_lore.txt b/forge-gui/res/cardsfolder/d/draconic_lore.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/draconic_lore.txt rename to forge-gui/res/cardsfolder/d/draconic_lore.txt diff --git a/forge-gui/res/cardsfolder/upcoming/draconic_muralists.txt b/forge-gui/res/cardsfolder/d/draconic_muralists.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/draconic_muralists.txt rename to forge-gui/res/cardsfolder/d/draconic_muralists.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dragon_cultist.txt b/forge-gui/res/cardsfolder/d/dragon_cultist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dragon_cultist.txt rename to forge-gui/res/cardsfolder/d/dragon_cultist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dragonborn_looter.txt b/forge-gui/res/cardsfolder/d/dragonborn_looter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dragonborn_looter.txt rename to forge-gui/res/cardsfolder/d/dragonborn_looter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/drillworks_mole.txt b/forge-gui/res/cardsfolder/d/drillworks_mole.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/drillworks_mole.txt rename to forge-gui/res/cardsfolder/d/drillworks_mole.txt diff --git a/forge-gui/res/cardsfolder/upcoming/druid_of_the_emerald_grove.txt b/forge-gui/res/cardsfolder/d/druid_of_the_emerald_grove.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/druid_of_the_emerald_grove.txt rename to forge-gui/res/cardsfolder/d/druid_of_the_emerald_grove.txt diff --git a/forge-gui/res/cardsfolder/upcoming/druidic_ritual.txt b/forge-gui/res/cardsfolder/d/druidic_ritual.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/druidic_ritual.txt rename to forge-gui/res/cardsfolder/d/druidic_ritual.txt diff --git a/forge-gui/res/cardsfolder/upcoming/duke_ulder_ravenguard.txt b/forge-gui/res/cardsfolder/d/duke_ulder_ravenguard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/duke_ulder_ravenguard.txt rename to forge-gui/res/cardsfolder/d/duke_ulder_ravenguard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dungeon_delver.txt b/forge-gui/res/cardsfolder/d/dungeon_delver.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dungeon_delver.txt rename to forge-gui/res/cardsfolder/d/dungeon_delver.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dungeoneers_pack.txt b/forge-gui/res/cardsfolder/d/dungeoneers_pack.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dungeoneers_pack.txt rename to forge-gui/res/cardsfolder/d/dungeoneers_pack.txt diff --git a/forge-gui/res/cardsfolder/upcoming/durnan_of_the_yawning_portal.txt b/forge-gui/res/cardsfolder/d/durnan_of_the_yawning_portal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/durnan_of_the_yawning_portal.txt rename to forge-gui/res/cardsfolder/d/durnan_of_the_yawning_portal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dynaheir_invoker_adept.txt b/forge-gui/res/cardsfolder/d/dynaheir_invoker_adept.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dynaheir_invoker_adept.txt rename to forge-gui/res/cardsfolder/d/dynaheir_invoker_adept.txt diff --git a/forge-gui/res/cardsfolder/upcoming/earth_tremor.txt b/forge-gui/res/cardsfolder/e/earth_tremor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/earth_tremor.txt rename to forge-gui/res/cardsfolder/e/earth_tremor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/earthquake_dragon.txt b/forge-gui/res/cardsfolder/e/earthquake_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/earthquake_dragon.txt rename to forge-gui/res/cardsfolder/e/earthquake_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/effluence_devourer.txt b/forge-gui/res/cardsfolder/e/effluence_devourer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/effluence_devourer.txt rename to forge-gui/res/cardsfolder/e/effluence_devourer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ellyn_harbreeze_busybody.txt b/forge-gui/res/cardsfolder/e/ellyn_harbreeze_busybody.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ellyn_harbreeze_busybody.txt rename to forge-gui/res/cardsfolder/e/ellyn_harbreeze_busybody.txt diff --git a/forge-gui/res/cardsfolder/upcoming/elminster.txt b/forge-gui/res/cardsfolder/e/elminster.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/elminster.txt rename to forge-gui/res/cardsfolder/e/elminster.txt diff --git a/forge-gui/res/cardsfolder/upcoming/elturel_survivors.txt b/forge-gui/res/cardsfolder/e/elturel_survivors.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/elturel_survivors.txt rename to forge-gui/res/cardsfolder/e/elturel_survivors.txt diff --git a/forge-gui/res/cardsfolder/upcoming/emerald_dragon_dissonant_wave.txt b/forge-gui/res/cardsfolder/e/emerald_dragon_dissonant_wave.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/emerald_dragon_dissonant_wave.txt rename to forge-gui/res/cardsfolder/e/emerald_dragon_dissonant_wave.txt diff --git a/forge-gui/res/cardsfolder/upcoming/endless_evil.txt b/forge-gui/res/cardsfolder/e/endless_evil.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/endless_evil.txt rename to forge-gui/res/cardsfolder/e/endless_evil.txt diff --git a/forge-gui/res/cardsfolder/upcoming/erinis_gloom_stalker.txt b/forge-gui/res/cardsfolder/e/erinis_gloom_stalker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/erinis_gloom_stalker.txt rename to forge-gui/res/cardsfolder/e/erinis_gloom_stalker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ettercap_web_shot.txt b/forge-gui/res/cardsfolder/e/ettercap_web_shot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ettercap_web_shot.txt rename to forge-gui/res/cardsfolder/e/ettercap_web_shot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/explore_the_underdark.txt b/forge-gui/res/cardsfolder/e/explore_the_underdark.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/explore_the_underdark.txt rename to forge-gui/res/cardsfolder/e/explore_the_underdark.txt diff --git a/forge-gui/res/cardsfolder/upcoming/faceless_one.txt b/forge-gui/res/cardsfolder/f/faceless_one.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/faceless_one.txt rename to forge-gui/res/cardsfolder/f/faceless_one.txt diff --git a/forge-gui/res/cardsfolder/upcoming/faldorn_dread_wolf_herald.txt b/forge-gui/res/cardsfolder/f/faldorn_dread_wolf_herald.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/faldorn_dread_wolf_herald.txt rename to forge-gui/res/cardsfolder/f/faldorn_dread_wolf_herald.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fang_dragon_forktail_sweep.txt b/forge-gui/res/cardsfolder/f/fang_dragon_forktail_sweep.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fang_dragon_forktail_sweep.txt rename to forge-gui/res/cardsfolder/f/fang_dragon_forktail_sweep.txt diff --git a/forge-gui/res/cardsfolder/upcoming/far_traveler.txt b/forge-gui/res/cardsfolder/f/far_traveler.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/far_traveler.txt rename to forge-gui/res/cardsfolder/f/far_traveler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/feywild_caretaker.txt b/forge-gui/res/cardsfolder/f/feywild_caretaker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/feywild_caretaker.txt rename to forge-gui/res/cardsfolder/f/feywild_caretaker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/feywild_visitor.txt b/forge-gui/res/cardsfolder/f/feywild_visitor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/feywild_visitor.txt rename to forge-gui/res/cardsfolder/f/feywild_visitor.txt diff --git a/forge-gui/res/cardsfolder/f/fiery_encore.txt b/forge-gui/res/cardsfolder/f/fiery_encore.txt index 7a45de67e5e..b5af7af9b14 100644 --- a/forge-gui/res/cardsfolder/f/fiery_encore.txt +++ b/forge-gui/res/cardsfolder/f/fiery_encore.txt @@ -5,7 +5,7 @@ A:SP$ Discard | Cost$ 4 R | Mode$ TgtChoose | SubAbility$ DBDraw | RememberDisca SVar:DBDraw:DB$ Draw | SubAbility$ DBImmediateTrigger SVar:DBImmediateTrigger:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card.nonLand | Execute$ TrigDealDamage | RememberObjects$ RememberedCard | SubAbility$ DBCleanup | TriggerDescription$ When you discard a nonland card this way, CARDNAME deals damage equal to that card's mana value to target creature or planeswalker. SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ X -SVar:X:Remembered$CardManaCost +SVar:X:TriggerRemembered$CardManaCost SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True K:Storm Oracle:Discard a card, then draw a card. When you discard a nonland card this way, Fiery Encore deals damage equal to that card's mana value to target creature or planeswalker.\nStorm (When you cast this spell, copy it for each spell cast before it this turn.) diff --git a/forge-gui/res/cardsfolder/upcoming/firbolg_flutist.txt b/forge-gui/res/cardsfolder/f/firbolg_flutist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/firbolg_flutist.txt rename to forge-gui/res/cardsfolder/f/firbolg_flutist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/firkraag_cunning_instigator.txt b/forge-gui/res/cardsfolder/f/firkraag_cunning_instigator.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/firkraag_cunning_instigator.txt rename to forge-gui/res/cardsfolder/f/firkraag_cunning_instigator.txt diff --git a/forge-gui/res/cardsfolder/upcoming/flaming_fist.txt b/forge-gui/res/cardsfolder/f/flaming_fist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/flaming_fist.txt rename to forge-gui/res/cardsfolder/f/flaming_fist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/flaming_fist_officer.txt b/forge-gui/res/cardsfolder/f/flaming_fist_officer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/flaming_fist_officer.txt rename to forge-gui/res/cardsfolder/f/flaming_fist_officer.txt diff --git a/forge-gui/res/cardsfolder/f/fleeting_spirit.txt b/forge-gui/res/cardsfolder/f/fleeting_spirit.txt index ada7d25c93a..6914881b4ae 100644 --- a/forge-gui/res/cardsfolder/f/fleeting_spirit.txt +++ b/forge-gui/res/cardsfolder/f/fleeting_spirit.txt @@ -4,8 +4,8 @@ Types:Creature Spirit PT:3/1 A:AB$ Pump | Cost$ W ExileFromGrave<3/Card> | Defined$ Self | KW$ First Strike | SpellDescription$ CARDNAME gains first strike until end of turn. A:AB$ ChangeZone | Cost$ Discard<1/Card> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | RememberChanged$ True | SpellDescription$ Exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield under its owner's control at the beginning of the next end step. -SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Self +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield under its owner's control at the beginning of the next end step. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRememberedLKI AI:RemoveDeck:All DeckHas:Ability$Discard|Graveyard Oracle:{W}, Exile three cards from your graveyard: Fleeting Spirit gains first strike until end of turn.\nDiscard a card: Exile Fleeting Spirit. Return it to the battlefield under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/folk_hero.txt b/forge-gui/res/cardsfolder/f/folk_hero.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/folk_hero.txt rename to forge-gui/res/cardsfolder/f/folk_hero.txt diff --git a/forge-gui/res/cardsfolder/f/follow_the_tracks.txt b/forge-gui/res/cardsfolder/f/follow_the_tracks.txt new file mode 100644 index 00000000000..c4d5c61cc03 --- /dev/null +++ b/forge-gui/res/cardsfolder/f/follow_the_tracks.txt @@ -0,0 +1,6 @@ +Name:Follow the Tracks +ManaCost:2 G +Types:Sorcery +A:SP$ MakeCard | Spellbook$ Gate of the Black Dragon,Gate to Manorborn,Gate to Seatower,Gate to the Citadel,Gate to Tumbledown | Zone$ Battlefield | SpellDescription$ Conjure a card of your choice from CARDNAME's spellbook onto the battlefield. +DeckHas:Type$Gate +Oracle:Conjure a card of your choice from Follow the Tracks's spellbook onto the battlefield. diff --git a/forge-gui/res/cardsfolder/upcoming/font_of_magic.txt b/forge-gui/res/cardsfolder/f/font_of_magic.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/font_of_magic.txt rename to forge-gui/res/cardsfolder/f/font_of_magic.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fraying_line.txt b/forge-gui/res/cardsfolder/f/fraying_line.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fraying_line.txt rename to forge-gui/res/cardsfolder/f/fraying_line.txt diff --git a/forge-gui/res/cardsfolder/upcoming/from_the_catacombs.txt b/forge-gui/res/cardsfolder/f/from_the_catacombs.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/from_the_catacombs.txt rename to forge-gui/res/cardsfolder/f/from_the_catacombs.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gale_waterdeep_prodigy.txt b/forge-gui/res/cardsfolder/g/gale_waterdeep_prodigy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gale_waterdeep_prodigy.txt rename to forge-gui/res/cardsfolder/g/gale_waterdeep_prodigy.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ganax_astral_hunter.txt b/forge-gui/res/cardsfolder/g/ganax_astral_hunter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ganax_astral_hunter.txt rename to forge-gui/res/cardsfolder/g/ganax_astral_hunter.txt diff --git a/forge-gui/res/cardsfolder/g/garruk_wrath_of_the_wilds.txt b/forge-gui/res/cardsfolder/g/garruk_wrath_of_the_wilds.txt index eec1d3c1c43..9369943e736 100644 --- a/forge-gui/res/cardsfolder/g/garruk_wrath_of_the_wilds.txt +++ b/forge-gui/res/cardsfolder/g/garruk_wrath_of_the_wilds.txt @@ -3,10 +3,11 @@ ManaCost:2 G G Types:Legendary Planeswalker Garruk Loyalty:4 A:AB$ ChooseCard | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ChoiceZone$ Hand | Choices$ Card.Creature+YouOwn | ChoiceTitle$ Choose up to one creature card in your hand | Amount$ 1 | SubAbility$ DBEffect | StackDescription$ SpellDescription | SpellDescription$ Choose a creature card in your hand. It perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast." -SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility,PerpetualP1P1 | Duration$ Permanent | Name$ Garruk, Wrath of the Wilds's Perpetual Effect | SubAbility$ DBCleanup -SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | AddStaticAbility$ ReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast." -SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Secondary$ True +SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Garruk, Wrath of the Wilds's Perpetual Effect | SubAbility$ DBCleanup +SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | AddStaticAbility$ ReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast." SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast. +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True A:AB$ Draft | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Spellbook$ Mosscoat Goriak,Sylvan Brushstrider,Murasa Rootgrazer,Dire Wolf Prowler,Ferocious Pup,Pestilent Wolf,Garruk's Uprising,Dawntreader Elk,Nessian Hornbeetle,Territorial Scythecat,Trufflesnout,Wary Okapi,Scurrid Colony,Barkhide Troll,Underdark Basilisk | Zone$ Battlefield | SpellDescription$ Draft a card from CARDNAME's spellbook and put it onto the battlefield. A:AB$ PumpAll | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidCards$ Creature.YouCtrl | NumAtt$ +3 | NumDef$ +3 | KW$ Trample | SpellDescription$ Until end of turn, creatures you control get +3/+3 and gain trample. +DeckHas:Type$Troll|Elk|Wolf|Beast|Insect|Squirrel|Boar|Basilisk|Antelope & Ability$Sacrifice|Counters|LifeGain Oracle:[+1]: Choose a creature card in your hand. It perpetually gets +1/+1 and perpetually gains "This spell costs {1} less to cast."\n[-1]: Draft a card from Garruk, Wrath of the Wild's spellbook and put it onto the battlefield.\n[-6]: Until end of turn, creatures you control get +3/+3 and gain trample. diff --git a/forge-gui/res/cardsfolder/upcoming/gate_of_the_black_dragon.txt b/forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gate_of_the_black_dragon.txt rename to forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gate_to_manorborn.txt b/forge-gui/res/cardsfolder/g/gate_to_manorborn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gate_to_manorborn.txt rename to forge-gui/res/cardsfolder/g/gate_to_manorborn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gate_to_seatower.txt b/forge-gui/res/cardsfolder/g/gate_to_seatower.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gate_to_seatower.txt rename to forge-gui/res/cardsfolder/g/gate_to_seatower.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gate_to_the_citadel.txt b/forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gate_to_the_citadel.txt rename to forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gate_to_tumbledown.txt b/forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gate_to_tumbledown.txt rename to forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt diff --git a/forge-gui/res/cardsfolder/upcoming/genasi_enforcers.txt b/forge-gui/res/cardsfolder/g/genasi_enforcers.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/genasi_enforcers.txt rename to forge-gui/res/cardsfolder/g/genasi_enforcers.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ghastly_death_tyrant.txt b/forge-gui/res/cardsfolder/g/ghastly_death_tyrant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ghastly_death_tyrant.txt rename to forge-gui/res/cardsfolder/g/ghastly_death_tyrant.txt diff --git a/forge-gui/res/cardsfolder/g/ghost_council_of_orzhova.txt b/forge-gui/res/cardsfolder/g/ghost_council_of_orzhova.txt index ca9b83e0d60..588978eb43b 100644 --- a/forge-gui/res/cardsfolder/g/ghost_council_of_orzhova.txt +++ b/forge-gui/res/cardsfolder/g/ghost_council_of_orzhova.txt @@ -6,6 +6,6 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigDrain:DB$ LoseLife | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | LifeAmount$ 1 | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 A:AB$ ChangeZone | Cost$ 1 Sac<1/Creature> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DelTrig | SpellDescription$ Exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Self +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ DelayTriggerRememberedLKI Oracle:When Ghost Council of Orzhova enters the battlefield, target opponent loses 1 life and you gain 1 life.\n{1}, Sacrifice a creature: Exile Ghost Council of Orzhova. Return it to the battlefield under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/ghost_lantern_bind_spirit.txt b/forge-gui/res/cardsfolder/g/ghost_lantern_bind_spirit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ghost_lantern_bind_spirit.txt rename to forge-gui/res/cardsfolder/g/ghost_lantern_bind_spirit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/giant_ankheg.txt b/forge-gui/res/cardsfolder/g/giant_ankheg.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/giant_ankheg.txt rename to forge-gui/res/cardsfolder/g/giant_ankheg.txt diff --git a/forge-gui/res/cardsfolder/upcoming/giant_regrowth.txt b/forge-gui/res/cardsfolder/g/giant_regrowth.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/giant_regrowth.txt rename to forge-gui/res/cardsfolder/g/giant_regrowth.txt diff --git a/forge-gui/res/cardsfolder/upcoming/githzerai_monk.txt b/forge-gui/res/cardsfolder/g/githzerai_monk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/githzerai_monk.txt rename to forge-gui/res/cardsfolder/g/githzerai_monk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gluntch_the_bestower.txt b/forge-gui/res/cardsfolder/g/gluntch_the_bestower.txt similarity index 99% rename from forge-gui/res/cardsfolder/upcoming/gluntch_the_bestower.txt rename to forge-gui/res/cardsfolder/g/gluntch_the_bestower.txt index f3f1f538384..f0a75bde0e6 100644 --- a/forge-gui/res/cardsfolder/upcoming/gluntch_the_bestower.txt +++ b/forge-gui/res/cardsfolder/g/gluntch_the_bestower.txt @@ -1,16 +1,16 @@ -Name:Gluntch, the Bestower -ManaCost:1 G W -Types:Legendary Creature Jellyfish -PT:0/5 -K:Flying -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChoosePlayer1 | TriggerDescription$ At the beginning of your end step, choose a player. They put two +1/+1 counters on a creature they control. Choose a second player to draw a card. Then choose a third player to create two Treasure tokens. -SVar:TrigChoosePlayer1:DB$ ChoosePlayer | Defined$ You | Choices$ Player | RememberChosen$ True | ChoiceTitle$ Choose a player to put two +1/+1 counters on a creature they control | SubAbility$ Counters -SVar:Counters:DB$ PutCounter | Defined$ ChosenPlayer | Choices$ Creature.ControlledBy ChosenPlayer | ChoiceTitle$ Choose a creature you control | Chooser$ ChosenPlayer | Placer$ ChosenPlayer | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ TrigChoosePlayer2 -SVar:TrigChoosePlayer2:DB$ ChoosePlayer | Defined$ You | Choices$ Player.IsNotRemembered | RememberChosen$ True | ChoiceTitle$ Choose a player to draw a card | SubAbility$ Card -SVar:Card:DB$ Draw | Defined$ ChosenPlayer | SubAbility$ TrigChoosePlayer3 -SVar:TrigChoosePlayer3:DB$ ChoosePlayer | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | Defined$ You | Choices$ Player.IsNotRemembered | RememberChosen$ True | ChoiceTitle$ Choose a player to create two Treasure tokens | SubAbility$Tokens -SVar:Tokens:DB$ Token | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | Defined$ ChosenPlayer | TokenAmount$ 2 | TokenScript$ c_a_treasure_sac | TokenOwner$ ChosenPlayer | SubAbility$ CleanupFinal -SVar:X:PlayerCountPlayers$Amount -SVar:CleanupFinal:DB$ Cleanup | ClearRemembered$ True -DeckHas:Ability$Counters|Token|Sacrifice & Type$Treasure|Artifact +Name:Gluntch, the Bestower +ManaCost:1 G W +Types:Legendary Creature Jellyfish +PT:0/5 +K:Flying +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChoosePlayer1 | TriggerDescription$ At the beginning of your end step, choose a player. They put two +1/+1 counters on a creature they control. Choose a second player to draw a card. Then choose a third player to create two Treasure tokens. +SVar:TrigChoosePlayer1:DB$ ChoosePlayer | Defined$ You | Choices$ Player | RememberChosen$ True | ChoiceTitle$ Choose a player to put two +1/+1 counters on a creature they control | SubAbility$ Counters +SVar:Counters:DB$ PutCounter | Defined$ ChosenPlayer | Choices$ Creature.ControlledBy ChosenPlayer | ChoiceTitle$ Choose a creature you control | Chooser$ ChosenPlayer | Placer$ ChosenPlayer | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ TrigChoosePlayer2 +SVar:TrigChoosePlayer2:DB$ ChoosePlayer | Defined$ You | Choices$ Player.IsNotRemembered | RememberChosen$ True | ChoiceTitle$ Choose a player to draw a card | SubAbility$ Card +SVar:Card:DB$ Draw | Defined$ ChosenPlayer | SubAbility$ TrigChoosePlayer3 +SVar:TrigChoosePlayer3:DB$ ChoosePlayer | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | Defined$ You | Choices$ Player.IsNotRemembered | RememberChosen$ True | ChoiceTitle$ Choose a player to create two Treasure tokens | SubAbility$Tokens +SVar:Tokens:DB$ Token | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | Defined$ ChosenPlayer | TokenAmount$ 2 | TokenScript$ c_a_treasure_sac | TokenOwner$ ChosenPlayer | SubAbility$ CleanupFinal +SVar:X:PlayerCountPlayers$Amount +SVar:CleanupFinal:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Counters|Token|Sacrifice & Type$Treasure|Artifact Oracle:Flying\nAt the beginning of your end step, choose a player. They put two +1/+1 counters on a creature they control. Choose a second player to draw a card. Then choose a third player to create two Treasure tokens. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/gnoll_war_band.txt b/forge-gui/res/cardsfolder/g/gnoll_war_band.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gnoll_war_band.txt rename to forge-gui/res/cardsfolder/g/gnoll_war_band.txt diff --git a/forge-gui/res/cardsfolder/upcoming/goggles_of_night.txt b/forge-gui/res/cardsfolder/g/goggles_of_night.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/goggles_of_night.txt rename to forge-gui/res/cardsfolder/g/goggles_of_night.txt diff --git a/forge-gui/res/cardsfolder/upcoming/goliath_paladin.txt b/forge-gui/res/cardsfolder/g/goliath_paladin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/goliath_paladin.txt rename to forge-gui/res/cardsfolder/g/goliath_paladin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gond_gate.txt b/forge-gui/res/cardsfolder/g/gond_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gond_gate.txt rename to forge-gui/res/cardsfolder/g/gond_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/grave_choice.txt b/forge-gui/res/cardsfolder/g/grave_choice.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/grave_choice.txt rename to forge-gui/res/cardsfolder/g/grave_choice.txt diff --git a/forge-gui/res/cardsfolder/upcoming/graven_archfiend.txt b/forge-gui/res/cardsfolder/g/graven_archfiend.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/graven_archfiend.txt rename to forge-gui/res/cardsfolder/g/graven_archfiend.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gray_harbor_merfolk.txt b/forge-gui/res/cardsfolder/g/gray_harbor_merfolk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gray_harbor_merfolk.txt rename to forge-gui/res/cardsfolder/g/gray_harbor_merfolk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gray_slaad_entropic_decay.txt b/forge-gui/res/cardsfolder/g/gray_slaad_entropic_decay.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gray_slaad_entropic_decay.txt rename to forge-gui/res/cardsfolder/g/gray_slaad_entropic_decay.txt diff --git a/forge-gui/res/cardsfolder/upcoming/greatsword_of_tyr.txt b/forge-gui/res/cardsfolder/g/greatsword_of_tyr.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/greatsword_of_tyr.txt rename to forge-gui/res/cardsfolder/g/greatsword_of_tyr.txt diff --git a/forge-gui/res/cardsfolder/upcoming/green_slime.txt b/forge-gui/res/cardsfolder/g/green_slime.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/green_slime.txt rename to forge-gui/res/cardsfolder/g/green_slime.txt diff --git a/forge-gui/res/cardsfolder/upcoming/grell_philosopher.txt b/forge-gui/res/cardsfolder/g/grell_philosopher.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/grell_philosopher.txt rename to forge-gui/res/cardsfolder/g/grell_philosopher.txt diff --git a/forge-gui/res/cardsfolder/g/growing_rites_of_itlimoc_itlimoc_cradle_of_the_sun.txt b/forge-gui/res/cardsfolder/g/growing_rites_of_itlimoc_itlimoc_cradle_of_the_sun.txt index fa6477931d0..82d0825e5bc 100644 --- a/forge-gui/res/cardsfolder/g/growing_rites_of_itlimoc_itlimoc_cradle_of_the_sun.txt +++ b/forge-gui/res/cardsfolder/g/growing_rites_of_itlimoc_itlimoc_cradle_of_the_sun.txt @@ -3,9 +3,8 @@ ManaCost:2 G Types:Legendary Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top four cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in any order. SVar:TrigDig:DB$ Dig | DigNum$ 4 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBTransform | CheckSVar$ NumCres | SVarCompare$ GE4 | TriggerDescription$ At the beginning of your end step, if you control four or more creatures, transform CARDNAME. -SVar:DBTransform:DB$ SetState | Defined$ Self | Mode$ Transform -SVar:NumCres:Count$Valid Creature.YouCtrl+inZoneBattlefield +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBTransform | IsPresent$ Creature.YouCtrl | PresentCompare$ GE4 | TriggerDescription$ At the beginning of your end step, if you control four or more creatures, transform CARDNAME. +SVar:DBTransform:DB$ SetState | Mode$ Transform AlternateMode:DoubleFaced Oracle:When Growing Rites of Itlimoc enters the battlefield, look at the top four cards of your library. You may reveal a creature card from among them and put it into your hand. Put the rest on the bottom of your library in any order.\nAt the beginning of your end step, if you control four or more creatures, transform Growing Rites of Itlimoc. diff --git a/forge-gui/res/cardsfolder/upcoming/guardian_naga_banishing_coils.txt b/forge-gui/res/cardsfolder/g/guardian_naga_banishing_coils.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guardian_naga_banishing_coils.txt rename to forge-gui/res/cardsfolder/g/guardian_naga_banishing_coils.txt diff --git a/forge-gui/res/cardsfolder/upcoming/guiding_bolt.txt b/forge-gui/res/cardsfolder/g/guiding_bolt.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guiding_bolt.txt rename to forge-gui/res/cardsfolder/g/guiding_bolt.txt diff --git a/forge-gui/res/cardsfolder/upcoming/guild_artisan.txt b/forge-gui/res/cardsfolder/g/guild_artisan.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guild_artisan.txt rename to forge-gui/res/cardsfolder/g/guild_artisan.txt diff --git a/forge-gui/res/cardsfolder/upcoming/guildsworn_prowler.txt b/forge-gui/res/cardsfolder/g/guildsworn_prowler.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guildsworn_prowler.txt rename to forge-gui/res/cardsfolder/g/guildsworn_prowler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gut_true_soul_zealot.txt b/forge-gui/res/cardsfolder/g/gut_true_soul_zealot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gut_true_soul_zealot.txt rename to forge-gui/res/cardsfolder/g/gut_true_soul_zealot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_ceaseless_torment.txt b/forge-gui/res/cardsfolder/h/hag_of_ceaseless_torment.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_ceaseless_torment.txt rename to forge-gui/res/cardsfolder/h/hag_of_ceaseless_torment.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_dark_duress.txt b/forge-gui/res/cardsfolder/h/hag_of_dark_duress.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_dark_duress.txt rename to forge-gui/res/cardsfolder/h/hag_of_dark_duress.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_deaths_legion.txt b/forge-gui/res/cardsfolder/h/hag_of_deaths_legion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_deaths_legion.txt rename to forge-gui/res/cardsfolder/h/hag_of_deaths_legion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_inner_weakness.txt b/forge-gui/res/cardsfolder/h/hag_of_inner_weakness.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_inner_weakness.txt rename to forge-gui/res/cardsfolder/h/hag_of_inner_weakness.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_mages_doom.txt b/forge-gui/res/cardsfolder/h/hag_of_mages_doom.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_mages_doom.txt rename to forge-gui/res/cardsfolder/h/hag_of_mages_doom.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_noxious_nightmares.txt b/forge-gui/res/cardsfolder/h/hag_of_noxious_nightmares.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_noxious_nightmares.txt rename to forge-gui/res/cardsfolder/h/hag_of_noxious_nightmares.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_scoured_thoughts.txt b/forge-gui/res/cardsfolder/h/hag_of_scoured_thoughts.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_scoured_thoughts.txt rename to forge-gui/res/cardsfolder/h/hag_of_scoured_thoughts.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_syphoned_breath.txt b/forge-gui/res/cardsfolder/h/hag_of_syphoned_breath.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_syphoned_breath.txt rename to forge-gui/res/cardsfolder/h/hag_of_syphoned_breath.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hag_of_twisted_visions.txt b/forge-gui/res/cardsfolder/h/hag_of_twisted_visions.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hag_of_twisted_visions.txt rename to forge-gui/res/cardsfolder/h/hag_of_twisted_visions.txt diff --git a/forge-gui/res/cardsfolder/upcoming/halsin_emerald_archdruid.txt b/forge-gui/res/cardsfolder/h/halsin_emerald_archdruid.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/halsin_emerald_archdruid.txt rename to forge-gui/res/cardsfolder/h/halsin_emerald_archdruid.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hammers_of_moradin.txt b/forge-gui/res/cardsfolder/h/hammers_of_moradin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hammers_of_moradin.txt rename to forge-gui/res/cardsfolder/h/hammers_of_moradin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hardy_outlander.txt b/forge-gui/res/cardsfolder/h/hardy_outlander.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hardy_outlander.txt rename to forge-gui/res/cardsfolder/h/hardy_outlander.txt diff --git a/forge-gui/res/cardsfolder/upcoming/harper_recruiter.txt b/forge-gui/res/cardsfolder/h/harper_recruiter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/harper_recruiter.txt rename to forge-gui/res/cardsfolder/h/harper_recruiter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/haunted_one.txt b/forge-gui/res/cardsfolder/h/haunted_one.txt similarity index 99% rename from forge-gui/res/cardsfolder/upcoming/haunted_one.txt rename to forge-gui/res/cardsfolder/h/haunted_one.txt index d06a97698ff..3c2f1807e69 100644 --- a/forge-gui/res/cardsfolder/upcoming/haunted_one.txt +++ b/forge-gui/res/cardsfolder/h/haunted_one.txt @@ -1,9 +1,9 @@ -Name:Haunted One -ManaCost:2 B -Types:Legendary Enchantment Background -S:Mode$ Continuous | Affected$ Creature.IsCommander+YouOwn | AddTrigger$ BecomesTapped | Description$ Commander creatures you own have "Whenever this creature becomes tapped, it and other creatures you control that share a creature type with it each get +2/+0 and gain undying until end of turn." -SVar:BecomesTapped:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever this creature becomes tapped, it and other creatures you control that share a creature type with it each get +2/+0 and gain undying until end of turn. -SVar:TrigPump:DB$ PumpAll | ValidCards$ Card.sharesCreatureTypeWith+YouCtrl | KW$ Undying | NumAtt$ 2 -DeckHas:Ability$Counters & Keyword$Undying -AI:RemoveDeck:NonCommander +Name:Haunted One +ManaCost:2 B +Types:Legendary Enchantment Background +S:Mode$ Continuous | Affected$ Creature.IsCommander+YouOwn | AddTrigger$ BecomesTapped | Description$ Commander creatures you own have "Whenever this creature becomes tapped, it and other creatures you control that share a creature type with it each get +2/+0 and gain undying until end of turn." +SVar:BecomesTapped:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever this creature becomes tapped, it and other creatures you control that share a creature type with it each get +2/+0 and gain undying until end of turn. +SVar:TrigPump:DB$ PumpAll | ValidCards$ Card.sharesCreatureTypeWith+YouCtrl | KW$ Undying | NumAtt$ 2 +DeckHas:Ability$Counters & Keyword$Undying +AI:RemoveDeck:NonCommander Oracle:Commander creatures you own have "Whenever this creature becomes tapped, it and other creatures you control that share a creature type with it each get +2/+0 and gain undying until end of turn." (When a creature with undying dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/heap_gate.txt b/forge-gui/res/cardsfolder/h/heap_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/heap_gate.txt rename to forge-gui/res/cardsfolder/h/heap_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/henzie_toolbox_torre.txt b/forge-gui/res/cardsfolder/h/henzie_toolbox_torre.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/henzie_toolbox_torre.txt rename to forge-gui/res/cardsfolder/h/henzie_toolbox_torre.txt diff --git a/forge-gui/res/cardsfolder/upcoming/herald_of_vengeance.txt b/forge-gui/res/cardsfolder/h/herald_of_vengeance.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/herald_of_vengeance.txt rename to forge-gui/res/cardsfolder/h/herald_of_vengeance.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hezrou_demonic_stench.txt b/forge-gui/res/cardsfolder/h/hezrou_demonic_stench.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hezrou_demonic_stench.txt rename to forge-gui/res/cardsfolder/h/hezrou_demonic_stench.txt diff --git a/forge-gui/res/cardsfolder/h/hikari_twilight_guardian.txt b/forge-gui/res/cardsfolder/h/hikari_twilight_guardian.txt index a8ceca2fe7e..e6652b6dfcf 100644 --- a/forge-gui/res/cardsfolder/h/hikari_twilight_guardian.txt +++ b/forge-gui/res/cardsfolder/h/hikari_twilight_guardian.txt @@ -5,8 +5,8 @@ PT:4/4 K:Flying T:Mode$ SpellCast | ValidCard$ Spirit,Arcane | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, you may exile CARDNAME. If you do, return it to the battlefield under its owner's control at the beginning of the next end step. SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | AILogic$ IfNotBuffed | RememberChanged$ True | SubAbility$ DelTrig -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile | Destination$ Battlefield +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile | Destination$ Battlefield AI:RemoveDeck:Random DeckHints:Type$Spirit|Arcane Oracle:Flying\nWhenever you cast a Spirit or Arcane spell, you may exile Hikari, Twilight Guardian. If you do, return it to the battlefield under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/hook_horror.txt b/forge-gui/res/cardsfolder/h/hook_horror.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hook_horror.txt rename to forge-gui/res/cardsfolder/h/hook_horror.txt diff --git a/forge-gui/res/cardsfolder/upcoming/horn_of_valhalla_ysgards_call.txt b/forge-gui/res/cardsfolder/h/horn_of_valhalla_ysgards_call.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/horn_of_valhalla_ysgards_call.txt rename to forge-gui/res/cardsfolder/h/horn_of_valhalla_ysgards_call.txt diff --git a/forge-gui/res/cardsfolder/upcoming/icewind_stalwart.txt b/forge-gui/res/cardsfolder/i/icewind_stalwart.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/icewind_stalwart.txt rename to forge-gui/res/cardsfolder/i/icewind_stalwart.txt diff --git a/forge-gui/res/cardsfolder/upcoming/illithid_harvester_plant_tadpoles.txt b/forge-gui/res/cardsfolder/i/illithid_harvester_plant_tadpoles.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/illithid_harvester_plant_tadpoles.txt rename to forge-gui/res/cardsfolder/i/illithid_harvester_plant_tadpoles.txt diff --git a/forge-gui/res/cardsfolder/upcoming/imaryll_elfhame_elite.txt b/forge-gui/res/cardsfolder/i/imaryll_elfhame_elite.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/imaryll_elfhame_elite.txt rename to forge-gui/res/cardsfolder/i/imaryll_elfhame_elite.txt diff --git a/forge-gui/res/cardsfolder/upcoming/imoen_mystic_trickster.txt b/forge-gui/res/cardsfolder/i/imoen_mystic_trickster.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/imoen_mystic_trickster.txt rename to forge-gui/res/cardsfolder/i/imoen_mystic_trickster.txt diff --git a/forge-gui/res/cardsfolder/upcoming/incessant_provocation.txt b/forge-gui/res/cardsfolder/i/incessant_provocation.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/incessant_provocation.txt rename to forge-gui/res/cardsfolder/i/incessant_provocation.txt diff --git a/forge-gui/res/cardsfolder/upcoming/indulge_excess.txt b/forge-gui/res/cardsfolder/i/indulge_excess.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/indulge_excess.txt rename to forge-gui/res/cardsfolder/i/indulge_excess.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ingenious_artillerist.txt b/forge-gui/res/cardsfolder/i/ingenious_artillerist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ingenious_artillerist.txt rename to forge-gui/res/cardsfolder/i/ingenious_artillerist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inspired_tinkering.txt b/forge-gui/res/cardsfolder/i/inspired_tinkering.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/inspired_tinkering.txt rename to forge-gui/res/cardsfolder/i/inspired_tinkering.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inspiring_leader.txt b/forge-gui/res/cardsfolder/i/inspiring_leader.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/inspiring_leader.txt rename to forge-gui/res/cardsfolder/i/inspiring_leader.txt diff --git a/forge-gui/res/cardsfolder/upcoming/insufferable_balladeer.txt b/forge-gui/res/cardsfolder/i/insufferable_balladeer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/insufferable_balladeer.txt rename to forge-gui/res/cardsfolder/i/insufferable_balladeer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/intellect_devourer.txt b/forge-gui/res/cardsfolder/i/intellect_devourer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/intellect_devourer.txt rename to forge-gui/res/cardsfolder/i/intellect_devourer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/iron_mastiff.txt b/forge-gui/res/cardsfolder/i/iron_mastiff.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/iron_mastiff.txt rename to forge-gui/res/cardsfolder/i/iron_mastiff.txt diff --git a/forge-gui/res/cardsfolder/upcoming/jade_orb_of_dragonkind.txt b/forge-gui/res/cardsfolder/j/jade_orb_of_dragonkind.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/jade_orb_of_dragonkind.txt rename to forge-gui/res/cardsfolder/j/jade_orb_of_dragonkind.txt diff --git a/forge-gui/res/cardsfolder/upcoming/jaheira_friend_of_the_forest.txt b/forge-gui/res/cardsfolder/j/jaheira_friend_of_the_forest.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/jaheira_friend_of_the_forest.txt rename to forge-gui/res/cardsfolder/j/jaheira_friend_of_the_forest.txt diff --git a/forge-gui/res/cardsfolder/upcoming/jaheiras_respite.txt b/forge-gui/res/cardsfolder/j/jaheiras_respite.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/jaheiras_respite.txt rename to forge-gui/res/cardsfolder/j/jaheiras_respite.txt diff --git a/forge-gui/res/cardsfolder/upcoming/jan_jansen_chaos_crafter.txt b/forge-gui/res/cardsfolder/j/jan_jansen_chaos_crafter.txt similarity index 98% rename from forge-gui/res/cardsfolder/upcoming/jan_jansen_chaos_crafter.txt rename to forge-gui/res/cardsfolder/j/jan_jansen_chaos_crafter.txt index 6f0cabc0a39..cb4956a5631 100644 --- a/forge-gui/res/cardsfolder/upcoming/jan_jansen_chaos_crafter.txt +++ b/forge-gui/res/cardsfolder/j/jan_jansen_chaos_crafter.txt @@ -1,11 +1,11 @@ -Name:Jan Jansen, Chaos Crafter -ManaCost:R W B -Types:Legendary Creature Gnome Artificer -PT:3/3 -K:Haste -A:AB$ Token | Cost$ T Sac<1/Creature.Artifact/artifact creature> | TokenAmount$ 2 | TokenScript$ c_a_treasure_sac | SpellDescription$ Create two Treasure tokens. -A:AB$ Token | Cost$ T Sac<1/Artifact.nonCreature/noncreature artifact> | TokenAmount$ 2 | TokenScript$ c_1_1_a_construct | SpellDescription$ Create two 1/1 colorless Construct artifact creature tokens. -SVar:AIPreference:SacCost$Artifact.nonCreature+Token+powerLE1+toughnessEQ1 -DeckHas:Ability$Token|Sacrifice & Type$Treasure|Construct|Artifact -DeckNeeds:Type$Artifact -Oracle:Haste\n{T}, Sacrifice an artifact creature: Create two Treasure tokens.\n{T}, Sacrifice a noncreature artifact: Create two 1/1 colorless Construct artifact creature tokens. +Name:Jan Jansen, Chaos Crafter +ManaCost:R W B +Types:Legendary Creature Gnome Artificer +PT:3/3 +K:Haste +A:AB$ Token | Cost$ T Sac<1/Creature.Artifact/artifact creature> | TokenAmount$ 2 | TokenScript$ c_a_treasure_sac | SpellDescription$ Create two Treasure tokens. +A:AB$ Token | Cost$ T Sac<1/Artifact.nonCreature/noncreature artifact> | TokenAmount$ 2 | TokenScript$ c_1_1_a_construct | SpellDescription$ Create two 1/1 colorless Construct artifact creature tokens. +SVar:AIPreference:SacCost$Artifact.nonCreature+Token+powerLE1+toughnessEQ1 +DeckHas:Ability$Token|Sacrifice & Type$Treasure|Construct|Artifact +DeckNeeds:Type$Artifact +Oracle:Haste\n{T}, Sacrifice an artifact creature: Create two Treasure tokens.\n{T}, Sacrifice a noncreature artifact: Create two 1/1 colorless Construct artifact creature tokens. diff --git a/forge-gui/res/cardsfolder/upcoming/javelin_of_lightning.txt b/forge-gui/res/cardsfolder/j/javelin_of_lightning.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/javelin_of_lightning.txt rename to forge-gui/res/cardsfolder/j/javelin_of_lightning.txt diff --git a/forge-gui/res/cardsfolder/upcoming/jon_irenicus_shattered_one.txt b/forge-gui/res/cardsfolder/j/jon_irenicus_shattered_one.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/jon_irenicus_shattered_one.txt rename to forge-gui/res/cardsfolder/j/jon_irenicus_shattered_one.txt diff --git a/forge-gui/res/cardsfolder/upcoming/journey_to_the_lost_city.txt b/forge-gui/res/cardsfolder/j/journey_to_the_lost_city.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/journey_to_the_lost_city.txt rename to forge-gui/res/cardsfolder/j/journey_to_the_lost_city.txt diff --git a/forge-gui/res/cardsfolder/upcoming/juvenile_mist_dragon.txt b/forge-gui/res/cardsfolder/j/juvenile_mist_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/juvenile_mist_dragon.txt rename to forge-gui/res/cardsfolder/j/juvenile_mist_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kagha_shadow_archdruid.txt b/forge-gui/res/cardsfolder/k/kagha_shadow_archdruid.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kagha_shadow_archdruid.txt rename to forge-gui/res/cardsfolder/k/kagha_shadow_archdruid.txt diff --git a/forge-gui/res/cardsfolder/k/kaito_shizuki.txt b/forge-gui/res/cardsfolder/k/kaito_shizuki.txt index e69bc1304a8..deaabce144d 100644 --- a/forge-gui/res/cardsfolder/k/kaito_shizuki.txt +++ b/forge-gui/res/cardsfolder/k/kaito_shizuki.txt @@ -11,5 +11,5 @@ A:AB$ Token | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | TokenScript$ u_ A:AB$ Effect | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Stackable$ False | Name$ Emblem - Kaito Shizuki | Image$ emblem_kaito_shizuki | Triggers$ TrigDamage | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle." SVar:TrigDamage:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ EmblemTrigChangeZone | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle. SVar:EmblemTrigChangeZone:DB$ ChangeZone | ChangeType$ Creature.Blue,Creature.Black | ChangeNum$ 1 | Origin$ Library | Destination$ Battlefield | ShuffleNonMandatory$ True -DeckHas:Ability$Token -Oracle:At the beginning of your end step, if Kaito Shizuki entered the battlefield this turn, he phases out.\n+1: Draw a card. Then discard a card unless you attacked this turn.\n-2: Create a 1/1 blue Ninja creature token with "This creature can't be blocked."\n-7: You get an emblem with "Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle." +DeckHas:Ability$Discard|Token & Type$Ninja +Oracle:At the beginning of your end step, if Kaito Shizuki entered the battlefield this turn, he phases out.\n[+1]: Draw a card. Then discard a card unless you attacked this turn.\n[-2]: Create a 1/1 blue Ninja creature token with "This creature can't be blocked."\n[-7]: You get an emblem with "Whenever a creature you control deals combat damage to a player, search your library for a blue or black creature card, put it onto the battlefield, then shuffle." diff --git a/forge-gui/res/cardsfolder/upcoming/karlach_fury_of_avernus.txt b/forge-gui/res/cardsfolder/k/karlach_fury_of_avernus.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/karlach_fury_of_avernus.txt rename to forge-gui/res/cardsfolder/k/karlach_fury_of_avernus.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kenku_artificer.txt b/forge-gui/res/cardsfolder/k/kenku_artificer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kenku_artificer.txt rename to forge-gui/res/cardsfolder/k/kenku_artificer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/korlessa_scale_singer.txt b/forge-gui/res/cardsfolder/k/korlessa_scale_singer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/korlessa_scale_singer.txt rename to forge-gui/res/cardsfolder/k/korlessa_scale_singer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/laezel_vlaakiths_champion.txt b/forge-gui/res/cardsfolder/l/laezel_vlaakiths_champion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/laezel_vlaakiths_champion.txt rename to forge-gui/res/cardsfolder/l/laezel_vlaakiths_champion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/laezels_acrobatics.txt b/forge-gui/res/cardsfolder/l/laezels_acrobatics.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/laezels_acrobatics.txt rename to forge-gui/res/cardsfolder/l/laezels_acrobatics.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lantern_of_revealing.txt b/forge-gui/res/cardsfolder/l/lantern_of_revealing.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lantern_of_revealing.txt rename to forge-gui/res/cardsfolder/l/lantern_of_revealing.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lapis_orb_of_dragonkind.txt b/forge-gui/res/cardsfolder/l/lapis_orb_of_dragonkind.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lapis_orb_of_dragonkind.txt rename to forge-gui/res/cardsfolder/l/lapis_orb_of_dragonkind.txt diff --git a/forge-gui/res/cardsfolder/upcoming/livaan_cultist_of_tiamat.txt b/forge-gui/res/cardsfolder/l/livaan_cultist_of_tiamat.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/livaan_cultist_of_tiamat.txt rename to forge-gui/res/cardsfolder/l/livaan_cultist_of_tiamat.txt diff --git a/forge-gui/res/cardsfolder/upcoming/loot_dispute.txt b/forge-gui/res/cardsfolder/l/loot_dispute.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/loot_dispute.txt rename to forge-gui/res/cardsfolder/l/loot_dispute.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lulu_loyal_hollyphant.txt b/forge-gui/res/cardsfolder/l/lulu_loyal_hollyphant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lulu_loyal_hollyphant.txt rename to forge-gui/res/cardsfolder/l/lulu_loyal_hollyphant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lurking_green_dragon.txt b/forge-gui/res/cardsfolder/l/lurking_green_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lurking_green_dragon.txt rename to forge-gui/res/cardsfolder/l/lurking_green_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/maeve_insidious_singer.txt b/forge-gui/res/cardsfolder/m/maeve_insidious_singer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/maeve_insidious_singer.txt rename to forge-gui/res/cardsfolder/m/maeve_insidious_singer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mahadi_emporium_master.txt b/forge-gui/res/cardsfolder/m/mahadi_emporium_master.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mahadi_emporium_master.txt rename to forge-gui/res/cardsfolder/m/mahadi_emporium_master.txt diff --git a/forge-gui/res/cardsfolder/upcoming/majestic_genesis.txt b/forge-gui/res/cardsfolder/m/majestic_genesis.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/majestic_genesis.txt rename to forge-gui/res/cardsfolder/m/majestic_genesis.txt diff --git a/forge-gui/res/cardsfolder/upcoming/manor_gate.txt b/forge-gui/res/cardsfolder/m/manor_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/manor_gate.txt rename to forge-gui/res/cardsfolder/m/manor_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/marching_duodrone.txt b/forge-gui/res/cardsfolder/m/marching_duodrone.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/marching_duodrone.txt rename to forge-gui/res/cardsfolder/m/marching_duodrone.txt diff --git a/forge-gui/res/cardsfolder/upcoming/marut.txt b/forge-gui/res/cardsfolder/m/marut.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/marut.txt rename to forge-gui/res/cardsfolder/m/marut.txt diff --git a/forge-gui/res/cardsfolder/upcoming/master_chef.txt b/forge-gui/res/cardsfolder/m/master_chef.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/master_chef.txt rename to forge-gui/res/cardsfolder/m/master_chef.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mighty_servant_of_leuk_o.txt b/forge-gui/res/cardsfolder/m/mighty_servant_of_leuk_o.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mighty_servant_of_leuk_o.txt rename to forge-gui/res/cardsfolder/m/mighty_servant_of_leuk_o.txt diff --git a/forge-gui/res/cardsfolder/upcoming/miirym_sentinel_wyrm.txt b/forge-gui/res/cardsfolder/m/miirym_sentinel_wyrm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/miirym_sentinel_wyrm.txt rename to forge-gui/res/cardsfolder/m/miirym_sentinel_wyrm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/minthara_merciless_soul.txt b/forge-gui/res/cardsfolder/m/minthara_merciless_soul.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/minthara_merciless_soul.txt rename to forge-gui/res/cardsfolder/m/minthara_merciless_soul.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mirror_of_life_trapping.txt b/forge-gui/res/cardsfolder/m/mirror_of_life_trapping.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mirror_of_life_trapping.txt rename to forge-gui/res/cardsfolder/m/mirror_of_life_trapping.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mocking_doppelganger.txt b/forge-gui/res/cardsfolder/m/mocking_doppelganger.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mocking_doppelganger.txt rename to forge-gui/res/cardsfolder/m/mocking_doppelganger.txt diff --git a/forge-gui/res/cardsfolder/upcoming/modify_memory.txt b/forge-gui/res/cardsfolder/m/modify_memory.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/modify_memory.txt rename to forge-gui/res/cardsfolder/m/modify_memory.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mold_folk.txt b/forge-gui/res/cardsfolder/m/mold_folk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mold_folk.txt rename to forge-gui/res/cardsfolder/m/mold_folk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/moonshae_pixie.txt b/forge-gui/res/cardsfolder/m/moonshae_pixie.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/moonshae_pixie.txt rename to forge-gui/res/cardsfolder/m/moonshae_pixie.txt diff --git a/forge-gui/res/cardsfolder/upcoming/multiclass_baldric.txt b/forge-gui/res/cardsfolder/m/multiclass_baldric.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/multiclass_baldric.txt rename to forge-gui/res/cardsfolder/m/multiclass_baldric.txt diff --git a/forge-gui/res/cardsfolder/upcoming/myconid_spore_tender.txt b/forge-gui/res/cardsfolder/m/myconid_spore_tender.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/myconid_spore_tender.txt rename to forge-gui/res/cardsfolder/m/myconid_spore_tender.txt diff --git a/forge-gui/res/cardsfolder/upcoming/myrkuls_edict.txt b/forge-gui/res/cardsfolder/m/myrkuls_edict.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/myrkuls_edict.txt rename to forge-gui/res/cardsfolder/m/myrkuls_edict.txt diff --git a/forge-gui/res/cardsfolder/upcoming/myrkuls_invoker.txt b/forge-gui/res/cardsfolder/m/myrkuls_invoker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/myrkuls_invoker.txt rename to forge-gui/res/cardsfolder/m/myrkuls_invoker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mystery_key.txt b/forge-gui/res/cardsfolder/m/mystery_key.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mystery_key.txt rename to forge-gui/res/cardsfolder/m/mystery_key.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nalfeshnee.txt b/forge-gui/res/cardsfolder/n/nalfeshnee.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nalfeshnee.txt rename to forge-gui/res/cardsfolder/n/nalfeshnee.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nalia_dearnise.txt b/forge-gui/res/cardsfolder/n/nalia_dearnise.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nalia_dearnise.txt rename to forge-gui/res/cardsfolder/n/nalia_dearnise.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nautiloid_ship.txt b/forge-gui/res/cardsfolder/n/nautiloid_ship.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nautiloid_ship.txt rename to forge-gui/res/cardsfolder/n/nautiloid_ship.txt diff --git a/forge-gui/res/cardsfolder/upcoming/navigation_orb.txt b/forge-gui/res/cardsfolder/n/navigation_orb.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/navigation_orb.txt rename to forge-gui/res/cardsfolder/n/navigation_orb.txt diff --git a/forge-gui/res/cardsfolder/upcoming/neera_wild_mage.txt b/forge-gui/res/cardsfolder/n/neera_wild_mage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/neera_wild_mage.txt rename to forge-gui/res/cardsfolder/n/neera_wild_mage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nefarious_imp.txt b/forge-gui/res/cardsfolder/n/nefarious_imp.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nefarious_imp.txt rename to forge-gui/res/cardsfolder/n/nefarious_imp.txt diff --git a/forge-gui/res/cardsfolder/n/nezahal_primal_tide.txt b/forge-gui/res/cardsfolder/n/nezahal_primal_tide.txt index 65412695e6c..e8b63d16215 100644 --- a/forge-gui/res/cardsfolder/n/nezahal_primal_tide.txt +++ b/forge-gui/res/cardsfolder/n/nezahal_primal_tide.txt @@ -7,6 +7,6 @@ S:Mode$ Continuous | Affected$ You | SetMaxHandSize$ Unlimited | Description$ Yo T:Mode$ SpellCast | TriggerZones$ Battlefield | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ Opponent | Execute$ TrigDraw | TriggerDescription$ Whenever an opponent casts a noncreature spell, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 A:AB$ ChangeZone | Cost$ Discard<3/Card> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | RememberChanged$ True | StackDescription$ SpellDescription | SpellDescription$ Exile CARDNAME. Return it to the battlefield tapped under its owner's control at the beginning of the next end step. -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | StackDescription$ None | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield tapped under its owner's control. -SVar:TrigReturn:DB$ ChangeZone | Defined$ CorrectedSelf | Origin$ Exile | Destination$ Battlefield | Tapped$ True +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | StackDescription$ None | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield tapped under its owner's control. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile | Destination$ Battlefield | Tapped$ True Oracle:This spell can't be countered.\nYou have no maximum hand size.\nWhenever an opponent casts a noncreature spell, draw a card.\nDiscard three cards: Exile Nezahal, Primal Tide. Return it to the battlefield tapped under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/nightclub_bouncer.txt b/forge-gui/res/cardsfolder/n/nightclub_bouncer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nightclub_bouncer.txt rename to forge-gui/res/cardsfolder/n/nightclub_bouncer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nimbleclaw_adept.txt b/forge-gui/res/cardsfolder/n/nimbleclaw_adept.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nimbleclaw_adept.txt rename to forge-gui/res/cardsfolder/n/nimbleclaw_adept.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nimblewright_schematic.txt b/forge-gui/res/cardsfolder/n/nimblewright_schematic.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nimblewright_schematic.txt rename to forge-gui/res/cardsfolder/n/nimblewright_schematic.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nine-fingers_keene.txt b/forge-gui/res/cardsfolder/n/nine-fingers_keene.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nine-fingers_keene.txt rename to forge-gui/res/cardsfolder/n/nine-fingers_keene.txt diff --git a/forge-gui/res/cardsfolder/upcoming/noble_heritage.txt b/forge-gui/res/cardsfolder/n/noble_heritage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/noble_heritage.txt rename to forge-gui/res/cardsfolder/n/noble_heritage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nogi_draco_zealot.txt b/forge-gui/res/cardsfolder/n/nogi_draco_zealot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nogi_draco_zealot.txt rename to forge-gui/res/cardsfolder/n/nogi_draco_zealot.txt diff --git a/forge-gui/res/cardsfolder/n/norin_the_wary.txt b/forge-gui/res/cardsfolder/n/norin_the_wary.txt index c96ef7b02c0..899b8bb49c6 100644 --- a/forge-gui/res/cardsfolder/n/norin_the_wary.txt +++ b/forge-gui/res/cardsfolder/n/norin_the_wary.txt @@ -5,8 +5,8 @@ PT:2/1 T:Mode$ SpellCast | ValidCard$ Card | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ When a player casts a spell or a creature attacks, exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. T:Mode$ Attacks | ValidCard$ Creature | Execute$ TrigExile | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ When a player casts a spell or a creature attacks, exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step. SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DelTrig -SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | TriggerDescription$ Return CARDNAME to the battlefield under its owner's control at the beginning of the next end step. -SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Exile,Command | Destination$ Battlefield +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | ConditionDefined$ Remembered | ConditionPresent$ Card | RememberObjects$ Remembered | TriggerDescription$ Return CARDNAME to the battlefield under its owner's control at the beginning of the next end step. +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile,Command | Destination$ Battlefield SVar:MustAttack:True AI:RemoveDeck:Random Oracle:When a player casts a spell or a creature attacks, exile Norin the Wary. Return it to the battlefield under its owner's control at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/upcoming/nothic.txt b/forge-gui/res/cardsfolder/n/nothic.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nothic.txt rename to forge-gui/res/cardsfolder/n/nothic.txt diff --git a/forge-gui/res/cardsfolder/upcoming/obscura_polymorphist.txt b/forge-gui/res/cardsfolder/o/obscura_polymorphist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/obscura_polymorphist.txt rename to forge-gui/res/cardsfolder/o/obscura_polymorphist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/oceanus_dragon.txt b/forge-gui/res/cardsfolder/o/oceanus_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/oceanus_dragon.txt rename to forge-gui/res/cardsfolder/o/oceanus_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/oji_the_exquisite_blade.txt b/forge-gui/res/cardsfolder/o/oji_the_exquisite_blade.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/oji_the_exquisite_blade.txt rename to forge-gui/res/cardsfolder/o/oji_the_exquisite_blade.txt diff --git a/forge-gui/res/cardsfolder/upcoming/overwhelming_encounter.txt b/forge-gui/res/cardsfolder/o/overwhelming_encounter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/overwhelming_encounter.txt rename to forge-gui/res/cardsfolder/o/overwhelming_encounter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/owlbear_cub.txt b/forge-gui/res/cardsfolder/o/owlbear_cub.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/owlbear_cub.txt rename to forge-gui/res/cardsfolder/o/owlbear_cub.txt diff --git a/forge-gui/res/cardsfolder/upcoming/owlbear_shepherd.txt b/forge-gui/res/cardsfolder/o/owlbear_shepherd.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/owlbear_shepherd.txt rename to forge-gui/res/cardsfolder/o/owlbear_shepherd.txt diff --git a/forge-gui/res/cardsfolder/upcoming/oyaminartok_polar_werebear.txt b/forge-gui/res/cardsfolder/o/oyaminartok_polar_werebear.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/oyaminartok_polar_werebear.txt rename to forge-gui/res/cardsfolder/o/oyaminartok_polar_werebear.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pack_attack.txt b/forge-gui/res/cardsfolder/p/pack_attack.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pack_attack.txt rename to forge-gui/res/cardsfolder/p/pack_attack.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pact_weapon.txt b/forge-gui/res/cardsfolder/p/pact_weapon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pact_weapon.txt rename to forge-gui/res/cardsfolder/p/pact_weapon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pass_the_torch.txt b/forge-gui/res/cardsfolder/p/pass_the_torch.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pass_the_torch.txt rename to forge-gui/res/cardsfolder/p/pass_the_torch.txt diff --git a/forge-gui/res/cardsfolder/upcoming/passageway_seer.txt b/forge-gui/res/cardsfolder/p/passageway_seer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/passageway_seer.txt rename to forge-gui/res/cardsfolder/p/passageway_seer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/passionate_archaeologist.txt b/forge-gui/res/cardsfolder/p/passionate_archaeologist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/passionate_archaeologist.txt rename to forge-gui/res/cardsfolder/p/passionate_archaeologist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/patriars_humiliation.txt b/forge-gui/res/cardsfolder/p/patriars_humiliation.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/patriars_humiliation.txt rename to forge-gui/res/cardsfolder/p/patriars_humiliation.txt diff --git a/forge-gui/res/cardsfolder/upcoming/patriars_seal.txt b/forge-gui/res/cardsfolder/p/patriars_seal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/patriars_seal.txt rename to forge-gui/res/cardsfolder/p/patriars_seal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/patron_of_the_arts.txt b/forge-gui/res/cardsfolder/p/patron_of_the_arts.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/patron_of_the_arts.txt rename to forge-gui/res/cardsfolder/p/patron_of_the_arts.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pegasus_guardian_rescue_the_foal.txt b/forge-gui/res/cardsfolder/p/pegasus_guardian_rescue_the_foal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pegasus_guardian_rescue_the_foal.txt rename to forge-gui/res/cardsfolder/p/pegasus_guardian_rescue_the_foal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/poison_the_blade.txt b/forge-gui/res/cardsfolder/p/poison_the_blade.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/poison_the_blade.txt rename to forge-gui/res/cardsfolder/p/poison_the_blade.txt diff --git a/forge-gui/res/cardsfolder/upcoming/popular_entertainer.txt b/forge-gui/res/cardsfolder/p/popular_entertainer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/popular_entertainer.txt rename to forge-gui/res/cardsfolder/p/popular_entertainer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/prized_statue.txt b/forge-gui/res/cardsfolder/p/prized_statue.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/prized_statue.txt rename to forge-gui/res/cardsfolder/p/prized_statue.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pseudodragon_familiar.txt b/forge-gui/res/cardsfolder/p/pseudodragon_familiar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pseudodragon_familiar.txt rename to forge-gui/res/cardsfolder/p/pseudodragon_familiar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/psionic_ritual.txt b/forge-gui/res/cardsfolder/p/psionic_ritual.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/psionic_ritual.txt rename to forge-gui/res/cardsfolder/p/psionic_ritual.txt diff --git a/forge-gui/res/cardsfolder/upcoming/raised_by_giants.txt b/forge-gui/res/cardsfolder/r/raised_by_giants.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/raised_by_giants.txt rename to forge-gui/res/cardsfolder/r/raised_by_giants.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rasaad_yn_bashir.txt b/forge-gui/res/cardsfolder/r/rasaad_yn_bashir.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rasaad_yn_bashir.txt rename to forge-gui/res/cardsfolder/r/rasaad_yn_bashir.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ravenloft_adventurer.txt b/forge-gui/res/cardsfolder/r/ravenloft_adventurer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ravenloft_adventurer.txt rename to forge-gui/res/cardsfolder/r/ravenloft_adventurer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/reckless_barbarian.txt b/forge-gui/res/cardsfolder/r/reckless_barbarian.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/reckless_barbarian.txt rename to forge-gui/res/cardsfolder/r/reckless_barbarian.txt diff --git a/forge-gui/res/cardsfolder/upcoming/recruitment_drive.txt b/forge-gui/res/cardsfolder/r/recruitment_drive.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/recruitment_drive.txt rename to forge-gui/res/cardsfolder/r/recruitment_drive.txt diff --git a/forge-gui/res/cardsfolder/upcoming/renari_merchant_of_marvels.txt b/forge-gui/res/cardsfolder/r/renari_merchant_of_marvels.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/renari_merchant_of_marvels.txt rename to forge-gui/res/cardsfolder/r/renari_merchant_of_marvels.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rescuer_chwinga.txt b/forge-gui/res/cardsfolder/r/rescuer_chwinga.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rescuer_chwinga.txt rename to forge-gui/res/cardsfolder/r/rescuer_chwinga.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rilsa_rael_kingpin.txt b/forge-gui/res/cardsfolder/r/rilsa_rael_kingpin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rilsa_rael_kingpin.txt rename to forge-gui/res/cardsfolder/r/rilsa_rael_kingpin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/riveteers_provocateur.txt b/forge-gui/res/cardsfolder/r/riveteers_provocateur.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/riveteers_provocateur.txt rename to forge-gui/res/cardsfolder/r/riveteers_provocateur.txt diff --git a/forge-gui/res/cardsfolder/upcoming/robe_of_the_archmagi.txt b/forge-gui/res/cardsfolder/r/robe_of_the_archmagi.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/robe_of_the_archmagi.txt rename to forge-gui/res/cardsfolder/r/robe_of_the_archmagi.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rope_line_attendant.txt b/forge-gui/res/cardsfolder/r/rope_line_attendant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rope_line_attendant.txt rename to forge-gui/res/cardsfolder/r/rope_line_attendant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rug_of_smothering.txt b/forge-gui/res/cardsfolder/r/rug_of_smothering.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rug_of_smothering.txt rename to forge-gui/res/cardsfolder/r/rug_of_smothering.txt diff --git a/forge-gui/res/cardsfolder/upcoming/saddle_of_the_cavalier.txt b/forge-gui/res/cardsfolder/s/saddle_of_the_cavalier.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/saddle_of_the_cavalier.txt rename to forge-gui/res/cardsfolder/s/saddle_of_the_cavalier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/safana_calimport.cutthroat.txt b/forge-gui/res/cardsfolder/s/safana_calimport.cutthroat.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/safana_calimport.cutthroat.txt rename to forge-gui/res/cardsfolder/s/safana_calimport.cutthroat.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sailors_bane.txt b/forge-gui/res/cardsfolder/s/sailors_bane.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sailors_bane.txt rename to forge-gui/res/cardsfolder/s/sailors_bane.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sapphire_dragon_psionic_pulse.txt b/forge-gui/res/cardsfolder/s/sapphire_dragon_psionic_pulse.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sapphire_dragon_psionic_pulse.txt rename to forge-gui/res/cardsfolder/s/sapphire_dragon_psionic_pulse.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sarevok_deathbringer.txt b/forge-gui/res/cardsfolder/s/sarevok_deathbringer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sarevok_deathbringer.txt rename to forge-gui/res/cardsfolder/s/sarevok_deathbringer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sarevoks_tome.txt b/forge-gui/res/cardsfolder/s/sarevoks_tome.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sarevoks_tome.txt rename to forge-gui/res/cardsfolder/s/sarevoks_tome.txt diff --git a/forge-gui/res/cardsfolder/upcoming/scaled_nurturer.txt b/forge-gui/res/cardsfolder/s/scaled_nurturer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/scaled_nurturer.txt rename to forge-gui/res/cardsfolder/s/scaled_nurturer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/scion_of_halaster.txt b/forge-gui/res/cardsfolder/s/scion_of_halaster.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/scion_of_halaster.txt rename to forge-gui/res/cardsfolder/s/scion_of_halaster.txt diff --git a/forge-gui/res/cardsfolder/upcoming/scouting_hawk.txt b/forge-gui/res/cardsfolder/s/scouting_hawk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/scouting_hawk.txt rename to forge-gui/res/cardsfolder/s/scouting_hawk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sculpted_sunburst.txt b/forge-gui/res/cardsfolder/s/sculpted_sunburst.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sculpted_sunburst.txt rename to forge-gui/res/cardsfolder/s/sculpted_sunburst.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sea_gate.txt b/forge-gui/res/cardsfolder/s/sea_gate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sea_gate.txt rename to forge-gui/res/cardsfolder/s/sea_gate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/seasoned_dungeoneer.txt b/forge-gui/res/cardsfolder/s/seasoned_dungeoneer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/seasoned_dungeoneer.txt rename to forge-gui/res/cardsfolder/s/seasoned_dungeoneer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/seek_new_knowledge.txt b/forge-gui/res/cardsfolder/s/seek_new_knowledge.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/seek_new_knowledge.txt rename to forge-gui/res/cardsfolder/s/seek_new_knowledge.txt diff --git a/forge-gui/res/cardsfolder/upcoming/shadowheart_dark_justiciar.txt b/forge-gui/res/cardsfolder/s/shadowheart_dark_justiciar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/shadowheart_dark_justiciar.txt rename to forge-gui/res/cardsfolder/s/shadowheart_dark_justiciar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/shameless_charlatan.txt b/forge-gui/res/cardsfolder/s/shameless_charlatan.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/shameless_charlatan.txt rename to forge-gui/res/cardsfolder/s/shameless_charlatan.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sharpshooter_elf.txt b/forge-gui/res/cardsfolder/s/sharpshooter_elf.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sharpshooter_elf.txt rename to forge-gui/res/cardsfolder/s/sharpshooter_elf.txt diff --git a/forge-gui/res/cardsfolder/upcoming/shattering_finale.txt b/forge-gui/res/cardsfolder/s/shattering_finale.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/shattering_finale.txt rename to forge-gui/res/cardsfolder/s/shattering_finale.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sigil_of_myrkul.txt b/forge-gui/res/cardsfolder/s/sigil_of_myrkul.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sigil_of_myrkul.txt rename to forge-gui/res/cardsfolder/s/sigil_of_myrkul.txt diff --git a/forge-gui/res/cardsfolder/upcoming/signature_spells.txt b/forge-gui/res/cardsfolder/s/signature_spells.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/signature_spells.txt rename to forge-gui/res/cardsfolder/s/signature_spells.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sivriss_nightmare_speaker.txt b/forge-gui/res/cardsfolder/s/sivriss_nightmare_speaker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sivriss_nightmare_speaker.txt rename to forge-gui/res/cardsfolder/s/sivriss_nightmare_speaker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/skanos_dragonheart.txt b/forge-gui/res/cardsfolder/s/skanos_dragonheart.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/skanos_dragonheart.txt rename to forge-gui/res/cardsfolder/s/skanos_dragonheart.txt diff --git a/forge-gui/res/cardsfolder/upcoming/skyline_savior.txt b/forge-gui/res/cardsfolder/s/skyline_savior.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/skyline_savior.txt rename to forge-gui/res/cardsfolder/s/skyline_savior.txt diff --git a/forge-gui/res/cardsfolder/upcoming/snowborn_simulacra.txt b/forge-gui/res/cardsfolder/s/snowborn_simulacra.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/snowborn_simulacra.txt rename to forge-gui/res/cardsfolder/s/snowborn_simulacra.txt diff --git a/forge-gui/res/cardsfolder/upcoming/solemn_doomguide.txt b/forge-gui/res/cardsfolder/s/solemn_doomguide.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/solemn_doomguide.txt rename to forge-gui/res/cardsfolder/s/solemn_doomguide.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sparas_bodyguard.txt b/forge-gui/res/cardsfolder/s/sparas_bodyguard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sparas_bodyguard.txt rename to forge-gui/res/cardsfolder/s/sparas_bodyguard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/spectacular_showdown.txt b/forge-gui/res/cardsfolder/s/spectacular_showdown.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/spectacular_showdown.txt rename to forge-gui/res/cardsfolder/s/spectacular_showdown.txt diff --git a/forge-gui/res/cardsfolder/upcoming/split_the_spoils.txt b/forge-gui/res/cardsfolder/s/split_the_spoils.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/split_the_spoils.txt rename to forge-gui/res/cardsfolder/s/split_the_spoils.txt diff --git a/forge-gui/res/cardsfolder/upcoming/steadfast_unicorn.txt b/forge-gui/res/cardsfolder/s/steadfast_unicorn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/steadfast_unicorn.txt rename to forge-gui/res/cardsfolder/s/steadfast_unicorn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/stick_together.txt b/forge-gui/res/cardsfolder/s/stick_together.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/stick_together.txt rename to forge-gui/res/cardsfolder/s/stick_together.txt diff --git a/forge-gui/res/cardsfolder/upcoming/stirring_bard.txt b/forge-gui/res/cardsfolder/s/stirring_bard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/stirring_bard.txt rename to forge-gui/res/cardsfolder/s/stirring_bard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/stoneskin.txt b/forge-gui/res/cardsfolder/s/stoneskin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/stoneskin.txt rename to forge-gui/res/cardsfolder/s/stoneskin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/stonespeaker_crystal.txt b/forge-gui/res/cardsfolder/s/stonespeaker_crystal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/stonespeaker_crystal.txt rename to forge-gui/res/cardsfolder/s/stonespeaker_crystal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/storm_kings_thunder.txt b/forge-gui/res/cardsfolder/s/storm_kings_thunder.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/storm_kings_thunder.txt rename to forge-gui/res/cardsfolder/s/storm_kings_thunder.txt diff --git a/forge-gui/res/cardsfolder/upcoming/street_urchin.txt b/forge-gui/res/cardsfolder/s/street_urchin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/street_urchin.txt rename to forge-gui/res/cardsfolder/s/street_urchin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/stunning_strike.txt b/forge-gui/res/cardsfolder/s/stunning_strike.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/stunning_strike.txt rename to forge-gui/res/cardsfolder/s/stunning_strike.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sunes_intervention.txt b/forge-gui/res/cardsfolder/s/sunes_intervention.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sunes_intervention.txt rename to forge-gui/res/cardsfolder/s/sunes_intervention.txt diff --git a/forge-gui/res/cardsfolder/upcoming/swashbuckler_extraordinaire.txt b/forge-gui/res/cardsfolder/s/swashbuckler_extraordinaire.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/swashbuckler_extraordinaire.txt rename to forge-gui/res/cardsfolder/s/swashbuckler_extraordinaire.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sword_coast_sailor.txt b/forge-gui/res/cardsfolder/s/sword_coast_sailor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sword_coast_sailor.txt rename to forge-gui/res/cardsfolder/s/sword_coast_sailor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sword_coast_serpent_capsizing_wave.txt b/forge-gui/res/cardsfolder/s/sword_coast_serpent_capsizing_wave.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sword_coast_serpent_capsizing_wave.txt rename to forge-gui/res/cardsfolder/s/sword_coast_serpent_capsizing_wave.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tabaxi_toucaneers.txt b/forge-gui/res/cardsfolder/t/tabaxi_toucaneers.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tabaxi_toucaneers.txt rename to forge-gui/res/cardsfolder/t/tabaxi_toucaneers.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tasha_unholy_archmage.txt b/forge-gui/res/cardsfolder/t/tasha_unholy_archmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tasha_unholy_archmage.txt rename to forge-gui/res/cardsfolder/t/tasha_unholy_archmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/taunting_kobold.txt b/forge-gui/res/cardsfolder/t/taunting_kobold.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/taunting_kobold.txt rename to forge-gui/res/cardsfolder/t/taunting_kobold.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tavern_brawler.txt b/forge-gui/res/cardsfolder/t/tavern_brawler.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tavern_brawler.txt rename to forge-gui/res/cardsfolder/t/tavern_brawler.txt diff --git a/forge-gui/res/cardsfolder/upcoming/the_council_of_four.txt b/forge-gui/res/cardsfolder/t/the_council_of_four.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/the_council_of_four.txt rename to forge-gui/res/cardsfolder/t/the_council_of_four.txt diff --git a/forge-gui/res/cardsfolder/upcoming/the_hourglass_coven.txt b/forge-gui/res/cardsfolder/t/the_hourglass_coven.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/the_hourglass_coven.txt rename to forge-gui/res/cardsfolder/t/the_hourglass_coven.txt diff --git a/forge-gui/res/cardsfolder/upcoming/thrakkus_the_butcher.txt b/forge-gui/res/cardsfolder/t/thrakkus_the_butcher.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/thrakkus_the_butcher.txt rename to forge-gui/res/cardsfolder/t/thrakkus_the_butcher.txt diff --git a/forge-gui/res/cardsfolder/upcoming/thunderwave.txt b/forge-gui/res/cardsfolder/t/thunderwave.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/thunderwave.txt rename to forge-gui/res/cardsfolder/t/thunderwave.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tiamats_fanatics.txt b/forge-gui/res/cardsfolder/t/tiamats_fanatics.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tiamats_fanatics.txt rename to forge-gui/res/cardsfolder/t/tiamats_fanatics.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tlincalli_hunter_retrieve_prey.txt b/forge-gui/res/cardsfolder/t/tlincalli_hunter_retrieve_prey.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tlincalli_hunter_retrieve_prey.txt rename to forge-gui/res/cardsfolder/t/tlincalli_hunter_retrieve_prey.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tomb_of_horrors_adventurer.txt b/forge-gui/res/cardsfolder/t/tomb_of_horrors_adventurer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tomb_of_horrors_adventurer.txt rename to forge-gui/res/cardsfolder/t/tomb_of_horrors_adventurer.txt diff --git a/forge-gui/res/cardsfolder/t/tome_of_the_infinite.txt b/forge-gui/res/cardsfolder/t/tome_of_the_infinite.txt index 53b4d0c8107..568353fa02b 100644 --- a/forge-gui/res/cardsfolder/t/tome_of_the_infinite.txt +++ b/forge-gui/res/cardsfolder/t/tome_of_the_infinite.txt @@ -1,10 +1,8 @@ Name:Tome of the Infinite ManaCost:2 U Types:Legendary Artifact -A:AB$ NameCard | Cost$ U T | Defined$ You | AtRandom$ True | ChooseFromList$ Light of Hope,Swords to Plowshares,Force Spike,Ponder,Dark Ritual,Duress,Assault Strobe,Lightning Bolt,Fog,Giant Growth | SubAbility$ DBConjure | StackDescription$ SpellDescription | SpellDescription$ Conjure a random card from CARDNAME's spellbook into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell." -SVar:DBConjure:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBClearName -SVar:DBClearName:DB$ Cleanup | ClearNamedCard$ True | SubAbility$ DBEffect -SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Tome of the Infinite's Perpetual Effect | SubAbility$ DBCleanup +A:AB$ MakeCard | Cost$ U T | AtRandom$ True | Spellbook$ Light of Hope,Swords to Plowshares,Force Spike,Ponder,Dark Ritual,Duress,Assault Strobe,Lightning Bolt,Fog,Giant Growth | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect | SpellDescription$ Conjure a random card from CARDNAME's spellbook into your hand. +SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Tome of the Infinite's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ It perpetually gains "You may spend mana as though it were mana of any color to cast this spell." SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell." SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.Self | EffectZone$ All | AffectedZone$ Stack | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/upcoming/topaz_dragon_entropic_cloud.txt b/forge-gui/res/cardsfolder/t/topaz_dragon_entropic_cloud.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/topaz_dragon_entropic_cloud.txt rename to forge-gui/res/cardsfolder/t/topaz_dragon_entropic_cloud.txt diff --git a/forge-gui/res/cardsfolder/upcoming/trailblazers_torch.txt b/forge-gui/res/cardsfolder/t/trailblazers_torch.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/trailblazers_torch.txt rename to forge-gui/res/cardsfolder/t/trailblazers_torch.txt diff --git a/forge-gui/res/cardsfolder/upcoming/traumatic_prank.txt b/forge-gui/res/cardsfolder/t/traumatic_prank.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/traumatic_prank.txt rename to forge-gui/res/cardsfolder/t/traumatic_prank.txt diff --git a/forge-gui/res/cardsfolder/upcoming/two_handed_axe_sweeping_cleave.txt b/forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/two_handed_axe_sweeping_cleave.txt rename to forge-gui/res/cardsfolder/t/two_handed_axe_sweeping_cleave.txt diff --git a/forge-gui/res/cardsfolder/upcoming/uchuulon.txt b/forge-gui/res/cardsfolder/u/uchuulon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/uchuulon.txt rename to forge-gui/res/cardsfolder/u/uchuulon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undercellar_myconid.txt b/forge-gui/res/cardsfolder/u/undercellar_myconid.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undercellar_myconid.txt rename to forge-gui/res/cardsfolder/u/undercellar_myconid.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undercellar_sweep.txt b/forge-gui/res/cardsfolder/u/undercellar_sweep.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undercellar_sweep.txt rename to forge-gui/res/cardsfolder/u/undercellar_sweep.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undercity.txt b/forge-gui/res/cardsfolder/u/undercity.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undercity.txt rename to forge-gui/res/cardsfolder/u/undercity.txt diff --git a/forge-gui/res/cardsfolder/upcoming/underdark_explorer.txt b/forge-gui/res/cardsfolder/u/underdark_explorer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/underdark_explorer.txt rename to forge-gui/res/cardsfolder/u/underdark_explorer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undermountain_adventurer.txt b/forge-gui/res/cardsfolder/u/undermountain_adventurer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undermountain_adventurer.txt rename to forge-gui/res/cardsfolder/u/undermountain_adventurer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/uthgardt_fury.txt b/forge-gui/res/cardsfolder/u/uthgardt_fury.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/uthgardt_fury.txt rename to forge-gui/res/cardsfolder/u/uthgardt_fury.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ajani_sleeper_agent.txt b/forge-gui/res/cardsfolder/upcoming/ajani_sleeper_agent.txt new file mode 100644 index 00000000000..786e42410c4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ajani_sleeper_agent.txt @@ -0,0 +1,16 @@ +Name:Ajani, Sleeper Agent +ManaCost:1 G PGW W +Types:Legendary Planeswalker Ajani +Loyalty:4 +K:Compleated +A:AB$ Dig | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Creature,Planeswalker | DestinationZone$ Hand | DestinationZone2$ Library | LibraryPosition2$ -1 | RememberChanged$ True | SubAbility$ DBDig | SpellDescription$ Reveal the top card of your library. If it's a creature or planeswalker card, put it into your hand. Otherwise, you may put it on the bottom of your library. +SVar:DBDig:DB$ Dig | DigNum$ 1 | DestinationZone$ Library | Optional$ True | LibraryPosition$ -1 | LibraryPosition2$ 0 | ConditionDefined$ Remembered | ConditionNotPresent$ Card | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ PutCounter | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select up to three target creatures you control | CounterType$ P1P1 | CounterNum$ 3 | TargetMin$ 0 | TargetMax$ 3 | DividedAsYouChoose$ 3 | SubAbility$ DBPump | SpellDescription$ Distribute three +1/+1 counters among up to three target creatures. +SVar:DBPump:DB$ Pump | KW$ Vigilance | Defined$ Targeted | SpellDescription$ They gain vigilance until end of turn. +A:AB$ Effect | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Ajani, Sleeper Agent | Image$ emblem_ajani_sleeper_agent | Triggers$ TrigSpellCast | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you cast a creature or planeswalker spell, target opponent gets two poison counters." +SVar:TrigSpellCast:Mode$ SpellCast | ValidCard$ Creature,Planeswalker | ValidActivatingPlayer$ You | Execute$ EffSpellCast | TriggerDescription$ Whenever you cast a creature or planeswalker spell, target opponent gets two poison counters. +SVar:EffSpellCast:DB$ Poison | ValidTgts$ Opponent | Num$ 2 +SVar:BuffedBy:Creature,Planeswalker +DeckHints:Type$Creature|Planeswalker +Oracle:Compleated ({PGW} can be paid with {G}, {W}, or 2 life. If life was paid, this planeswalker enters with two fewer loyalty counters.)\n[+1]: Reveal the top card of your library. If it's a creature or planeswalker card, put it into your hand. Otherwise, you may put it on the bottom of your library.\n[-3]: Distribute three +1/+1 counters among up to three target creatures. They gain vigilance until end of turn.\n[-6]: You get an emblem with "Whenever you cast a creature or planeswalker spell, target opponent gets two poison counters." diff --git a/forge-gui/res/cardsfolder/upcoming/astor_bearer_of_blades.txt b/forge-gui/res/cardsfolder/upcoming/astor_bearer_of_blades.txt new file mode 100644 index 00000000000..b3d01d4df0b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/astor_bearer_of_blades.txt @@ -0,0 +1,10 @@ +Name:Astor, Bearer of Blades +ManaCost:2 R W +Types:Legendary Creature Human Warrior +PT:4/4 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top seven cards of your library. You may reveal an Equipment or Vehicle 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$ Equipment,Vehicle | RestRandomOrder$ True | Reveal$ True +S:Mode$ Continuous | Affected$ Equipment.YouCtrl | AddKeyword$ Equip:1 | Description$ Equipment you control have equip {1}. +S:Mode$ Continuous | Affected$ Vehicle.YouCtrl | AddKeyword$ Crew:1 | Description$ Vehicles you control have crew 1. +DeckNeeds:Type$Equipment|Vehicle +Oracle:When Astor, Bearer of Blades enters the battlefield, look at the top seven cards of your library. You may reveal an Equipment or Vehicle card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.\nEquipment you control have equip {1}.\nVehicles you control have crew 1. diff --git a/forge-gui/res/cardsfolder/upcoming/braids_arisen_nightmare.txt b/forge-gui/res/cardsfolder/upcoming/braids_arisen_nightmare.txt new file mode 100644 index 00000000000..b068beeb21e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/braids_arisen_nightmare.txt @@ -0,0 +1,13 @@ +Name:Braids, Arisen Nightmare +ManaCost:1 B B +Types:Legendary Creature Nightmare +PT:3/3 +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of your end step, you may sacrifice an artifact, creature, enchantment, land, or planeswalker. If you do, each opponent may sacrifice a permanent that shares a card type with it. For each opponent who doesn't, that player loses 2 life and you draw a card. +SVar:TrigSac:DB$ Sacrifice | Optional$ True | SacValid$ Artifact,Creature,Enchantment,Land,Planeswalker | Amount$ 1 | RememberSacrificed$ True | SubAbility$ DBRepeatEach +SVar:DBRepeatEach:DB$ RepeatEach | ConditionDefined$ Remembered | ConditionPresent$ Card | RepeatSubAbility$ DBMaySac | RepeatPlayers$ Player.Opponent | SubAbility$ DBCleanup +SVar:DBMaySac:DB$ Sacrifice | Defined$ Player.IsRemembered | SacValid$ Permanent.sharesCardTypeWith RememberedCard | RememberSacrificed$ True | Optional$ True | SubAbility$ DBLoseLife +SVar:DBLoseLife:DB$ LoseLife | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | Defined$ Player.IsRemembered | LifeAmount$ 2 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | Defined$ You | NumCards$ 1 +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Remembered$Valid Card.RememberedPlayerCtrl +Oracle:At the beginning of your end step, you may sacrifice an artifact, creature, enchantment, land, or planeswalker. If you do, each opponent may sacrifice a permanent that shares a card type with it. For each opponent who doesn't, that player loses 2 life and you draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/herd_migration.txt b/forge-gui/res/cardsfolder/upcoming/herd_migration.txt new file mode 100644 index 00000000000..df23cd8cc77 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/herd_migration.txt @@ -0,0 +1,10 @@ +Name:Herd Migration +ManaCost:6 G +Types:Sorcery +A:SP$ Token | TokenAmount$ X | TokenScript$ g_3_3_beast | TokenOwner$ You | SpellDescription$ Domain — Create a 3/3 green Beast creature token for each basic land type among lands you control. +A:AB$ ChangeZone | Cost$ 1 G Discard<1/CARDNAME> | ActivationZone$ Hand | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | ChangeTypeDesc$ basic land card | SubAbility$ DBGainLife | SpellDescription$ Search your library for a basic land card, reveal it, put it into your hand, then shuffle. You gain 3 life. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 3 +DeckHas:Ability$Discard|LifeGain|Token & Type$Beast +SVar:X:Count$Domain +AI:RemoveDeck:Random +Oracle:Domain — Create a 3/3 green Beast creature token for each basic land type among lands you control.\n{1}{G}, Discard Herd Migration: Search your library for a basic land card, reveal it, put it into your hand, then shuffle. You gain 3 life. diff --git a/forge-gui/res/cardsfolder/upcoming/impede_momentum.txt b/forge-gui/res/cardsfolder/upcoming/impede_momentum.txt new file mode 100644 index 00000000000..0e3cbe0989a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/impede_momentum.txt @@ -0,0 +1,8 @@ +Name:Impede Momentum +ManaCost:1 U +Types:Sorcery +A:SP$ Tap | TgtPrompt$ Choose target creature | ValidTgts$ Creature | SubAbility$ DBCounter | SpellDescription$ Tap target creature and put three stun counters on it. (If a permanent with a stun counter would become untapped, remove one from it instead.) +SVar:DBCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ Stun | CounterNum$ 3 | SubAbility$ DBScry +SVar:DBScry:DB$ Scry | ScryNum$ 1 | SpellDescription$ Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) +DeckHints:Ability$Counters +Oracle:Tap target creature and put three stun counters on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)\nScry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) diff --git a/forge-gui/res/cardsfolder/upcoming/jared_carthalion.txt b/forge-gui/res/cardsfolder/upcoming/jared_carthalion.txt new file mode 100644 index 00000000000..8f05352e686 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/jared_carthalion.txt @@ -0,0 +1,15 @@ +Name:Jared Carthalion +ManaCost:W U B R G +Types:Legendary Planeswalker Jared +Loyalty:5 +A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | TokenScript$ all_3_3_kavu_trample | SpellDescription$ Create a 3/3 Kavu creature token with trample that's all colors. +A:AB$ PutCounter | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | Defined$ Targeted | CounterType$ P1P1 | CounterNumPerDefined$ X | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Choose up to two target creatures | StackDescription$ For each of {c:Targeted}, put a number of +1/+1 counters on it equal to the number of colors it is. | SpellDescription$ Choose up to two target creatures. For each of them, put a number of +1/+1 counters on it equal to the number of colors it is. +SVar:X:Count$CardNumColors +A:AB$ ChangeZone | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target multicolored card in your graveyard | ValidTgts$ Card.MultiColor+YouOwn | RememberChanged$ True | SubAbility$ DBDraw | SpellDescription$ Return target multicolored card from your graveyard to your hand. +SVar:DBDraw:DB$ Draw | ConditionDefined$ Remembered | ConditionPresent$ Card.AllColors | SubAbility$ DBTreasure | StackDescription$ If that card was all colors, {p:You} draws a card and creates two Treasure tokens. | SpellDescription$ If that card was all colors, draw a card and create two Treasure tokens. +SVar:DBTreasure:DB$ Token | ConditionDefined$ Remembered | ConditionPresent$ Card.AllColors | TokenAmount$ 2 | TokenScript$ c_a_treasure_sac | SubAbility$ DBCleanup | StackDescription$ None +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Text:CARDNAME can be your commander. +DeckHas:Ability$Token|Counters|Sacrifice|Graveyard & Type$Kavu|Artifact|Treasure +AI:RemoveDeck:Random +Oracle:[+1]: Create a 3/3 Kavu creature token with trample that's all colors.\n[−3]: Choose up to two target creatures. For each of them, put a number of +1/+1 counters on it equal to the number of colors it is.\n[−6]: Return target multicolored card from your graveyard to your hand. If that card was all colors, draw a card and create two Treasure tokens.\nJared Carthalion can be your commander. diff --git a/forge-gui/res/cardsfolder/upcoming/jhoira_ageless_innovator.txt b/forge-gui/res/cardsfolder/upcoming/jhoira_ageless_innovator.txt new file mode 100644 index 00000000000..3bd191ddee1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/jhoira_ageless_innovator.txt @@ -0,0 +1,9 @@ +Name:Jhoira, Ageless Innovator +ManaCost:U R +Types:Legendary Creature Human Artificer +PT:2/3 +A:AB$ PutCounter | Cost$ T | CounterType$ INGENUITY | CounterNum$ 2 | SubAbility$ DBChangeZone | StackDescription$ {p:You} puts two ingenuity counters on CARDNAME, then {p:You} may put an artifact card with mana value X or less from hand onto the battlefield, where X is the number of ingenuity counters on NICKNAME. | SpellDescription$ Put two ingenuity counters on CARDNAME, then you may put an artifact card with mana value X or less from your hand onto the battlefield, where X is the number of ingenuity counters on NICKNAME. +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Artifact.cmcLEX+YouOwn | StackDescription$ None +SVar:X:Count$CardCounters.INGENUITY +DeckNeeds:Type$Artifact +Oracle:{T}: Put two ingenuity counters on Jhoira, Ageless Innovator, then you may put an artifact card with mana value X or less from your hand onto the battlefield, where X is the number of ingenuity counters on Jhoira. diff --git a/forge-gui/res/cardsfolder/upcoming/karn_living_legacy.txt b/forge-gui/res/cardsfolder/upcoming/karn_living_legacy.txt new file mode 100644 index 00000000000..b1060e30773 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/karn_living_legacy.txt @@ -0,0 +1,14 @@ +Name:Karn, Living Legacy +ManaCost:4 +Types:Legendary Planeswalker Karn +Loyalty:4 +A:AB$ Token | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | TokenAmount$ 1 | TokenTapped$ True | TokenScript$ c_a_powerstone | TokenOwner$ You | SpellDescription$ Create a tapped Powerstone token. (It's an artifact with "{T}: Add {C}. This mana can't be spent to cast a nonartifact spell.") +A:AB$ ChooseNumber | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | ChooseAnyNumber$ True | ListTitle$ Pay Any Mana | SubAbility$ DBDig | SpellDescription$ Pay any amount of mana. Look at that many cards from the top of your library, then put one of those cards into your hand and the rest on the bottom of your library in a random order. +SVar:DBDig:DB$ Dig | DigNum$ X | ChangeNum$ 1 | RestRandomOrder$ True | UnlessCost$ X | UnlessPayer$ You | UnlessSwitched$ True +A:AB$ Effect | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | AIlogic$ Always | Stackable$ False | Name$ Emblem - Karn, Living Legacy | Image$ emblem_karn_living_legacy | Duration$ Permanent | Abilities$ KarnPing | SpellDescription$ You get an emblem with "Tap an untapped artifact you control: This emblem deals 1 damage to any target." +SVar:KarnPing:AB$ DealDamage | Cost$ tapXType<1/Artifact> | ActivationZone$ Command | ValidTgts$ Creature,Player,Planeswalker | NumDmg$ 1 +SVar:PlayMain1:TRUE +DeckHas:Ability$Token & Type|Artifact +DeckNeeds:Type$Artifact +SVar:X:Count$ChosenNumber +Oracle:[+1]: Create a tapped Powerstone token. (It's an artifact with "{T}: Add {C}. This mana can't be spent to cast a nonartifact spell.")\n[−1]: Pay any amount of mana. Look at that many cards from the top of your library, then put one of those cards into your hand and the rest on the bottom of your library in a random order.\n[−7]: You get an emblem with "Tap an untapped artifact you control: This emblem deals 1 damage to any target." diff --git a/forge-gui/res/cardsfolder/upcoming/mana_cannons.txt b/forge-gui/res/cardsfolder/upcoming/mana_cannons.txt new file mode 100644 index 00000000000..2874830dd8f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mana_cannons.txt @@ -0,0 +1,9 @@ +Name:Mana Cannons +ManaCost:2 R +Types:Enchantment +T:Mode$ SpellCast | ValidCard$ Card.MultiColor | ValidActivatingPlayer$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a multicolored spell, CARDNAME deals X damage to any target, where X is the number of colors that spell is. +SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X +SVar:X:TriggeredCard$CardNumColors +SVar:BuffedBy:Card.MultiColor +AI:RemoveDeck:Random +Oracle:Whenever you cast a multicolored spell, Mana Cannons deals X damage to any target, where X is the number of colors that spell is. diff --git a/forge-gui/res/cardsfolder/upcoming/nemata_primeval_warden.txt b/forge-gui/res/cardsfolder/upcoming/nemata_primeval_warden.txt new file mode 100644 index 00000000000..1567f42b337 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/nemata_primeval_warden.txt @@ -0,0 +1,14 @@ +Name:Nemata, Primeval Warden +ManaCost:2 B G +Types:Legendary Creature Treefolk +PT:3/4 +K:Reach +R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidLKI$ Card.Creature+nonToken+OppCtrl | CheckSelfLKIZone$ True | ReplaceWith$ Exile | Description$ If a nontoken creature an opponent controls would die, exile it instead. When you do, create a 1/1 green Saproling creature token. +SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard | SubAbility$ DBImmediateTrigger +SVar:DBImmediateTrigger:DB$ ImmediateTrigger | Execute$ TrigToken | TriggerDescription$ If a nontoken creature an opponent controls would die, exile it instead. When you do, create a 1/1 green Saproling creature token. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_saproling | TokenOwner$ You +A:AB$ Pump | Cost$ G Sac<1/Saproling> | NumAtt$ +2 | NumDef$ +2 | AILogic$ Aristocrat | SpellDescription$ CARDNAME gets +2/+2 until end of turn. +A:AB$ Draw | Cost$ 1 B Sac<2/Saproling> | Defined$ You | NumCards$ 1 | SpellDescription$ Draw a card. +DeckHints:Type$Saproling +DeckHas:Ability$Token & Type$Saproling +Oracle:Reach\nIf a creature an opponent controls would die, exile it instead. When you do, create a 1/1 green Saproling creature token.\n{G}, Sacrifice a Saproling: Nemata, Primeval Warden gets +2/+2 until end of turn.\n{1}{B}, Sacrifice two Saprolings: Draw a card. diff --git a/forge-gui/res/cardsfolder/upcoming/ramses_assassin_lord.txt b/forge-gui/res/cardsfolder/upcoming/ramses_assassin_lord.txt new file mode 100644 index 00000000000..c897c13946c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ramses_assassin_lord.txt @@ -0,0 +1,9 @@ +Name:Ramses, Assassin Lord +ManaCost:2 B U +Types:Legendary Creature Human Assassin +PT:4/4 +K:Deathtouch +S:Mode$ Continuous | Affected$ Assassin.Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | Description$ Other Assassin's you control get +1/+1. +T:Mode$ LosesGame | ValidPlayer$ Player.Other+wasAttackedThisTurnBy Assassin.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigWinGame | TriggerDescription$ Whenever a player loses the game, if they were attacked this turn by an Assassin you controlled, you win the game. +SVar:TrigWinGame:DB$ WinsGame | Defined$ You +Oracle:Other Assassin's you control get +1/+1.\nWhenever a player loses the game, if they were attacked this turn by an Assassin you controlled, you win the game. diff --git a/forge-gui/res/cardsfolder/upcoming/rasputin_the_oneiromancer.txt b/forge-gui/res/cardsfolder/upcoming/rasputin_the_oneiromancer.txt new file mode 100644 index 00000000000..5237ca7f8d2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rasputin_the_oneiromancer.txt @@ -0,0 +1,12 @@ +Name:Rasputin, the Oneiromancer +ManaCost:1 W U +Types:Legendary Creature Human Wizard +PT:4/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCounter | TriggerDescription$ When CARDNAME enters the battlefield, put a dream counter on it for each opponent you have. Each opponent creates a 1/1 red Goblin creature token. +SVar:TrigCounter:DB$ PutCounter | CounterType$ Dream | CounterNum$ X | SubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ r_1_1_goblin | TokenOwner$ Opponent +A:AB$ Mana | Cost$ T SubCounter | Produced$ C | Amount$ Y | SpellDescription$ Add that much {C}. +A:AB$ Token | Cost$ T SubCounter<1/DREAM> | TokenScript$ w_2_2_knight_pro_red | SpellDescription$ Create a 2/2 white Knight creature token with protection from red. +SVar:X:PlayerCountOpponents$Amount +SVar:Y:Count$xPaid +Oracle:When Rasputin, the Oneiromancer enters the battlefield, put a dream counter on it for each opponent you have. Each opponent creates a 1/1 red Goblin creature token.\n{T}: Remove one or more dream counters from Rasputin: Add that much {C}.\n{T}: Remove a dream counter from Rasputin: Create a 2/2 white Knight creature token with protection from red. diff --git a/forge-gui/res/cardsfolder/upcoming/sheoldred_the_apocalypse.txt b/forge-gui/res/cardsfolder/upcoming/sheoldred_the_apocalypse.txt new file mode 100644 index 00000000000..56c97204414 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sheoldred_the_apocalypse.txt @@ -0,0 +1,11 @@ +Name:Sheoldred, the Apocalypse +ManaCost:2 B B +Types:Legendary Creature Phyrexian Praetor +PT:4/5 +K:Deathtouch +T:Mode$ Drawn | ValidCard$ Card.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever you draw a card, you gain 2 life. +SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2 +T:Mode$ Drawn | ValidCard$ Card.OppCtrl | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ Whenever an opponent draws a card, they lose 2 life. +SVar:TrigLoseLife:DB$ LoseLife | Defined$ TriggeredCardController | LifeAmount$ 2 +DeckHas:Ability$LifeGain +Oracle:Deathtouch\nWhenever you draw a card, you gain 2 life.\nWhenever an opponent draws a card, they lose 2 life. diff --git a/forge-gui/res/cardsfolder/upcoming/solkanar_the_tainted.txt b/forge-gui/res/cardsfolder/upcoming/solkanar_the_tainted.txt new file mode 100644 index 00000000000..82c79b10384 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/solkanar_the_tainted.txt @@ -0,0 +1,16 @@ +Name:Sol'Kanar the Tainted +ManaCost:2 U B R +Types:Legendary Creature Elemental Demon +PT:5/5 +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ DrawPact,DrainPact,DamagePact,BetrayPact | ChoiceRestriction$ ThisGame | CharmNum$ 1 +SVar:DrawPact:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. +SVar:DrainPact:DB$ LoseLife | Defined$ Opponent | LifeAmount$ 2 | SubAbility$ DBGainLife | SpellDescription$ Each opponent loses 2 life and you gain 2 life. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2 +SVar:DamagePact:DB$ DealDamage | NumDmg$ 3 | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.Other,Planeswalker.Other | TgtPrompt$ Select up to one other target creature or planeswalker | SpellDescription$ CARDNAME deals 3 damage to up to one other target creature or planeswalker. +SVar:BetrayPact:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBChooseOpp | RememberChanged$ True | SpellDescription$ Exile CARDNAME, then return it to the battlefield under an opponent's control. +SVar:DBChooseOpp:DB$ ChoosePlayer | Defined$ You | Choices$ Opponent | ChoiceTitle$ Choose an opponent | SubAbility$ MoveToPlay +SVar:MoveToPlay:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Battlefield | Defined$ Remembered | GainControl$ ChosenPlayer | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenPlayer$ True +DeckHas:Ability$LifeGain +Oracle:At the beginning of your end step, choose one that hasn't been chosen —\n• Draw a card.\n• Each opponent loses 2 life and you gain 2 life.\n• Sol'Kanar the Tainted deals 3 damage to up to one other target creature or planeswalker.\n• Exile Sol'Kanar the Tainted, then return it to the battlefield under an opponent's control. diff --git a/forge-gui/res/cardsfolder/upcoming/squee_dubious_monarch.txt b/forge-gui/res/cardsfolder/upcoming/squee_dubious_monarch.txt new file mode 100644 index 00000000000..69d6d5785c6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/squee_dubious_monarch.txt @@ -0,0 +1,11 @@ +Name:Squee, Dubious Monarch +ManaCost:2 R +Types:Legendary Creature Goblin Noble +PT:2/2 +K:Haste +T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks, create a 1/1 red Goblin creature token that's tapped and attacking. +SVar:TrigToken:DB$ Token | TokenScript$ r_1_1_goblin | TokenTapped$ True | TokenAttacking$ True +SVar:AltCost:Cost$ 3 R ExileFromGrave<4/Card.Other/other cards> | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by paying {3}{R} and exiling four other cards from your graveyard rather than paying its mana cost. +DeckHas:Ability$Token|Graveyard & Type$Goblin +SVar:HasAttackEffect:TRUE +Oracle:Haste\nWhenever Squee, Dubious Monarch attacks, create a 1/1 red Goblin creature token that's tapped and attacking.\nYou may cast Squee, Dubious Monarch from your graveyard by paying {3}{R} and exiling four other cards from your graveyard rather than paying its mana cost. diff --git a/forge-gui/res/cardsfolder/upcoming/the_raven_man.txt b/forge-gui/res/cardsfolder/upcoming/the_raven_man.txt new file mode 100644 index 00000000000..f30fb4536f3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_raven_man.txt @@ -0,0 +1,11 @@ +Name:The Raven Man +ManaCost:1 B +Types:Legendary Creature Human Wizard +PT:2/1 +T:Mode$ Phase | Phase$ End of Turn | CheckSVar$ X | SVarCompare$ GE1 | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of each end step, if a player discarded a card this turn, create a 1/1 black Bird creature token with flying and "This creature can't block." +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_1_1_bird_flying_noblock +A:AB$ Discard | Cost$ 3 B T | Defined$ Opponent | Mode$ TgtChoose | SorcerySpeed$ True | SpellDescription$ Each opponent discards a card. +SVar:X:PlayerCountPlayers$CardsDiscardedThisTurn +DeckHints:Ability$Discard +DeckHas:Ability$Token & Type$Bird +Oracle:At the beginning of each end step, if a player discarded a card this turn, create a 1/1 black Bird creature token with flying and "This creature can't block."\n{3}{B}, {T}: Each opponent discards a card. Activate only as a sorcery. diff --git a/forge-gui/res/cardsfolder/upcoming/the_reaver_cleaver.txt b/forge-gui/res/cardsfolder/upcoming/the_reaver_cleaver.txt new file mode 100644 index 00000000000..055e8b8fba4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/the_reaver_cleaver.txt @@ -0,0 +1,10 @@ +Name:The Reaver Cleaver +ManaCost:2 R +Types:Legendary Artifact Equipment +K:Equip:3 +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Trample | Description$ Equipped creature gets +1/+1 and has trample. +T:Mode$ DamageDone | ValidSource$ Creature.EquippedBy | ValidTarget$ Player,Planeswalker | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever this creature deals combat damage to a player or planeswalker, create that many Treasure tokens. +SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ c_a_treasure_sac | TokenOwner$ You +SVar:X:TriggerCount$DamageAmount +DeckHas:Ability$Token & Type$Treasure|Artifact +Oracle:Equipped creature gets +1/+1 and has trample and "Whenever this creature deals combat damage to a player or planeswalker, create that many Treasure tokens."\nEquip {3} diff --git a/forge-gui/res/cardsfolder/upcoming/two_headed_hellkite.txt b/forge-gui/res/cardsfolder/upcoming/two_headed_hellkite.txt new file mode 100644 index 00000000000..cd6990a6d30 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/two_headed_hellkite.txt @@ -0,0 +1,10 @@ +Name:Two-Headed Hellkite +ManaCost:1 W U B R G +Types:Creature Dragon +PT:5/5 +K:Flying +K:Menace +K:Haste +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME attacks, draw two cards. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 2 +Oracle:Flying,menace,haste\nWhenever Two-Headed Hellkite attacks, draw two cards. diff --git a/forge-gui/res/cardsfolder/upcoming/xira_the_golden_sting.txt b/forge-gui/res/cardsfolder/upcoming/xira_the_golden_sting.txt new file mode 100644 index 00000000000..31f52f20619 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/xira_the_golden_sting.txt @@ -0,0 +1,12 @@ +Name:Xira, the Golden Sting +ManaCost:1 B R G +Types:Legendary Creature Insect Assassin +PT:3/3 +K:Flying +K:Haste +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigEggCounter | TriggerDescription$ Whenever CARDNAME attacks, put an egg counter on another target creature without an egg counter on it. When that creature dies, if it has an egg counter on it, draw a card and create a 1/1 black Insect creature token with flying. +SVar:TrigEggCounter:DB$ PutCounter | CounterType$ EGG | CounterNum$ 1 | ValidTgts$ Creature.Other+counters_EQ0_EGG | RememberTargets$ True | TgtPrompt$ Put an egg counter on another target creature without an egg counter on it. | SubAbility$ DelayedTrigger +SVar:DelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.IsTriggerRemembered+counters_GE1_EGG | Execute$ TrigDraw | TriggerDescription$ When this creature dies, if it has an egg counter on it, draw a card and create a 1/1 black Insect creature token with flying. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBToken +SVar:DBToken:DB$ Token | TokenScript$ b_1_1_insect_flying +Oracle:Flying, haste\nWhenever Xira, the Golden Sting attacks, put an egg counter on another target creature without an egg counter on it. When that creature dies, if it has an egg counter on it, draw a card and create a 1/1 black Insect creature token with flying. diff --git a/forge-gui/res/cardsfolder/upcoming/zeriam_golden_wind.txt b/forge-gui/res/cardsfolder/upcoming/zeriam_golden_wind.txt new file mode 100644 index 00000000000..de02580cf46 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/zeriam_golden_wind.txt @@ -0,0 +1,8 @@ +Name:Zeriam, Golden Wind +ManaCost:3 W +Types:Legendary Creature Griffin +PT:3/4 +K:Flying +T:Mode$ DamageDone | ValidSource$ Griffin.YouCtrl | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a Griffin you control deals combat damage to a player, create a 2/2 white Griffin creature token with flying. +SVar:TrigToken:DB$ Token | TokenScript$ w_2_2_griffin_flying +Oracle:Flying\nWhenever a Griffin you control deals combat damage to a player, create a 2/2 white Griffin creature token with flying. diff --git a/forge-gui/res/cardsfolder/upcoming/zur_eternal_schemer.txt b/forge-gui/res/cardsfolder/upcoming/zur_eternal_schemer.txt new file mode 100644 index 00000000000..5f047067baf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/zur_eternal_schemer.txt @@ -0,0 +1,11 @@ +Name:Zur, Eternal Schemer +ManaCost:W U B +Types:Legendary Creature Human Wizard +PT:1/4 +K:Flying +S:Mode$ Continuous | Affected$ Creature.Enchantment+YouCtrl | AddKeyword$ Deathtouch & Lifelink & Hexproof | Description$ Enchantment creatures you control have deathtouch, lifelink, and hexproof. +A:AB$ Animate | Cost$ 1 W | ValidTgts$ Enchantment.nonAura+YouCtrl | TgtPrompt$ Select target non-Aura enchantment you control | Power$ X | Toughness$ X | Types$ Creature | Duration$ Permanent | StackDescription$ {c:Targeted} becomes a creature in addition to its other types and has base power and toughness each equal to its mana value. | SpellDescription$ Target non-Aura enchantment you control becomes a creature in addition to its other types and has base power and toughness each equal to its mana value. +SVar:X:Targeted$CardManaCost +DeckNeeds:Type$Enchantment +DeckHas:Ability$LifeGain +Oracle:Flying\nEnchantment creatures you control have deathtouch, lifelink, and hexproof.\n{1}{W}: Target non-Aura enchantment you control becomes a creature in addition to its other types and has base power and toughness each equal to its mana value. diff --git a/forge-gui/res/cardsfolder/upcoming/venture_forth.txt b/forge-gui/res/cardsfolder/v/venture_forth.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/venture_forth.txt rename to forge-gui/res/cardsfolder/v/venture_forth.txt diff --git a/forge-gui/res/cardsfolder/upcoming/verdant_rejuvenation.txt b/forge-gui/res/cardsfolder/v/verdant_rejuvenation.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/verdant_rejuvenation.txt rename to forge-gui/res/cardsfolder/v/verdant_rejuvenation.txt diff --git a/forge-gui/res/cardsfolder/upcoming/veteran_soldier.txt b/forge-gui/res/cardsfolder/v/veteran_soldier.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/veteran_soldier.txt rename to forge-gui/res/cardsfolder/v/veteran_soldier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vexing_puzzlebox.txt b/forge-gui/res/cardsfolder/v/vexing_puzzlebox.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vexing_puzzlebox.txt rename to forge-gui/res/cardsfolder/v/vexing_puzzlebox.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vhal_candelkeep_researcher.txt b/forge-gui/res/cardsfolder/v/vhal_candelkeep_researcher.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vhal_candelkeep_researcher.txt rename to forge-gui/res/cardsfolder/v/vhal_candelkeep_researcher.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vicious_battlerager.txt b/forge-gui/res/cardsfolder/v/vicious_battlerager.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vicious_battlerager.txt rename to forge-gui/res/cardsfolder/v/vicious_battlerager.txt diff --git a/forge-gui/res/cardsfolder/upcoming/viconia_drow_apostate.txt b/forge-gui/res/cardsfolder/v/viconia_drow_apostate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/viconia_drow_apostate.txt rename to forge-gui/res/cardsfolder/v/viconia_drow_apostate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vladimir_and_godfrey.txt b/forge-gui/res/cardsfolder/v/vladimir_and_godfrey.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vladimir_and_godfrey.txt rename to forge-gui/res/cardsfolder/v/vladimir_and_godfrey.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vogar_necropolis_tyrant.txt b/forge-gui/res/cardsfolder/v/vogar_necropolis_tyrant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vogar_necropolis_tyrant.txt rename to forge-gui/res/cardsfolder/v/vogar_necropolis_tyrant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/volo_itinerant_scholar.txt b/forge-gui/res/cardsfolder/v/volo_itinerant_scholar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/volo_itinerant_scholar.txt rename to forge-gui/res/cardsfolder/v/volo_itinerant_scholar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vrock.txt b/forge-gui/res/cardsfolder/v/vrock.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vrock.txt rename to forge-gui/res/cardsfolder/v/vrock.txt diff --git a/forge-gui/res/cardsfolder/upcoming/warehouse_thief.txt b/forge-gui/res/cardsfolder/w/warehouse_thief.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/warehouse_thief.txt rename to forge-gui/res/cardsfolder/w/warehouse_thief.txt diff --git a/forge-gui/res/cardsfolder/upcoming/white_plume_adventurer.txt b/forge-gui/res/cardsfolder/w/white_plume_adventurer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/white_plume_adventurer.txt rename to forge-gui/res/cardsfolder/w/white_plume_adventurer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wild_magic_surge.txt b/forge-gui/res/cardsfolder/w/wild_magic_surge.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wild_magic_surge.txt rename to forge-gui/res/cardsfolder/w/wild_magic_surge.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wilson_refined_grizzly.txt b/forge-gui/res/cardsfolder/w/wilson_refined_grizzly.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wilson_refined_grizzly.txt rename to forge-gui/res/cardsfolder/w/wilson_refined_grizzly.txt diff --git a/forge-gui/res/cardsfolder/upcoming/windshaper_planetar.txt b/forge-gui/res/cardsfolder/w/windshaper_planetar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/windshaper_planetar.txt rename to forge-gui/res/cardsfolder/w/windshaper_planetar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/winter_eladrin.txt b/forge-gui/res/cardsfolder/w/winter_eladrin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/winter_eladrin.txt rename to forge-gui/res/cardsfolder/w/winter_eladrin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wizened_githzerai.txt b/forge-gui/res/cardsfolder/w/wizened_githzerai.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wizened_githzerai.txt rename to forge-gui/res/cardsfolder/w/wizened_githzerai.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wrathful_red_dragon.txt b/forge-gui/res/cardsfolder/w/wrathful_red_dragon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wrathful_red_dragon.txt rename to forge-gui/res/cardsfolder/w/wrathful_red_dragon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wyll_blade_of_frontiers.txt b/forge-gui/res/cardsfolder/w/wyll_blade_of_frontiers.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wyll_blade_of_frontiers.txt rename to forge-gui/res/cardsfolder/w/wyll_blade_of_frontiers.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wyrms_crossing_patrol.txt b/forge-gui/res/cardsfolder/w/wyrms_crossing_patrol.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wyrms_crossing_patrol.txt rename to forge-gui/res/cardsfolder/w/wyrms_crossing_patrol.txt diff --git a/forge-gui/res/cardsfolder/upcoming/xanders_wake.txt b/forge-gui/res/cardsfolder/x/xanders_wake.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/xanders_wake.txt rename to forge-gui/res/cardsfolder/x/xanders_wake.txt diff --git a/forge-gui/res/cardsfolder/upcoming/you_line_up_the_shot.txt b/forge-gui/res/cardsfolder/y/you_line_up_the_shot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/you_line_up_the_shot.txt rename to forge-gui/res/cardsfolder/y/you_line_up_the_shot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/you_look_upon_the_tarrasque.txt b/forge-gui/res/cardsfolder/y/you_look_upon_the_tarrasque.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/you_look_upon_the_tarrasque.txt rename to forge-gui/res/cardsfolder/y/you_look_upon_the_tarrasque.txt diff --git a/forge-gui/res/cardsfolder/upcoming/young_blue_dragon_sand_augury.txt b/forge-gui/res/cardsfolder/y/young_blue_dragon_sand_augury.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/young_blue_dragon_sand_augury.txt rename to forge-gui/res/cardsfolder/y/young_blue_dragon_sand_augury.txt diff --git a/forge-gui/res/cardsfolder/upcoming/young_red_dragon_bathe_in_gold.txt b/forge-gui/res/cardsfolder/y/young_red_dragon_bathe_in_gold.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/young_red_dragon_bathe_in_gold.txt rename to forge-gui/res/cardsfolder/y/young_red_dragon_bathe_in_gold.txt diff --git a/forge-gui/res/cardsfolder/upcoming/your_temple_is_under_attack.txt b/forge-gui/res/cardsfolder/y/your_temple_is_under_attack.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/your_temple_is_under_attack.txt rename to forge-gui/res/cardsfolder/y/your_temple_is_under_attack.txt diff --git a/forge-gui/res/cardsfolder/upcoming/youre_confronted_by_robbers.txt b/forge-gui/res/cardsfolder/y/youre_confronted_by_robbers.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/youre_confronted_by_robbers.txt rename to forge-gui/res/cardsfolder/y/youre_confronted_by_robbers.txt diff --git a/forge-gui/res/cardsfolder/upcoming/youve_been_caught_stealing.txt b/forge-gui/res/cardsfolder/y/youve_been_caught_stealing.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/youve_been_caught_stealing.txt rename to forge-gui/res/cardsfolder/y/youve_been_caught_stealing.txt diff --git a/forge-gui/res/cardsfolder/upcoming/zamriel_seraph_of_steel.txt b/forge-gui/res/cardsfolder/z/zamriel_seraph_of_steel.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/zamriel_seraph_of_steel.txt rename to forge-gui/res/cardsfolder/z/zamriel_seraph_of_steel.txt diff --git a/forge-gui/res/cardsfolder/upcoming/zangief_the_red_cyclone.txt b/forge-gui/res/cardsfolder/z/zangief_the_red_cyclone.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/zangief_the_red_cyclone.txt rename to forge-gui/res/cardsfolder/z/zangief_the_red_cyclone.txt diff --git a/forge-gui/res/cardsfolder/upcoming/zellix_sanity_flayer.txt b/forge-gui/res/cardsfolder/z/zellix_sanity_flayer.txt similarity index 98% rename from forge-gui/res/cardsfolder/upcoming/zellix_sanity_flayer.txt rename to forge-gui/res/cardsfolder/z/zellix_sanity_flayer.txt index 22f8fdf1a54..3bf7fbea9dc 100644 --- a/forge-gui/res/cardsfolder/upcoming/zellix_sanity_flayer.txt +++ b/forge-gui/res/cardsfolder/z/zellix_sanity_flayer.txt @@ -1,10 +1,10 @@ -Name:Zellix, Sanity Flayer -ManaCost:2 U -Types:Legendary Creature Horror -PT:2/3 -K:Choose a Background -T:Mode$ MilledAll | ValidPlayer$ Player | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Hive Mind — Whenever a player mills one or more creature cards, you create a 1/1 black Horror creature token. -SVar:TrigToken:DB$ Token | TokenScript$ b_1_1_horror -A:AB$ Mill | Cost$ 1 T | NumCards$ 3 | ValidTgts$ Player | TgtPrompt$ Select a player | SpellDescription$ Target player mills three cards. -DeckHas:Ability$Mill|Token +Name:Zellix, Sanity Flayer +ManaCost:2 U +Types:Legendary Creature Horror +PT:2/3 +K:Choose a Background +T:Mode$ MilledAll | ValidPlayer$ Player | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Hive Mind — Whenever a player mills one or more creature cards, you create a 1/1 black Horror creature token. +SVar:TrigToken:DB$ Token | TokenScript$ b_1_1_horror +A:AB$ Mill | Cost$ 1 T | NumCards$ 3 | ValidTgts$ Player | TgtPrompt$ Select a player | SpellDescription$ Target player mills three cards. +DeckHas:Ability$Mill|Token Oracle:Hive Mind — Whenever a player mills one or more creature cards, you create a 1/1 black Horror creature token.\n{1},{T}: Target player mills three cards.\nChoose a Background (You can have a Background as a second commander.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/zhentarim_bandit.txt b/forge-gui/res/cardsfolder/z/zhentarim_bandit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/zhentarim_bandit.txt rename to forge-gui/res/cardsfolder/z/zhentarim_bandit.txt diff --git a/forge-gui/res/editions/30th Anniversary Promos.txt b/forge-gui/res/editions/30th Anniversary Promos.txt index a4a7f084061..2589f40f2e3 100644 --- a/forge-gui/res/editions/30th Anniversary Promos.txt +++ b/forge-gui/res/editions/30th Anniversary Promos.txt @@ -11,3 +11,7 @@ ScryfallCode=P30A F1★ R Richard Garfield, Ph.D. @Dave Dorman 2 R Ball Lightning @Trevor Claxton 3 R Fyndhorn Elves @Igor Kieryluk +4 R Wall of Roots @Matt Stewart +5 R Wood Elves @Rebecca Guay +6 R Windfall @Pete Venters +7 R Loyal Retainers @Solomon Au Yeung diff --git a/forge-gui/res/editions/Celebration Cards.txt b/forge-gui/res/editions/Celebration Cards.txt index d367ef3169e..00d20b75c88 100644 --- a/forge-gui/res/editions/Celebration Cards.txt +++ b/forge-gui/res/editions/Celebration Cards.txt @@ -13,3 +13,4 @@ ScryfallCode=PCEL 5 R Fraternal Exaltation @Susan Garfield 6 M Robot Chicken @Robot Chicken 7 M Phoenix Heart @Drew Tucker +8 R Zur the Enchanter @Chase Stone diff --git a/forge-gui/res/editions/Dominaria Remastered.txt b/forge-gui/res/editions/Dominaria Remastered.txt new file mode 100644 index 00000000000..195166d6392 --- /dev/null +++ b/forge-gui/res/editions/Dominaria Remastered.txt @@ -0,0 +1,16 @@ +[metadata] +Code=DMR +Date=2023-01-13 +Name=Dominaria Remastered +Code2=DMR +MciCode=dmr +Type=Reprint +ScryfallCode=DMR + +[cards] +50 M Force of Will @Donato Giancola +149 R Arboria @Uriah Voth +284 M Force of Will @Donato Giancola +335 R Arboria @Uriah Voth +418 M Force of Will @Richard Kane Ferguson +438 R Arboria @Dave Kendall diff --git a/forge-gui/res/editions/Dominaria United Commander.txt b/forge-gui/res/editions/Dominaria United Commander.txt index 25a684733e9..9f247f10d7c 100644 --- a/forge-gui/res/editions/Dominaria United Commander.txt +++ b/forge-gui/res/editions/Dominaria United Commander.txt @@ -6,9 +6,67 @@ Type=Commander ScryfallCode=DMC [cards] +1 M Dihada, Binder of Wills @Nestor Ossandon Leal +2 M Jared Carthalion @Manuel Castañón +3 M Jenson Carthalion, Druid Exile @Livia Prima +4 M Shanid, Sleepers' Scourge @Ryan Pancoast +5 R Zeriam, Golden Wind @John Tedrick +6 R Moira, Urborg Haunt @Marta Nael +7 R Mana Cannons @Sidharth Chaturvedi +8 R The Reaver Cleaver @Yigit Koroglu +9 R Bladewing, Deathless Tyrant @Antonio José Manzanedo +10 R Cadric, Soul Kindler @Joseph Weston +11 R Fallaji Wayfarer @Victor Adame Minguez +12 R Iridian Maelstrom @Justyna Gil +13 R Primeval Spawn @Filip Burburan +14 R Two-Headed Hellkite @Fajareka Setiawan +15 R Unite the Coalition @Nestor Ossandon Leal +16 R Verrak, Warped Sengir @Alix Branwyn +17 R Gerrard's Hourglass Pendant @Sam Burley +18 R Obsidian Obelisk @Andrew Mar +19 R The Peregrine Dynamo @Zoltan Boros +20 R Tiller Engine @Alexander Mokhov +29 R Ayesha Tanaka, Armorer @Aurore Folny +30 R The Ever-Changing 'Dane @Campbell White +31 U General Marhault Elsdragon @Heonhwa Choe +32 R Hazezon, Shaper of Sand @Bryan Sola 33 U Jasmine Boreal of the Seven @Bastien L. Deharme +34 M Jedit Ojanen, Mercenary @Ilse Gort +37 R Orca, Siege Demon @Daarken 38 U Ramirez DePietro, Pillager @Anna Steinbauer +39 R Ramses, Assassin Lord @Manuel Castañón +40 R Rasputin, the Oneiromancer @Matt Stewart +41 R Rohgahh, Kher Keep Overlord @Chris Seaman +42 R Stangg, Echo Warrior @Randy Vargas +43 M Sivitri, Dragon Master @Livia Prima +44 M Tetsuo, Imperial Champion @Lius Lasahido 46 U Tor Wauki the Younger @Karl Kopinski +47 M Torsten, Founder of Benalia @Volkan Baǵa +51 R Ayesha Tanaka, Armorer @Aurore Folny +52 R The Ever-Changing 'Dane @Campbell White +54 R Hazezon, Shaper of Sand @Bryan Sola 55 U Jasmine Boreal of the Seven @Bastien L. Deharme +56 M Jedit Ojanen, Mercenary @Ilse Gort 60 U Ramirez DePietro, Pillager @Anna Steinbauer +61 R Ramses, Assassin Lord @Manuel Castañón +64 R Stangg, Echo Warrior @Randy Vargas +65 M Sivitri, Dragon Master @Livia Prima +66 M Tetsuo, Imperial Champion @Lius Lasahido 68 U Tor Wauki the Younger @Karl Kopinski +69 M Torsten, Founder of Benalia @Volkan Baǵa +104 U Path to Exile @Todd Lockwood +127 C Thrill of Possibility @Izzy +143 R Baleful Strix @Nils Hamm +149 R Faeburrow Elder @Raoul Vitale +159 M Maelstrom Nexus @Steven Belledin +163 M Nethroi, Apex of Death @Slawomir Maniak +164 M O-Kagachi, Vengeful Kami @Daarken +169 M Surrak Dragonclaw @Jaime Jones +197 U Bad River @Nils Hamm +202 R Cascading Cataracts @Paul Scott Canavan +206 R Crystal Quarry @Alan Pollack +220 R Murmuring Bosk @John Avon + +[tokens] +rgw_1_1_sand_warrior +stangg_twin diff --git a/forge-gui/res/editions/Dominaria United.txt b/forge-gui/res/editions/Dominaria United.txt index e2f1c8008c3..7fac6373a38 100644 --- a/forge-gui/res/editions/Dominaria United.txt +++ b/forge-gui/res/editions/Dominaria United.txt @@ -8,22 +8,149 @@ Type=Expansion ScryfallCode=DMU [cards] +1 M Karn, Living Legacy @Chris Rahn +3 R Archangel of Wrath @Miguel Mercado +8 C Benalish Sleeper @Josu Hernaiz +10 C Charismatic Vanguard @David Palumbo +19 R Guardian of New Benalia @Ernanda Souza +21 U Join Forces @Aurore Folny +26 C Mesa Cavalier @David Palumbo +29 U Resolute Reinforcements @Billy Christian +31 C Samite Herbalist @Alessandra Pisano +33 U Shalai's Acolyte @Zara Alfonso +34 C Stall for Time @Ryan Alexander Lee +35 C Take Up the Shield @Manuel Castañón +46 R Defiler of Dreams @Ryan Pancoast +51 U Frostfist Strider @Francisco Miyara +54 C Impede Momentum @Igor Kieryluk +57 U Micromancer @Ernanda Souza +59 R The Phasing of Zhalfir @LA Draws +62 C Protect the Negotiators @Dominik Mayer +67 M Sphinx of Clear Skies @Valera Lutfullina +71 C Tolarian Geyser @Olivier Bernard +72 C Tolarian Terror @Vincent Christiaens +74 C Voda Sea Scavenger @Uriah Voth +77 C Volshe Tideturner @Tia Masic +79 U Balduvian Atrocity @Mike Jordana +84 R Braids, Arisen Nightmare @Heonhwa Choe +89 U Cut Down @Dominik Mayer 93 R Evolved Sleeper @Jason A. Engle +97 M Liliana of the Veil @Martina Fackova +98 U Monstrous War-Leech @Christopher Burdett +103 R The Raven Man @Chris Rahn +104 U Sengir Connoisseur @Irina Nordsol +107 M Sheoldred, the Apocalypse @Chris Rahn +111 C Tattered Apparition @Jason A. Engle +112 C Toxic Abomination @Igor Kieryluk +114 C Urborg Repossession @Cristi Balanescu +115 C Writhing Necromass @Campbell White +117 R Chaotic Transformation @Joseph Meehan +120 U Dragon Whelp @Jokubas Uogintas 133 M Jaya, Fiery Negotiator @Marta Nael +135 R Keldon Flamesage @Jason A. Engle +137 C Lightning Strike @Marta Nael +139 C Molten Monstrosity @Manuel Castañón +141 R Radha's Firebrand @Ângelo Bortolini 143 M Shivan Devastator @Brent Hollowell +146 R Squee, Dubious Monarch @Zoltan Boros 147 R Temporal Firestorm @Nestor Ossandon Leal +150 C Viashino Branchrider @Andrew Mar +152 C Yavimaya Steelcrusher @Gabor Szikszai +160 R Defiler of Vigor @Chase Stone 170 R Llanowar Loamspeaker @Zara Alfonso +172 C Magnigoth Sentry @Dave Kendall +174 U Nishoba Brawler @Valera Lutfullina +176 C Scout the Wilderness @A. M. Sartor +179 C Snarespinner @Michele Giorgi +180 U Strength of the Coalition @Justine Cruz +184 U Territorial Maro @Simon Dominic +185 R Threats Undetected @Randy Vargas +187 C Vineshaper Prodigy @Inka Schulz +189 M The World Spell @Adam Paquette +190 U Yavimaya Iconoclast @Caio Monteiro +192 M Ajani, Sleeper Agent @Matt Stewart +194 R Astor, Bearer of Blades @Josh Hass +202 R Jhoira, Ageless Innovator @Justyna Gil +208 U Najal, the Storm Runner @PINDURSKI +209 R Nemata, Primeval Warden @Andrew Mar +212 U Raff, Weatherlight Stalwart @Eelis Kyttanen +218 M Shanna, Purifying Blade @Magali Villeneuve +219 M Sol'Kanar the Tainted @Filip Burburan +220 M Soul of Windgrace @Liiga Smilshkalne +223 U Tori D'Avenant, Fury Rider @Anna Podedworna +228 M Zur, Eternal Schemer @Jesper Ejsing +230 R Golden Argosy @Daniel Ljunggren +243 R Adarkar Wastes @Piotr Dura +244 R Caves of Koilos @Julian Kok Joon Wen +250 R Karplusan Forest @Sam Burley +252 R Plaza of Heroes @Gabor Szikszai +255 R Shivan Reef @Andrew Mar +256 R Sulfurous Springs @Bruce Brenneise +261 R Yavimaya Coast @Jesper Ejsing +262 L Plains @Lorenzo Lanfranconi +263 L Plains @Seb McKinnon +264 L Plains @Johannes Voss +265 L Island @Seb McKinnon +266 L Island @James Paick +267 L Island @Johannes Voss +268 L Swamp @Seb McKinnon +269 L Swamp @Mark Poole +270 L Swamp @Johannes Voss +271 L Mountain @Titus Lunter +272 L Mountain @Seb McKinnon +273 L Mountain @Johannes Voss +274 L Forest @Seb McKinnon +275 L Forest @Johannes Voss +276 L Forest @Darek Zabrocki 277 L Plains @Magali Villeneuve 278 L Island @Magali Villeneuve 279 L Swamp @Magali Villeneuve 280 L Mountain @Magali Villeneuve 281 L Forest @Magali Villeneuve +288 R Braids, Arisen Nightmare @Dibujante Nocturno +289 R The Raven Man @David Curtis +290 M Sheoldred, the Apocalypse @Joe Esposito +291 R Squee, Dubious Monarch @Daniel Lieske +292 U Aron, Benalia's Ruin @Jody Clark +293 R Astor, Bearer of Blades @Ivan Shavrin +301 R Jhoira, Ageless Innovator @Lisa Heidhoff +308 R Nemata, Primeval Warden @Bastien Grivet +311 U Raff, Weatherlight Stalwart @Ivan Shavrin +318 M Sol'Kanar the Tainted @Lisa Heidhoff +319 M Soul of Windgrace @Ivan Shavrin +327 M Zur, Eternal Schemer @Dan Mumford +330 R The Raven Man @David Curtis +331 M Sheoldred, the Apocalypse @Joe Esposito +332 R Squee, Dubious Monarch @ +358 M Shanna, Purifying Blade @Jody Clark +369 M Sheoldred, the Apocalypse @Chris Rahn +370 M Ajani, Sleeper Agent @Victor Adame Minguez +371 M Ajani, Sleeper Agent @Victor Adame Minguez +372 M Karn, Living Legacy @rk post +373 M Liliana of the Veil @Brom 374 M Jaya, Fiery Negotiator @Scott M. Fischer +375 M Ajani, Sleeper Agent @Adam Rex +376 M Ajani, Sleeper Agent @Thomas M. Baxa +377 R Adarkar Wastes @Rob Alexander +378 R Caves of Koilos @Lars Grant-West +379 R Karplusan Forest @Randy Gallegos +380 R Shivan Reef @Donato Giancola +381 R Sulfurous Springs @Mark Tedin +382 R Yavimaya Coast @Mark Poole +384 R Archangel of Wrath @Miguel Mercado +386 R Guardian of New Benalia @Ernanda Souza +396 M Sphinx of Clear Skies @Valera Lutfullina 402 R Evolved Sleeper @Jason A. Engle +405 R Chaotic Transformation @Joseph Meehan +407 R Keldon Flamesage @Jason A. Engle 410 M Shivan Devastator @Brent Hollowell 411 R Temporal Firestorm @Nestor Ossandon Leal 416 R Llanowar Loamspeaker @Zara Alfonso +421 R Plaza of Heroes @Gabor Szikszai 428 R Llanowar Loamspeaker @Volkan Baǵa +429 R Herd Migration @Antonio José Manzanedo +434 U Nishoba Brawler @Valera Lutfullina [tokens] +b_1_1_bird_flying_noblock r_1_1_monk_prowess diff --git a/forge-gui/res/editions/Love Your LGS 2022.txt b/forge-gui/res/editions/Love Your LGS 2022.txt index 83cc433729b..e6a9df5d4be 100644 --- a/forge-gui/res/editions/Love Your LGS 2022.txt +++ b/forge-gui/res/editions/Love Your LGS 2022.txt @@ -7,7 +7,3 @@ ScryfallCode=PLG22 [cards] 1 R Sol Ring @Mike Bierek -P1 M Moraug, Fury of Akoum @Rudy Siswanto -P2 M Ox of Agonas @Lie Setiawan -P3 M Angrath, the Flame-Chained @Song Qijin -P4 R Tahngarth, First Mate @Song Qijin diff --git a/forge-gui/res/editions/Secret Lair Drop Series.txt b/forge-gui/res/editions/Secret Lair Drop Series.txt index fd362071d44..42ed36bdc04 100644 --- a/forge-gui/res/editions/Secret Lair Drop Series.txt +++ b/forge-gui/res/editions/Secret Lair Drop Series.txt @@ -585,6 +585,8 @@ ScryfallCode=SLD 646 R Two-Headed Sliver @Dany Orizio 647 R Brood Sliver @Ron Spears 649 R Horned Sliver @Allen Williams +650 R Manaweft Sliver @Trevor Claxton +652 R Might Sliver @Jeff Miracola 657 R Tempered Sliver @Mitchell Malloy 660 R Cloudshredder Sliver @Filip Burburan 661 R Crystalline Sliver @Allen Williams diff --git a/forge-gui/res/editions/The List.txt b/forge-gui/res/editions/The List.txt index b4c2dc672ba..42ab8fa9990 100644 --- a/forge-gui/res/editions/The List.txt +++ b/forge-gui/res/editions/The List.txt @@ -747,3 +747,76 @@ F567 R Puresteel Angel @Lukas Litzsinger 739 R Treasury Thrull @Mark Zug 740 R Wasitora, Nekoru Queen @Cynthia Sheppard 741 M Zacama, Primal Calamity @Jaime Jones +742 R Alabaster Dragon @Ted Naifeh +743 U Archway Angel @Milivoj Ćeran +744 R Fountain Watch @Jeff Miracola +745 R Ghostway @Jim Murray +746 R Loxodon Gatekeeper @Carl Critchlow +747 U Nova Cleric @Alan Pollack +748 R Paladin en-Vec @Dave Kendall +749 R Pentarch Paladin @Jim Murray +750 R Puresteel Paladin @Jason Chan +751 R Ranger of Eos @Volkan Baǵa +752 U Treasure Hunter @Adam Rex +753 R Aura Thief @Ron Spears +754 U Broodbirth Viper @Mathias Kollros +755 R Cloud Dragon @John Avon +756 R Curse of Echoes @Slawomir Maniak +757 U Ominous Seas @Vincent Proce +758 C Opal Lake Gatekeepers @Seb McKinnon +759 R Plea for Power @John Severin Brassell +760 R Quicksilver Dragon @Ron Spencer +761 C Sea Gate Oracle @Daniel Ljunggren +762 R Search the City @Jack Wang +763 R Serendib Sorcerer @Dan Scott +764 R Sunder @Stephen Daniele +765 U Wizard Class @Marta Nael +766 U Wizard's Retort @Grzegorz Rutkowski +767 M Demon of Death's Gate @Vance Kovacs +768 R Endrek Sahr, Master Breeder @Mark Tedin +769 R Kederekt Parasite @Dan Scott +770 M Lolth, Spider Queen @Tyler Jacobson +771 U Pitiless Plunderer @David Palumbo +772 R Quest for the Nihil Stone @Mike Bierek +773 R Repay in Kind @Vance Kovacs +774 R Volrath's Dungeon @Stephen Daniele +775 C Dragon's Approach @Andrew Mar +776 U Dragon's Rage Channeler @Martina Fackova +777 M Goldspan Dragon @Andrew Mar +778 R Lathliss, Dragon Queen @Alex Konstad +779 U Magic Missile @PINDURSKI +780 U Thundering Sparkmage @Billy Christian +781 R Worldgorger Dragon @Wayne England +782 U Devoted Druid @Kimonas Theodossiou +783 U Druid's Call @Greg Hildebrandt +784 U Edgewall Innkeeper @Matt Stewart +785 R Gilt-Leaf Archdruid @Steve Prescott +786 M Old Gnawbone @Filip Burburan +787 U Scryb Ranger @Rebecca Guay +788 R Silvos, Rogue Elemental @Carl Critchlow +789 U Tireless Provisioner @Josu Hernaiz +790 U Clutch of the Undercity @Pete Venters +791 U Forging the Tyrite Sword @Kieran Yanner +792 U Invade the City @Sung Choi +793 U Krydle of Baldur's Gate @Jeff Dee +794 R Linvala, Shield of Sea Gate @Wayne Reynolds +795 M Minsc, Beloved Ranger @Howard Lyon +796 U Risen Reef @Johan Grenier +797 U Spoils of Adventure @Zezhou Chen +798 M Tiamat @Chris Rahn +799 C Yavimaya Barbarian @Don Hazeltine +800 C Shield of the Oversoul @Steven Belledin +801 U Bucknard's Everfull Purse @Joe Slucher +802 R Clockwork Dragon @Arnie Swekel +803 U Component Pouch @Chris Seaman +804 U Fifty Feet of Rope @Andrew Mar +805 U Kite Shield @Jim Pavelec +806 C Leather Armor @Martina Pilcerova +807 U Lucky Clover @John Stanko +808 C Mimic @Diesel +809 R Pariah's Shield @Doug Chaffee +810 R Sword of the Chosen @Adam Rex +811 U Barbarian Ring @John Avon +812 R Forsaken City @Dana Knutson +813 M Maze's End @Cliff Childs +814 U Underdark Rift @Chris Ostrowski diff --git a/forge-gui/res/editions/Warhammer 40,000.txt b/forge-gui/res/editions/Warhammer 40,000.txt index a2d668fa8ac..fc06c051532 100644 --- a/forge-gui/res/editions/Warhammer 40,000.txt +++ b/forge-gui/res/editions/Warhammer 40,000.txt @@ -8,6 +8,10 @@ ScryfallCode=40K [cards] 2 M Abaddon the Despoiler @Johan Grenier 27 R Vanguard Suppressor @Fajareka Setiawan -108 C Blood for the Blood God! @Artur Nakhodkin +108 R Blood for the Blood God! @Artur Nakhodkin 171 M Abaddon the Despoiler @Johan Grenier 181 R Fabricate @Johan Grenier +249 U Sol Ring @Teodora Dumitriu +250 U Sol Ring @Kekai Kotaki +251 U Sol Ring @Oleg Shekhovtsov +252 U Sol Ring @Lucas Terryn diff --git a/forge-gui/res/editions/Wizards Play Network 2022.txt b/forge-gui/res/editions/Wizards Play Network 2022.txt index 5d78287c002..b9567578d2b 100644 --- a/forge-gui/res/editions/Wizards Play Network 2022.txt +++ b/forge-gui/res/editions/Wizards Play Network 2022.txt @@ -10,3 +10,4 @@ ScryfallCode=PW22 2 R Fateful Absence @Eric Deschamps 3 M Atsushi, the Blazing Sky @Victor Adame Minguez 4 U Swiftfoot Boots @Svetlin Velinov +5 R Dismember @Alix Branwyn diff --git a/forge-gui/res/formats/Archived/Alchemy/2022-09-01.txt b/forge-gui/res/formats/Archived/Alchemy/2022-09-01.txt new file mode 100644 index 00000000000..54c0c166a08 --- /dev/null +++ b/forge-gui/res/formats/Archived/Alchemy/2022-09-01.txt @@ -0,0 +1,6 @@ +[format] +Name:Alchemy (DMU) +Type:Archived +Subtype:Arena +Effective:2022-09-01 +Sets:ANA, ANB, MID, VOW, YMID, NEO, YNEO, SNC, YSNC, HBG, DMU diff --git a/forge-gui/res/formats/Archived/Arena Standard/2022-09-01.txt b/forge-gui/res/formats/Archived/Arena Standard/2022-09-01.txt new file mode 100644 index 00000000000..951b6d7f06f --- /dev/null +++ b/forge-gui/res/formats/Archived/Arena Standard/2022-09-01.txt @@ -0,0 +1,6 @@ +[format] +Name:Arena Standard (DMU) +Type:Archived +Subtype:Arena +Effective:2022-09-01 +Sets:MID, VOW, NEO, SNC, DMU diff --git a/forge-gui/res/formats/Archived/Explorer/2022-09-01.txt b/forge-gui/res/formats/Archived/Explorer/2022-09-01.txt new file mode 100644 index 00000000000..28cfe2a0c48 --- /dev/null +++ b/forge-gui/res/formats/Archived/Explorer/2022-09-01.txt @@ -0,0 +1,8 @@ +[format] +Name:Explorer (DMU) +Type:Archived +Subtype:Arena +Effective:2022-09-01 +Sets:XLN, RIX, DOM, M19, GRN, G18, RNA, WAR, M20, ELD, THB, IKO, M21, ZNR, KHM, STX, AFR, MID, VOW, NEO, SNC, EA1, DMU +Banned:Expressive Iteration; Field of the Dead; Kethis, the Hidden Hand; Leyline of Abundance; Lurrus of the Dream-Den; Nexus of Fate; Oko, Thief of Crowns; Once Upon a Time; Teferi, Time Raveler; Tibalt's Trickery; Underworld Breach; Uro, Titan of Nature's Wrath; Veil of Summer; Wilderness Reclamation; Winota, Joiner of Forces +Additional:Abandoned Sarcophagus; Abzan Battle Priest; Abzan Falconer; Accursed Horde; Adaptive Snapjaw; Adorned Pouncer; Aerial Guide; Aerial Responder; Aeronaut Admiral; Aether Chaser; Aether Hub; Aether Inspector; Aether Meltdown; Aether Poisoner; Aether Swooper; Aether Theorist; Aether Tradewinds; Aetherborn Marauder; Aetherflux Reservoir; Aethersphere Harvester; Aetherstorm Roc; Aetherstream Leopard; Aethertorch Renegade; Aetherworks Marvel; Ahn-Crop Champion; Ahn-Crop Crasher; Ainok Bond-Kin; Airdrop Aeronauts; Ajani Unyielding; Alchemist's Greeting; Alley Evasion; Alley Strangler; Ammit Eternal; Ancestral Statue; Ancient Crab; Angel of Invention; Angel of Sanctions; Angel of the God-Pharaoh; Angelic Edict; Angelic Purge; Anger of the Gods; Animation Module; Anointed Procession; Anointer Priest; Appeal // Authority; Appetite for the Unnatural; Approach of the Second Sun; Arborback Stomper; Archfiend of Ifnir; Armorcraft Judge; As Foretold; Assassin's Strike; Assault Formation; Asylum Visitor; Atarka's Command; Attune with Aether; Audacious Infiltrator; Auger Spree; Authority of the Consuls; Aven Initiate; Aven Mindcensor; Aven of Enduring Hope; Aven Wind Guide; Aviary Mechanic; Awaken the Bear; Baleful Ammit; Ballista Charger; Baral, Chief of Compliance; Baral's Expertise; Barrage of Expendables; Barricade Breaker; Bastion Mastodon; Bathe in Dragonfire; Battering Krasis; Battlefield Scavenger; Belligerent Sliver; Beneath the Sands; Binding Mummy; Bitterbow Sharpshooters; Black Cat; Blessed Spirits; Blighted Bat; Blood Host; Bloodbond Vampire; Bloodhunter Bat; Bloodlust Inciter; Bloodrage Brawler; Blooming Marsh; Blossoming Defense; Blur of Blades; Blur Sliver; Bogbrew Witch; Bomat Bazaar Barge; Bomat Courier; Bonded Construct; Bone Picker; Bonescythe Sliver; Bontu the Glorified; Bontu's Last Reckoning; Bontu's Monument; Borderland Marauder; Borderland Minotaur; Boros Elite; Botanical Sanctum; Brain Maggot; Breaching Hippocamp; Bred for the Hunt; Bristling Hydra; Brushstrider; Brute Strength; Bubbling Cauldron; Built to Last; Built to Smash; Burning-Fist Minotaur; Burning-Tree Emissary; By Force; Canyon Slough; Carrier Thrall; Cartouche of Ambition; Cartouche of Knowledge; Cartouche of Solidarity; Cartouche of Strength; Cartouche of Zeal; Cascading Cataracts; Cast Out; Cataclysmic Gearhulk; Cathar's Companion; Cemetery Recruitment; Censor; Ceremonious Rejection; Champion of Rhonas; Champion of Wits; Chandra, Pyromaster; Chandra, Torch of Defiance; Chandra's Defeat; Chandra's Revolution; Charging Badger; Chief of the Foundry; Cinder Elemental; Claim // Fame; Cloudblazer; Cogworker's Puzzleknot; Collateral Damage; Collected Company; Combat Celebrant; Combustible Gearhulk; Commencement of Festivities; Commit // Memory; Compelling Argument; Compulsory Rest; Concealed Courtyard; Confiscation Coup; Consign // Oblivion; Consulate Skygate; Consulate Turret; Contraband Kingpin; Conviction; Coralhelm Guide; Corpse Hauler; Countervailing Winds; Countless Gears Renegade; Creeping Mold; Crested Sunmare; Crocanura; Crocodile of the Crossing; Crow of Dark Tidings; Cruel Reality; Crux of Fate; Crypt of the Eternals; Cryptbreaker; Cryptic Serpent; Cultivator's Caravan; Curator of Mysteries; Cut // Ribbons; Dance with Devils; Daredevil Dragster; Daring Demolition; Dark Intimations; Dark Salvation; Dauntless Aven; Dauntless Onslaught; Dawnfeather Eagle; Death Wind; Death's Approach; Declaration in Stone; Decoction Module; Deem Worthy; Defiant Greatmaw; Defiant Salvager; Demolition Stomper; Demon of Dark Schemes; Demonic Pact; Depala, Pilot Exemplar; Desert Cerodon; Desert of the Fervent; Desert of the Glorified; Desert of the Indomitable; Desert of the Mindful; Desert of the True; Desert's Hold; Destined // Lead; Devouring Light; Die Young; Diffusion Sliver; Dinrova Horror; Diregraf Colossus; Disallow; Disposal Mummy; Dispossess; Dissenter's Deliverance; Djeru's Renunciation; Djeru's Resolve; Doom Blade; Doomfall; Douse in Gloom; Dovin Baan; Dragon Fodder; Dragon Hatchling; Dragon Mantle; Dragonloft Idol; Dragonlord's Servant; Dragonmaster Outcast; Drainpipe Vermin; Drake Haven; Drana, Liberator of Malakir; Dread Wanderer; Driven // Despair; Dromoka's Command; Dukhara Peafowl; Dune Beetle; Dusk // Dawn; Dutiful Attendant; Dwynen's Elite; Dynavolt Tower; Eager Construct; Earthshaker Khenra; Eddytrail Hawk; Edifice of Authority; Electrostatic Pummeler; Elemental Uprising; Elusive Krasis; Elvish Visionary; Embraal Bruiser; Empyreal Voyager; Engineered Might; Enlarge; Enraged Giant; Era of Innovation; Essence Extraction; Essence Flux; Eternal of Harsh Truths; Eternal Thirst; Exemplar of Strength; Eyeblight Assassin; Fabrication Module; Failure // Comply; Fairgrounds Warden; Faith of the Devoted; Fan Bearer; Fanatic of Mogis; Farm // Market; Fatal Push; Fateful Showdown; Fen Hauler; Feral Prowler; Fervent Paincaster; Festering Mummy; Festering Newt; Fetid Pools; Fiery Temper; Filigree Familiar; Final Reward; Firebrand Archer; Fireforger's Puzzleknot; Flame Lash; Flameblade Adept; Flames of the Firebrand; Fleshbag Marauder; Floodwaters; Flurry of Horns; Forge Devil; Forsake the Worldly; Fortify; Fortuitous Find; Foundry Hornet; Foundry Inspector; Foundry Screecher; Foundry Street Denizen; Fourth Bridge Prowler; Fragmentize; Freejam Regent; Fretwork Colony; Frontline Rebel; Fumigate; Furious Reprisal; Furnace Whelp; Furyblade Vampire; Gate to the Afterlife; Gearseeker Serpent; Gearshift Ace; Ghoulcaller's Accomplice; Gideon of the Trials; Gideon's Intervention; Gifted Aetherborn; Gilded Cerodon; Glimmer of Genius; Glint; Glint-Nest Crane; Glint-Sleeve Artisan; Glint-Sleeve Siphoner; Glorious End; Glory-Bound Initiate; Glorybringer; Goblin Dark-Dwellers; Goblin Rally; Goblin Shortcutter; God-Pharaoh's Gift; Gonti, Lord of Luxury; Greenbelt Rampager; Grind // Dust; Grisly Salvage; Gust Walker; Hanweir Militia Captain; Hapatra, Vizier of Poisons; Hardened Scales; Harmless Offering; Harnessed Lightning; Harsh Mentor; Hashep Oasis; Haunted Dead; Hazardous Conditions; Haze of Pollen; Hazoret the Fervent; Hazoret's Monument; Heart of Kiran; Heaven // Earth; Hedron Archive; Heir of Falkenrath; Hekma Sentinels; Herald of Anguish; Herald of the Fair; Hidden Stockpile; Hieroglyphic Illumination; High Sentinels of Arashin; Highspire Artisan; Highspire Infusion; Hinterland Drake; Hive Stirrings; Hollow One; Homing Lightning; Honored Crop-Captain; Hooded Brawler; Hope of Ghirapur; Hope Tender; Hordeling Outburst; Hornet Queen; Horror of the Broken Lands; Hour of Devastation; Hour of Promise; Hour of Revelation; Hungry Flames; Ice Over; Ifnir Deadlands; Illusionist's Stratagem; Imminent Doom; Impeccable Timing; Implement of Combustion; Implement of Examination; Implement of Malice; In Oketra's Name; Incorrigible Youths; Incremental Growth; Indomitable Creativity; Indulgent Aristocrat; Initiate's Companion; Insatiable Gorgers; Insolent Neonate; Inspiring Call; Inspiring Statuary; Inspiring Vantage; Insult // Injury; Inventor's Apprentice; Inventors' Fair; Inventor's Goggles; Invigorated Rampage; Ipnu Rivulet; Irontread Crusher; Irrigated Farmland; Jace, Unraveler of Secrets; Just the Wind; Kalastria Nightwatch; Kambal, Consul of Allocation; Kari Zev, Skyship Raider; Kari Zev's Expertise; Kefnet the Mindful; Kefnet's Monument; Key to the City; Khenra Charioteer; Khenra Eternal; Khenra Scrapper; Kolaghan's Command; Kujar Seedsculptor; Labyrinth Guardian; Languish; Lathnu Sailback; Launch Party; Lawless Broker; Lay Claim; Leaf Gilder; Leave // Chance; Leave in the Dust; Leeching Sliver; Lethal Sting; Lifecraft Cavalry; Lifecrafter's Bestiary; Lifecrafter's Gift; Lightning Axe; Lightning Diadem; Lightning Shrieker; Lightwalker; Liliana, Death's Majesty; Liliana's Defeat; Liliana's Elite; Liliana's Mastery; Liliana's Reaver; Live Fast; Long Road Home; Longtusk Cub; Lord of the Accursed; Lost Legacy; Mad Prophet; Magma Jet; Magma Spray; Magmaroth; Majestic Myriarch; Make Obsolete; Malakir Cullblade; Malakir Familiar; Malfunction; Manaweft Sliver; Manglehorn; Manic Scribe; Marauding Boneslasher; Marionette Master; Markov Crusader; Master Trinketeer; Maulfist Revolutionary; Maulfist Squad; Maverick Thopterist; Maze's End; Merchant's Dockhand; Merciless Javelineer; Metallic Mimic; Metallic Rebuke; Metallurgic Summonings; Metalwork Colossus; Miasmic Mummy; Midnight Oil; Minister of Inquiries; Minotaur Skullcleaver; Minotaur Sureshot; Mirage Mirror; Mobile Garrison; Monstrous Onslaught; Mouth // Feed; Mugging; Murmuring Phantasm; Naga Oracle; Naga Vitalist; Narnam Cobra; Narnam Renegade; Nature's Way; Nebelgast Herald; Nef-Crop Entangler; Neheb, the Eternal; Neheb, the Worthy; Nest of Scarabs; Never // Return; New Perspectives; Nicol Bolas, God-Pharaoh; Night Market Aeronaut; Night Market Lookout; Nightmare; Nimble Innovator; Nimble Obstructionist; Nimble-Blade Khenra; Nimbus Swimmer; Nissa, Steward of Elements; Nissa, Vital Force; Noxious Gearhulk; Nyx-Fleece Ram; Oashra Cultivator; Oasis Ritualist; Oath of Ajani; Obelisk Spider; Ogre Battledriver; Ogre Slumlord; Ojutai's Command; Ojutai's Summons; Oketra the True; Oketra's Attendant; Oketra's Avenger; Oketra's Monument; Ominous Sphinx; Onward // Victory; Open Fire; Ornamental Courage; Ornery Kudu; Ornithopter; Outland Boar; Outnumber; Ovalchase Dragster; Overwhelming Splendor; Oviya Pashiri, Sage Lifecrafter; Pacification Array; Pack Rat; Padeem, Consul of Innovation; Panharmonicon; Paradox Engine; Paradoxical Outcome; Path of Bravery; Pathmaker Initiate; Patron of the Valiant; Peacewalker Colossus; Peel from Reality; Peema Aether-Seer; Peema Outrider; Perilous Vault; Pia Nalaar; Pitiless Vizier; Planar Bridge; Pouncing Cheetah; Prakhata Pillar-Bug; Precise Strike; Predatory Sliver; Prepare // Fight; Prescient Chimera; Pride Sovereign; Primeval Bounty; Propeller Pioneer; Prophetic Prism; Protection of the Hekma; Prowling Serpopard; Pull from Tomorrow; Puncturing Blow; Pursue Glory; Putrefy; Quarry Hauler; Quicksmith Genius; Quicksmith Rebel; Rageblood Shaman; Rags // Riches; Raise Dead; Ramunap Excavator; Ramunap Ruins; Rashmi, Eternities Crafter; Ratchet Bomb; Rattlechains; Ravenous Bloodseeker; Ravenous Intruder; Razaketh, the Foulblooded; Reason // Believe; Reckless Fireweaver; Reckless Racer; Reckless Scholar; Reduce // Rubble; Refurbish; Refuse // Cooperate; Regal Caracal; Renegade Map; Renegade Rallier; Renegade Tactics; Renegade Wheelsmith; Renewed Faith; Reservoir Walker; Resilient Khenra; Rest in Peace; Restoration Gearsmith; Restoration Specialist; Return to the Ranks; Reverse Engineer; Revoke Privileges; Revolutionary Rebuff; Rhonas the Indomitable; Rhonas's Monument; Rhonas's Stalwart; Riddle of Lightning; Ridgescale Tusker; Riparian Tiger; Rise of the Dark Realms; Rishkar, Peema Renegade; Rishkar's Expertise; River Hoopoe; Rogue Refiner; Ruin Rat; Ruinous Gremlin; Rumbling Baloth; Runeclaw Bear; Runed Servitor; Rush of Vitality; Ruthless Sniper; Sacred Cat; Sage of Shaila's Claim; Saheeli Rai; Salivating Gremlins; Samut, the Tested; Samut, Voice of Dissent; Sand Strangler; Sandsteppe Outcast; Sandwurm Convergence; Sarkhan's Rage; Scarab Feast; Scattered Groves; Scavenger Grounds; Scour the Laboratory; Scrap Trawler; Scrapheap Scrounger; Scrapper Champion; Seeker of Insight; Seer of the Last Tomorrow; Seismic Elemental; Select for Inspection; Self-Assembler; Selfless Cathar; Sengir Vampire; Sentinel Sliver; Servant of the Conduit; Servant of the Scale; Servo Exhibition; Servo Schematic; Shadow of the Grave; Shadowstorm Vizier; Shambleshark; Shambling Goblin; Shed Weakness; Shefet Dunes; Shefet Monitor; Sheltered Thicket; Shielded Aether Thief; Shimmerscale Drake; Shipwreck Moray; Shiv's Embrace; Shrewd Negotiation; Sidewinder Naga; Siege Dragon; Siege Modification; Sifter Wurm; Sigil of the Empty Throne; Sigiled Starfish; Sign in Blood; Silumgar's Command; Sin Prodder; Sixth Sense; Sky Skiff; Skyship Plunderer; Skyship Stalker; Skysovereign, Consul Flagship; Skywhaler's Shot; Slate Street Ruffian; Slither Blade; Sliver Hive; Sly Requisitioner; Solemnity; Solitary Camel; Somberwald Stag; Soul of the Harvest; Soulblade Djinn; Soul-Scar Mage; Soulstinger; Speedway Fanatic; Spellweaver Eternal; Sphinx's Revelation; Spire of Industry; Spire Patrol; Spirebluff Canal; Spireside Infiltrator; Splendid Agony; Sporemound; Spring // Mind; Sram, Senior Edificer; Sram's Expertise; Stab Wound; Start // Finish; Steelform Sliver; Steward of Solidarity; Stinging Shot; Stitchwing Skaab; Striking Sliver; Striped Riverwinder; Struggle // Survive; Sunscorched Desert; Sunscourge Champion; Sunset Pyramid; Supernatural Stamina; Supply Caravan; Supreme Will; Swan Song; Swarm of Bloodflies; Sweatworks Brawler; Sweep Away; Sweltering Suns; Synchronized Strike; Tah-Crop Elite; Tajuru Pathwarden; Tandem Tactics; Temmet, Vizier of Naktamun; Terrarion; Tezzeret the Schemer; Tezzeret's Ambition; Tezzeret's Touch; Thalia's Lieutenant; The Gitrog Monster; The Locust God; The Scarab God; The Scorpion God; Thopter Arrest; Thorned Moloch; Those Who Serve; Thoughtseize; Thraben Inspector; Thraben Standard Bearer; Thresher Lizard; Thriving Rhino; Thriving Turtle; Throne of the God-Pharaoh; Thunderbreak Regent; Tightening Coils; Toolcraft Exemplar; Torch Fiend; Torment of Hailfire; Torment of Scarabs; Torrential Gearhulk; Treasure Keeper; Trespasser's Curse; Trial of Ambition; Trial of Knowledge; Trial of Solidarity; Trial of Strength; Trial of Zeal; Trophy Mage; Typhoid Rats; Ulamog, the Ceaseless Hunger; Ulvenwald Hydra; Ulvenwald Mysteries; Unbridled Growth; Unburden; Unconventional Tactics; Underhanded Designs; Unesh, Criosphinx Sovereign; Universal Solvent; Unlicensed Disintegration; Unquenchable Thirst; Untethered Express; Vengeful Rebel; Verdurous Gearhulk; Veteran Motorist; Vile Manifestation; Virulent Plague; Visionary Augmenter; Vizier of Deferment; Vizier of Many Faces; Vizier of Remedies; Vizier of the Anointed; Vizier of the Menagerie; Vizier of Tumbling Sands; Voltaic Brawler; Voyage's End; Wailing Ghoul; Wall of Forgotten Pharaohs; Wander in Death; Warfire Javelineer; Wasp of the Bitter End; Waste Not; Wasteland Scorpion; Watchers of the Dead; Watchful Naga; Wayward Servant; Weaponcraft Enthusiast; Weaver of Lightning; Weldfast Engineer; Weldfast Monitor; Weldfast Wingsmith; Welding Sparks; Whelming Wave; Whir of Invention; Whirler Rogue; Whirler Virtuoso; Whirlermaker; Wight of Precinct Six; Wild Wanderer; Wildest Dreams; Winding Constrictor; Wind-Kin Raiders; Winds of Rebuke; Winged Shepherd; Wispweaver Angel; Witch's Familiar; Woodborn Behemoth; Woodweaver's Puzzleknot; Workshop Assistant; Yahenni, Undying Partisan; Yahenni's Expertise; Young Pyromancer; Zealot of the God-Pharaoh; Zendikar's Roil diff --git a/forge-gui/res/formats/Archived/Historic/2022-09-01.txt b/forge-gui/res/formats/Archived/Historic/2022-09-01.txt new file mode 100644 index 00000000000..fcab94f65be --- /dev/null +++ b/forge-gui/res/formats/Archived/Historic/2022-09-01.txt @@ -0,0 +1,7 @@ +[format] +Name:Historic (DMU) +Type:Archived +Subtype:Arena +Effective:2022-09-01 +Sets:XLN, RIX, DOM, M19, ANA, PANA, GRN, G18, RNA, WAR, M20, ELD, HA1, THB, HA2, IKO, HA3, M21, JMP, AJMP, AKR, ANB, ZNR, KLR, KHM, HA4, STX, STA, HA5, AFR, J21, MID, VOW, YMID, NEO, YNEO, SNC, YSNC, HBG, HA6, EA1, DMU +Banned:Agent of Treachery; Brainstorm; Channel; Counterspell; Dark Ritual; Demonic Tutor; Field of the Dead; Lightning Bolt; Memory Lapse; Natural Order; Nexus of Fate; Oko, Thief of Crowns; Once Upon a Time; Swords to Plowshares; Thassa's Oracle; Tibalt's Trickery; Time Warp; Uro, Titan of Nature's Wrath; Veil of Summer; Wilderness Reclamation diff --git a/forge-gui/res/formats/Archived/Legacy/2022-09-09.txt b/forge-gui/res/formats/Archived/Legacy/2022-09-09.txt new file mode 100644 index 00000000000..176bb1fa86d --- /dev/null +++ b/forge-gui/res/formats/Archived/Legacy/2022-09-09.txt @@ -0,0 +1,8 @@ +[format] +Name:Legacy (DMU) +Type:Archived +Subtype:Legacy +Effective:2022-09-09 +Sets:LEA, LEB, 2ED, ARN, ATQ, 3ED, LEG, DRC94, DRK, FEM, ARENA, WW, FS, SHC, 4ED, ICE, CHR, HML, ALL, MIR, VIS, 5ED, POR, WTH, TMP, STH, EXO, PO2, USG, ATH, ULG, 6ED, UDS, S99, PTK, MMQ, BRB, NMS, S00, PCY, BTD, INV, PLS, 7ED, APC, ODY, DKM, TOR, JUD, ONS, LGN, SCG, 8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, MED, LRW, DD1, MOR, SHM, EVE, DRB, ME2, ALA, DD2, CFX, DDC, ARB, M10, TD0, V09, ME3, ZEN, DDD, H09, WWK, DDE, ROE, DPA, M11, V10, DDF, SOM, TD1, PD2, ME4, MBS, DDG, NPH, TD2, COM, M12, V11, DDH, ISD, PD3, DKA, DDI, AVR, M13, V12, DDJ, RTR, CM1, GTC, DDK, DGM, MMA, M14, V13, DDL, THS, C13, BNG, DDM, JOU, MD1, CNS, VMA, M15, V14, DDN, KTK, C14, DVD, EVG, GVL, JVC, FRF, UGF, DDO, DTK, TPR, MM2, ORI, V15, DDP, BFZ, EXP, C15, PZ1, OGW, DDQ, SOI, W16, EMA, EMN, V16, CN2, DDR, KLD, MPS_KLD, C16, PZ2, AER, MM3, DDS, AKH, MPS_AKH, W17, CMA, HOU, C17, XLN, DDT, IMA, V17, RIX, A25, DDU, DOM, CM2, BBD, SS1, GS1, M19, C18, GRN, MPS_GRN, GK1, G18, GNT, UMA, RNA, MPS_RNA, GK2, WAR, MPS_WAR, MH1, SS2, M20, C19, ELD, MB1, GN2, THB, IKO, C20, SS3, M21, JMP, 2XM, ZNR, ZNE, ZNC, CMR, CC1, KHM, KHC, TSR, STX, STA, C21, MH2, H1R, AFR, AFC, MID, MIC, VOW, VOC, DBL, CC2, NEO, NEC, SNC, NCC, CLB, 2X2, DMU, DMC +Banned:Advantageous Proclamation; Adriana's Valor; Amulet of Quoz; Ancestral Recall; Arcum's Astrolabe; Assemble the Rank and Vile; Backup Plan; Balance; Bazaar of Baghdad; Black Lotus; Brago's Favor; Bronze Tablet; Channel; Chaos Orb; Cleanse; Contract from Below; Crusade; Darkpact; Deathrite Shaman; Demonic Attorney; Demonic Consultation; Demonic Tutor; Dig Through Time; Double Stroke; Dreadhorde Arcanist; Earthcraft; Echoing Boon; Emissary's Ploy; Falling Star; Fastbond; Flash; Frantic Search; Gitaxian Probe; Goblin Recruiter; Gush; Hermit Druid; Hired Heist; Hold the Perimeter; Hymn of the Wilds; Immediate Action; Imperial Seal; Imprison; Incendiary Dissent; Invoke Prejudice; Iterative Analysis; Jeweled Bird; Jihad; Library of Alexandria; Lurrus of the Dream-Den; Mana Crypt; Mana Drain; Mana Vault; Memory Jar; Mental Misstep; Mind Twist; Mind's Desire; Mishra's Workshop; Mox Emerald; Mox Jet; Mox Pearl; Mox Ruby; Mox Sapphire; Muzzio's Preparations; Mystical Tutor; Natural Unity; Necropotence; Oath of Druids; Oko, Thief of Crowns; Power Play; Pradesh Gypsies; Ragavan, Nimble Pilferer; Rebirth; Secret Summoning; Secrets of Paradise; Sensei's Divining Top; Sentinel Dispatch; Shahrazad; Skullclamp; Sol Ring; Sovereign's Realm; Stone-Throwing Devils; Strip Mine; Summoner's Bond; Survival of the Fittest; Tempest Efreet; Time Vault; Time Walk; Timetwister; Timmerian Fiends; Tinker; Tolarian Academy; Treasure Cruise; Underworld Breach; Unexpected Potential; Vampiric Tutor; Weight Advantage; Wheel of Fortune; Windfall; Worldknit; Wrenn and Six; Yawgmoth's Bargain; Yawgmoth's Will; Zirda, the Dawnwaker +Additional:Arvinox, the Mind Flail; Blanka, Ferocious Friend; Bjorna, Nightfall Alchemist; Cecily, Haunted Mage; Chief Jim Hopper; Chun-Li, Countless Kicks; Daryl, Hunter of Walkers; Dhalsim, Pliable Pacifist; Dustin, Gadget Genius; E. Honda, Sumo Champion; Eleven, the Mage; Elmar, Ulvenwald Informant; Glenn, the Voice of Calm; Guile, Sonic Soldier; Hargilde, Kindly Runechanter; Havengul Laboratory; Ken, Burning Brawler; Lucas, the Sharpshooter; Max, the Daredevil; Michonne, Ruthless Survivor; Mike, the Dungeon Master; Mind Flayer, the Shadow; Negan, the Cold-Blooded; Othelm, Sigardian Outcast; Rick, Steadfast Leader; Ryu, World Warrior; Sophina, Spearsage Deserter; Wernog, Rider's Chaplain; Will the Wise; Zangief, the Red Cyclone diff --git a/forge-gui/res/formats/Archived/Modern/2022-09-09.txt b/forge-gui/res/formats/Archived/Modern/2022-09-09.txt new file mode 100644 index 00000000000..646f1d9e789 --- /dev/null +++ b/forge-gui/res/formats/Archived/Modern/2022-09-09.txt @@ -0,0 +1,7 @@ +[format] +Name:Modern (DMU) +Type:Archived +Subtype:Modern +Effective:2022-09-09 +Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, MOR, SHM, EVE, ALA, CFX, ARB, M10, ZEN, WWK, ROE, DPA, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, MMA, M14, THS, BNG, JOU, MD1, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, W16, EMN, KLD, AER, MM3, W17, AKH, HOU, XLN, RIX, DOM, M19, GRN, GK1, G18, RNA, GK2, WAR, MH1, M20, ELD, THB, IKO, M21, ZNR, KHM, TSR, STX, MH2, AFR, MID, VOW, DBL, NEO, SNC, DMU +Banned:Ancient Den; Arcum's Astrolabe; Birthing Pod; Blazing Shoal; Bridge from Below; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Faithless Looting; Field of the Dead; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hogaak, Arisen Necropolis; Hypergenesis; Krark-Clan Ironworks; Lurrus of the Dream-Den; Mental Misstep; Mox Opal; Mycosynth Lattice; Mystic Sanctuary; Oko, Thief of Crowns; Once Upon a Time; Ponder; Preordain; Punishing Fire; Rite of Flame; Seat of the Synod; Second Sunrise; Seething Song; Sensei's Divining Top; Simian Spirit Guide; Skullclamp; Splinter Twin; Summer Bloom; Tibalt's Trickery; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Uro, Titan of Nature's Wrath; Vault of Whispers diff --git a/forge-gui/res/formats/Archived/Pioneer/2022-09-09.txt b/forge-gui/res/formats/Archived/Pioneer/2022-09-09.txt new file mode 100644 index 00000000000..a7bee2f8457 --- /dev/null +++ b/forge-gui/res/formats/Archived/Pioneer/2022-09-09.txt @@ -0,0 +1,7 @@ +[format] +Name:Pioneer (DMU) +Type:Archived +Subtype:Pioneer +Effective:2022-09-09 +Sets:RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, ORI, BFZ, OGW, SOI, W16, EMN, KLD, AER, W17, AKH, HOU, XLN, RIX, DOM, M19, GRN, G18, RNA, WAR, M20, ELD, THB, IKO, M21, ZNR, KHM, STX, AFR, MID, VOW, DBL, NEO, SNC, DMU +Banned:Balustrade Spy; Bloodstained Mire; Expressive Iteration; Felidar Guardian; Field of the Dead; Flooded Strand; Inverter of Truth; Kethis, the Hidden Hand; Leyline of Abundance; Lurrus of the Dream-Den; Nexus of Fate; Oko, Thief of Crowns; Once Upon a Time; Polluted Delta; Smuggler's Copter; Teferi, Time Raveler; Undercity Informer; Underworld Breach; Uro, Titan of Nature's Wrath; Veil of Summer; Walking Ballista; Wilderness Reclamation; Windswept Heath; Winota, Joiner of Forces; Wooded Foothills diff --git a/forge-gui/res/formats/Archived/Standard/2022-09-09.txt b/forge-gui/res/formats/Archived/Standard/2022-09-09.txt new file mode 100644 index 00000000000..6e17611ec3e --- /dev/null +++ b/forge-gui/res/formats/Archived/Standard/2022-09-09.txt @@ -0,0 +1,6 @@ +[format] +Name:Standard (DMU) +Type:Archived +Subtype:Standard +Effective:2022-09-09 +Sets:MID, VOW, NEO, SNC, DMU diff --git a/forge-gui/res/formats/Archived/Vintage/2022-09-09.txt b/forge-gui/res/formats/Archived/Vintage/2022-09-09.txt new file mode 100644 index 00000000000..a8d18be5979 --- /dev/null +++ b/forge-gui/res/formats/Archived/Vintage/2022-09-09.txt @@ -0,0 +1,9 @@ +[format] +Name:Vintage (DMU) +Type:Archived +Subtype:Vintage +Effective:2022-09-09 +Sets:LEA, LEB, 2ED, ARN, ATQ, 3ED, LEG, DRC94, DRK, FEM, ARENA, WW, FS, SHC, 4ED, ICE, CHR, HML, ALL, MIR, VIS, 5ED, POR, WTH, TMP, STH, EXO, PO2, USG, ATH, ULG, 6ED, UDS, S99, PTK, MMQ, BRB, NMS, S00, PCY, BTD, INV, PLS, 7ED, APC, ODY, DKM, TOR, JUD, ONS, LGN, SCG, 8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, MED, LRW, DD1, MOR, SHM, EVE, DRB, ME2, ALA, DD2, CFX, DDC, ARB, M10, TD0, V09, ME3, ZEN, DDD, H09, WWK, DDE, ROE, DPA, M11, V10, DDF, SOM, TD1, PD2, ME4, MBS, DDG, NPH, TD2, COM, M12, V11, DDH, ISD, PD3, DKA, DDI, AVR, M13, V12, DDJ, RTR, CM1, GTC, DDK, DGM, MMA, M14, V13, DDL, THS, C13, BNG, DDM, JOU, MD1, CNS, VMA, M15, V14, DDN, KTK, C14, DVD, EVG, GVL, JVC, FRF, UGF, DDO, DTK, TPR, MM2, ORI, V15, DDP, BFZ, EXP, C15, PZ1, OGW, DDQ, SOI, W16, EMA, EMN, V16, CN2, DDR, KLD, MPS_KLD, C16, PZ2, AER, MM3, DDS, AKH, MPS_AKH, W17, CMA, HOU, C17, XLN, DDT, IMA, V17, RIX, A25, DDU, DOM, CM2, BBD, SS1, GS1, M19, C18, GRN, MPS_GRN, GK1, G18, GNT, UMA, RNA, MPS_RNA, GK2, WAR, MPS_WAR, MH1, SS2, M20, C19, ELD, MB1, GN2, THB, IKO, C20, SS3, M21, JMP, 2XM, ZNR, ZNE, ZNC, CMR, CC1, KHM, KHC, TSR, STX, STA, C21, MH2, H1R, AFR, AFC, MID, MIC, VOW, VOC, DBL, CC2, NEO, NEC, SNC, NCC, CLB, 2X2, DMU, DMC +Restricted:Ancestral Recall; Balance; Black Lotus; Brainstorm; Chalice of the Void; Channel; Demonic Consultation; Demonic Tutor; Dig Through Time; Flash; Gitaxian Probe; Golgari Grave-Troll; Gush; Imperial Seal; Karn, the Great Creator; Library of Alexandria; Lion's Eye Diamond; Lodestone Golem; Lotus Petal; Mana Crypt; Mana Vault; Memory Jar; Mental Misstep; Merchant Scroll; Mind's Desire; Monastery Mentor; Mox Emerald; Mox Jet; Mox Pearl; Mox Ruby; Mox Sapphire; Mystic Forge; Mystical Tutor; Narset, Parter of Veils; Necropotence; Ponder; Sol Ring; Strip Mine; Thorn of Amethyst; Time Vault; Time Walk; Timetwister; Tinker; Tolarian Academy; Treasure Cruise; Trinisphere; Vampiric Tutor; Wheel of Fortune; Windfall; Yawgmoth's Will +Banned:Adriana's Valor; Advantageous Proclamation; Amulet of Quoz; Assemble the Rank and Vile; Backup Plan; Brago's Favor; Bronze Tablet; Chaos Orb; Cleanse; Contract from Below; Crusade; Darkpact; Demonic Attorney; Double Stroke; Echoing Boon; Emissary's Ploy; Falling Star; Hired Heist; Hold the Perimeter; Hymn of the Wilds; Immediate Action; Imprison; Incendiary Dissent; Invoke Prejudice; Iterative Analysis; Jeweled Bird; Jihad; Muzzio's Preparations; Natural Unity; Power Play; Pradesh Gypsies; Rebirth; Secret Summoning; Secrets of Paradise; Sentinel Dispatch; Shahrazad; Sovereign's Realm; Stone-Throwing Devils; Summoner's Bond; Tempest Efreet; Timmerian Fiends; Unexpected Potential; Weight Advantage; Worldknit +Additional:Arvinox, the Mind Flail; Blanka, Ferocious Friend; Bjorna, Nightfall Alchemist; Cecily, Haunted Mage; Chief Jim Hopper; Chun-Li, Countless Kicks; Daryl, Hunter of Walkers; Dhalsim, Pliable Pacifist; Dustin, Gadget Genius; E. Honda, Sumo Champion; Eleven, the Mage; Elmar, Ulvenwald Informant; Glenn, the Voice of Calm; Guile, Sonic Soldier; Hargilde, Kindly Runechanter; Havengul Laboratory; Ken, Burning Brawler; Lucas, the Sharpshooter; Max, the Daredevil; Michonne, Ruthless Survivor; Mike, the Dungeon Master; Mind Flayer, the Shadow; Negan, the Cold-Blooded; Othelm, Sigardian Outcast; Rick, Steadfast Leader; Ryu, World Warrior; Sophina, Spearsage Deserter; Wernog, Rider's Chaplain; Will the Wise; Zangief, the Red Cyclone diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties index 2dbb51cbe40..1fb9b3368eb 100644 --- a/forge-gui/res/languages/de-DE.properties +++ b/forge-gui/res/languages/de-DE.properties @@ -1980,6 +1980,8 @@ lblLandedOnTwoCards=Die Karte landete auf {0} und {1}. lblWouldYouLikeInvestigate=Möchtest du Nachforschungen anstellen? #LifeSetEffect.java lblLifeTotal=Lebenspunkte +#MakeCardEffect.java +lblChooseFromSpellbook=Wähle eine Karte aus {0}s Zauberbuch #ManaEffect.java lblDoYouWantAddMana=Möchtest du Mana hinzufügen? lblSelectManaProduce=Wähle zu produzierendes Mana diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index e70d4995d29..20ecfe6fe61 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1981,6 +1981,8 @@ lblLandedOnTwoCards=The card landed on {0} and {1}. lblWouldYouLikeInvestigate=Do you want to investigate? #LifeSetEffect.java lblLifeTotal=Life Total +#MakeCardEffect.java +lblChooseFromSpellbook=Choose a card from {0}''s spellbook #ManaEffect.java lblDoYouWantAddMana=Do you want to add mana? lblSelectManaProduce=Select Mana to Produce diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties index c9b02bfd32b..cfe54f6ef24 100644 --- a/forge-gui/res/languages/es-ES.properties +++ b/forge-gui/res/languages/es-ES.properties @@ -1979,6 +1979,8 @@ lblLandedOnTwoCards=The card landed on {0} and {1}. lblWouldYouLikeInvestigate=¿Quieres investigar? #LifeSetEffect.java lblLifeTotal=Vida total +#MakeCardEffect.java +lblChooseFromSpellbook=Elige una carta del libro de hechizos a {0} #ManaEffect.java lblDoYouWantAddMana=¿Quieres agregar maná? lblSelectManaProduce=Selecciona el maná a producir diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties index 2cb27b2247c..ec41fa235de 100644 --- a/forge-gui/res/languages/it-IT.properties +++ b/forge-gui/res/languages/it-IT.properties @@ -1978,6 +1978,8 @@ lblLandedOnTwoCards=The card landed on {0} and {1}. lblWouldYouLikeInvestigate=Do you want to investigate? #LifeSetEffect.java lblLifeTotal=Punti Vita +#MakeCardEffect.java +lblChooseFromSpellbook=Choose a card from {0}''s spellbook #ManaEffect.java lblDoYouWantAddMana=Vuoi aggiungere mana? lblSelectManaProduce=Scegli il mana da produrre diff --git a/forge-gui/res/languages/ja-JP.properties b/forge-gui/res/languages/ja-JP.properties index 7e7fcd30880..66a13db3fa8 100644 --- a/forge-gui/res/languages/ja-JP.properties +++ b/forge-gui/res/languages/ja-JP.properties @@ -1978,6 +1978,8 @@ lblLandedOnTwoCards=The card landed on {0} and {1}. lblWouldYouLikeInvestigate=Do you want to investigate? #LifeSetEffect.java lblLifeTotal=総ライフ値 +#MakeCardEffect.java +lblChooseFromSpellbook=Choose a card from {0}''s spellbook #ManaEffect.java lblDoYouWantAddMana=マナを生成しますか? lblSelectManaProduce=生成するマナを選ぶ diff --git a/forge-gui/res/languages/pt-BR.properties b/forge-gui/res/languages/pt-BR.properties index 40410cfbf2f..6fe8946637b 100644 --- a/forge-gui/res/languages/pt-BR.properties +++ b/forge-gui/res/languages/pt-BR.properties @@ -2040,6 +2040,8 @@ lblLandedOnTwoCards=A carta land em {0} e {1}. lblWouldYouLikeInvestigate=Você quer investigar? #LifeSetEffect.java lblLifeTotal=Total de Vida +#MakeCardEffect.java +lblChooseFromSpellbook=Choose a card from {0}''s spellbook #ManaEffect.java lblDoYouWantAddMana=Deseja adicionar mana? lblSelectManaProduce=Escolha Mana a Gerar diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties index fc81a5b2c3f..6f7c6f70e1f 100644 --- a/forge-gui/res/languages/zh-CN.properties +++ b/forge-gui/res/languages/zh-CN.properties @@ -1982,6 +1982,8 @@ lblLandedOnTwoCards=牌张落在了{0}和{1}上。 lblWouldYouLikeInvestigate=你想要探查吗? #LifeSetEffect.java lblLifeTotal=生命总数 +#MakeCardEffect.java +lblChooseFromSpellbook=Choose a card from {0}''s spellbook #ManaEffect.java lblDoYouWantAddMana=你想增加法术力吗? lblSelectManaProduce=选择要产出的法术力 diff --git a/forge-gui/res/lists/TypeLists.txt b/forge-gui/res/lists/TypeLists.txt index ce9d93f9234..aee753559ba 100644 --- a/forge-gui/res/lists/TypeLists.txt +++ b/forge-gui/res/lists/TypeLists.txt @@ -313,6 +313,7 @@ Food Fortification Gold Key:Keys +Powerstone Treasure Vehicle [WalkerTypes] @@ -394,4 +395,4 @@ Yanggu Yanling Zariel [DungeonTypes] -Undercity \ No newline at end of file +Undercity diff --git a/forge-gui/res/tokenscripts/all_2_2_citizen.txt b/forge-gui/res/tokenscripts/all_2_2_citizen.txt index c0087a12203..c3381cb8227 100644 --- a/forge-gui/res/tokenscripts/all_2_2_citizen.txt +++ b/forge-gui/res/tokenscripts/all_2_2_citizen.txt @@ -3,4 +3,5 @@ ManaCost:no cost Colors:all Types:Creature Citizen PT:2/2 +Text:This creature is all colors. Oracle:This creature is all colors. diff --git a/forge-gui/res/tokenscripts/all_3_3_kavu_trample.txt b/forge-gui/res/tokenscripts/all_3_3_kavu_trample.txt new file mode 100644 index 00000000000..035e863d8e9 --- /dev/null +++ b/forge-gui/res/tokenscripts/all_3_3_kavu_trample.txt @@ -0,0 +1,8 @@ +Name:Kavu Token +ManaCost:no cost +Colors:all +Types:Creature Kavu +PT:3/3 +K:Trample +Text:This creature is all colors. +Oracle:Trample\nThis creature is all colors. diff --git a/forge-gui/res/tokenscripts/b_1_1_bird_flying_noblock.txt b/forge-gui/res/tokenscripts/b_1_1_bird_flying_noblock.txt new file mode 100644 index 00000000000..d58af864fe8 --- /dev/null +++ b/forge-gui/res/tokenscripts/b_1_1_bird_flying_noblock.txt @@ -0,0 +1,8 @@ +Name:Bird Token +ManaCost:no cost +Types:Creature Bird +Colors:black +PT:1/1 +K:Flying +K:CARDNAME can't block. +Oracle:Flying\nThis creature can't block. diff --git a/forge-gui/res/tokenscripts/b_1_1_insect_flying.txt b/forge-gui/res/tokenscripts/b_1_1_insect_flying.txt new file mode 100644 index 00000000000..b5bc86c41d6 --- /dev/null +++ b/forge-gui/res/tokenscripts/b_1_1_insect_flying.txt @@ -0,0 +1,7 @@ +Name:Insect Token +ManaCost:no cost +Types:Creature Insect +Colors:black +PT:1/1 +K:Flying +Oracle:Flying diff --git a/forge-gui/res/tokenscripts/c_a_powerstone.txt b/forge-gui/res/tokenscripts/c_a_powerstone.txt new file mode 100644 index 00000000000..12f067bf94e --- /dev/null +++ b/forge-gui/res/tokenscripts/c_a_powerstone.txt @@ -0,0 +1,7 @@ +Name:Powerstone token +ManaCost:no cost +Types:Artifact Powerstone +Colors:colorless +A:AB$ Mana | Cost$ T | Produced$ C | RestrictValid$ CantCastNonArtifactSpells | SpellDescription$ Add {C}. This mana can't be spent to cast a nonartifact spell. +Oracle:{T}: Add {C}. This mana can't be spent to cast a nonartifact spell. + diff --git a/forge-gui/res/tokenscripts/mechtitan.txt b/forge-gui/res/tokenscripts/mechtitan.txt index a7ce4651601..696a15a9a26 100644 --- a/forge-gui/res/tokenscripts/mechtitan.txt +++ b/forge-gui/res/tokenscripts/mechtitan.txt @@ -8,4 +8,5 @@ K:Vigilance K:Trample K:Lifelink K:Haste +Text:CARDNAME is all colors. Oracle:Mechtitan is all colors.\nFlying, vigilance, trample, lifelink, haste diff --git a/forge-gui/res/tokenscripts/w_2_2_knight_pro_red.txt b/forge-gui/res/tokenscripts/w_2_2_knight_pro_red.txt new file mode 100644 index 00000000000..cd51986956b --- /dev/null +++ b/forge-gui/res/tokenscripts/w_2_2_knight_pro_red.txt @@ -0,0 +1,7 @@ +Name:Knight Token +ManaCost:no cost +Types:Creature Knight +Colors:white +PT:2/2 +K:Protection from red +Oracle:Protection from red diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 9eac358672a..7e0a4b8ee01 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -2753,9 +2753,11 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont getGame().getAction().invoke(() -> { if (targetZone == ZoneType.Battlefield) { if (!forgeCard.getName().equals(f.getName())) { - forgeCard.changeToState(CardStateName.Flipped); - forgeCard.changeToState(CardStateName.Transformed); - forgeCard.changeToState(CardStateName.Modal); + forgeCard.changeToState(forgeCard.getRules().getSplitType().getChangedStateName()); + if (forgeCard.getCurrentStateName().equals(CardStateName.Transformed) || + forgeCard.getCurrentStateName().equals(CardStateName.Modal)) { + forgeCard.setBackSide(true); + } } if (noTriggers) {