diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml
index e0e80f59c50..667324e060d 100644
--- a/forge-ai/pom.xml
+++ b/forge-ai/pom.xml
@@ -6,7 +6,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-ai
diff --git a/forge-ai/src/main/java/forge/ai/AiCostDecision.java b/forge-ai/src/main/java/forge/ai/AiCostDecision.java
index 0fc16198dbd..52abcc6f94b 100644
--- a/forge-ai/src/main/java/forge/ai/AiCostDecision.java
+++ b/forge-ai/src/main/java/forge/ai/AiCostDecision.java
@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import forge.card.CardType;
@@ -23,6 +24,7 @@ import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.SpellAbilityStackInstance;
import forge.game.zone.ZoneType;
+import forge.util.Aggregates;
import forge.util.TextUtil;
import forge.util.collect.FCollectionView;
@@ -105,6 +107,24 @@ public class AiCostDecision extends CostDecisionMakerBase {
}
return PaymentDecision.card(randomSubset);
}
+ else if (type.equals("DifferentNames")) {
+ CardCollection differentNames = new CardCollection();
+ CardCollection discardMe = CardLists.filter(hand, CardPredicates.hasSVar("DiscardMe"));
+ while (c > 0) {
+ Card chosen;
+ if (!discardMe.isEmpty()) {
+ chosen = Aggregates.random(discardMe);
+ discardMe = CardLists.filter(discardMe, Predicates.not(CardPredicates.sharesNameWith(chosen)));
+ } else {
+ final Card worst = ComputerUtilCard.getWorstAI(hand);
+ chosen = worst != null ? worst : Aggregates.random(hand);
+ }
+ differentNames.add(chosen);
+ hand = CardLists.filter(hand, Predicates.not(CardPredicates.sharesNameWith(chosen)));
+ c--;
+ }
+ return PaymentDecision.card(differentNames);
+ }
else {
final AiController aic = ((PlayerControllerAi)player.getController()).getAi();
diff --git a/forge-core/pom.xml b/forge-core/pom.xml
index 9a80542c67e..620b62074e2 100644
--- a/forge-core/pom.xml
+++ b/forge-core/pom.xml
@@ -6,7 +6,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-core
diff --git a/forge-game/pom.xml b/forge-game/pom.xml
index 90ba325a0bd..e5b60949db6 100644
--- a/forge-game/pom.xml
+++ b/forge-game/pom.xml
@@ -6,7 +6,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-game
diff --git a/forge-game/src/main/java/forge/game/cost/CostDiscard.java b/forge-game/src/main/java/forge/game/cost/CostDiscard.java
index 7594cfbc97f..3edd069cfde 100644
--- a/forge-game/src/main/java/forge/game/cost/CostDiscard.java
+++ b/forge-game/src/main/java/forge/game/cost/CostDiscard.java
@@ -18,6 +18,9 @@
package forge.game.cost;
import java.util.Map;
+import java.util.Set;
+
+import com.google.common.collect.Sets;
import forge.game.ability.AbilityKey;
import forge.game.card.Card;
@@ -83,6 +86,9 @@ public class CostDiscard extends CostPartWithList {
else if (this.getType().equals("LastDrawn")) {
sb.append("the last card you drew this turn");
}
+ else if (this.getType().equals("DifferentNames")) {
+ sb.append(Cost.convertAmountTypeToWords(i, this.getAmount(), "Card")).append(" with different names");
+ }
else {
final StringBuilder desc = new StringBuilder();
@@ -129,6 +135,13 @@ public class CostDiscard extends CostPartWithList {
final Card c = payer.getLastDrawnCard();
return handList.contains(c);
}
+ else if (type.equals("DifferentNames")) {
+ Set cardNames = Sets.newHashSet();
+ for (Card c : handList) {
+ cardNames.add(c.getName());
+ }
+ return amount != null && cardNames.size() >= amount;
+ }
else {
boolean sameName = false;
if (type.contains("+WithSameName")) {
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 41864de4de9..55c0df3b019 100644
--- a/forge-game/src/main/java/forge/game/player/Player.java
+++ b/forge-game/src/main/java/forge/game/player/Player.java
@@ -3009,9 +3009,12 @@ public class Player extends GameEntity implements Comparable {
final String name = Lang.getPossesive(companion.getName()) + " Companion Effect";
DetachedCardEffect eff = new DetachedCardEffect(companion, name);
- String mayBePlayedAbility = "Mode$ Continuous | EffectZone$ Command | MayPlay$ True | Affected$ Card.YouOwn+EffectSource | AffectedZone$ Command";
- eff.addStaticAbility(mayBePlayedAbility);
- // Probably remove this effect when the spell is cast via a static trigger
+ String addToHandAbility = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.YouOwn+EffectSource | AffectedZone$ Command | AddAbility$ MoveToHand";
+ String moveToHand = "ST$ ChangeZone | Cost$ 3 | Defined$ Self | Origin$ Command | Destination$ Hand | ActivationZone$ Command | SpellDescription$ Companion - Put CARDNAME in to your hand";
+ eff.setSVar("MoveToHand", moveToHand);
+ eff.addStaticAbility(addToHandAbility);
+
+ // TODO Probably remove this effect when the moved to hand
return eff;
}
diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml
index c5cb677fa55..868707a1840 100644
--- a/forge-gui-android/pom.xml
+++ b/forge-gui-android/pom.xml
@@ -19,7 +19,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui-android
diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml
index 5666d19da5a..db6d0137ee3 100644
--- a/forge-gui-desktop/pom.xml
+++ b/forge-gui-desktop/pom.xml
@@ -4,7 +4,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui-desktop
diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml
index b6564de8634..2b2609df0d6 100644
--- a/forge-gui-ios/pom.xml
+++ b/forge-gui-ios/pom.xml
@@ -12,7 +12,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui-ios
diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml
index 164bb6c3373..8e83bdfcdb4 100644
--- a/forge-gui-mobile-dev/pom.xml
+++ b/forge-gui-mobile-dev/pom.xml
@@ -4,7 +4,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui-mobile-dev
diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml
index 1b2aa1eb481..5747c5288c0 100644
--- a/forge-gui-mobile/pom.xml
+++ b/forge-gui-mobile/pom.xml
@@ -4,7 +4,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui-mobile
diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml
index 6b21aea0eac..49eee73f240 100644
--- a/forge-gui/pom.xml
+++ b/forge-gui/pom.xml
@@ -4,7 +4,7 @@
forge
forge
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
forge-gui
diff --git a/forge-gui/release-files/ANNOUNCEMENTS.txt b/forge-gui/release-files/ANNOUNCEMENTS.txt
index c797a1dcaff..5c195ff539f 100644
--- a/forge-gui/release-files/ANNOUNCEMENTS.txt
+++ b/forge-gui/release-files/ANNOUNCEMENTS.txt
@@ -1,5 +1,6 @@
#Add one announcement per line
-IKO Release. Sorry Companions and Mutate will take some more time. They are still very much on the radar.
-We believe the issue with 1.8.0_211 or greater have been resolved. Let us know if you are still on the latest version and things are better now.
+M21 Pre-release.
+Mutate is NOT finished yet. Please be patient.
+Companion is in, but unfortunately Wizards changed the rules on us. We'll get the new rules in when we can.
[b]Forge now requires Java 8 (or newer). You will not be able to start the game if you are not yet running Java 8.[/b]
We have a Discord server for hanging out with Forge devs and other Forge fans. Feel free to [url=https://discord.gg/3v9JCVr]jump on in and say hi[/url]!
\ No newline at end of file
diff --git a/forge-gui/release-files/CONTRIBUTORS.txt b/forge-gui/release-files/CONTRIBUTORS.txt
index a10b0182abb..adb1d4d40a5 100644
--- a/forge-gui/release-files/CONTRIBUTORS.txt
+++ b/forge-gui/release-files/CONTRIBUTORS.txt
@@ -3,6 +3,7 @@ apantel
Austinio7116
Churrufli
DrDev
+Elwin
excessum
Flair
Gos
diff --git a/forge-gui/res/blockdata/blocks.txt b/forge-gui/res/blockdata/blocks.txt
index 6b95c7666df..0cb0ac21ab3 100644
--- a/forge-gui/res/blockdata/blocks.txt
+++ b/forge-gui/res/blockdata/blocks.txt
@@ -85,4 +85,5 @@ Core Set 2020, 3/6/M20, M20
Throne of Eldraine, 3/6/ELD, ELD
Theros: Beyond Death, 3/6/THB, THB
Mystery Booster, 3/6/THB, MB1
-Ikoria: Lair of Behemoths, 3/6/IKO, IKO
\ No newline at end of file
+Ikoria: Lair of Behemoths, 3/6/IKO, IKO
+Core Set 2021, 3/6/M21, M21
\ No newline at end of file
diff --git a/forge-gui/res/blockdata/boosterboxes.txt b/forge-gui/res/blockdata/boosterboxes.txt
index 8d0d1b3729c..175265439c1 100644
--- a/forge-gui/res/blockdata/boosterboxes.txt
+++ b/forge-gui/res/blockdata/boosterboxes.txt
@@ -112,4 +112,5 @@ M20: 36 Boosters
ELD: 36 Boosters
THB: 36 Boosters
MB1: 24 Boosters
-IKO: 36 Boosters
\ No newline at end of file
+IKO: 36 Boosters
+M21: 36 Boosters
\ No newline at end of file
diff --git a/forge-gui/res/blockdata/fatpacks.txt b/forge-gui/res/blockdata/fatpacks.txt
index badefeb9e88..2b7569fbb43 100644
--- a/forge-gui/res/blockdata/fatpacks.txt
+++ b/forge-gui/res/blockdata/fatpacks.txt
@@ -78,3 +78,5 @@ THB: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Arasta of the Endless Web+|THB|3
IKO: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Colossification+|IKO|3
+M21: 10 Boosters, 40 BasicLands
+#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Pack Leader+|M21|3
\ No newline at end of file
diff --git a/forge-gui/res/cardsfolder/upcoming/adherent_of_hope.txt b/forge-gui/res/cardsfolder/a/adherent_of_hope.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/adherent_of_hope.txt
rename to forge-gui/res/cardsfolder/a/adherent_of_hope.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/alchemists_gift.txt b/forge-gui/res/cardsfolder/a/alchemists_gift.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/alchemists_gift.txt
rename to forge-gui/res/cardsfolder/a/alchemists_gift.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/alpine_houndmaster.txt b/forge-gui/res/cardsfolder/a/alpine_houndmaster.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/alpine_houndmaster.txt
rename to forge-gui/res/cardsfolder/a/alpine_houndmaster.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/alpine_watchdog.txt b/forge-gui/res/cardsfolder/a/alpine_watchdog.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/alpine_watchdog.txt
rename to forge-gui/res/cardsfolder/a/alpine_watchdog.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/angelic_ascension.txt b/forge-gui/res/cardsfolder/a/angelic_ascension.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/angelic_ascension.txt
rename to forge-gui/res/cardsfolder/a/angelic_ascension.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/animal_sanctuary.txt b/forge-gui/res/cardsfolder/a/animal_sanctuary.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/animal_sanctuary.txt
rename to forge-gui/res/cardsfolder/a/animal_sanctuary.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/anointed_chorister.txt b/forge-gui/res/cardsfolder/a/anointed_chorister.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/anointed_chorister.txt
rename to forge-gui/res/cardsfolder/a/anointed_chorister.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/archfiends_vessel.txt b/forge-gui/res/cardsfolder/a/archfiends_vessel.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/archfiends_vessel.txt
rename to forge-gui/res/cardsfolder/a/archfiends_vessel.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/aven_gagglemaster.txt b/forge-gui/res/cardsfolder/a/aven_gagglemaster.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/aven_gagglemaster.txt
rename to forge-gui/res/cardsfolder/a/aven_gagglemaster.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/bad_deal.txt b/forge-gui/res/cardsfolder/b/bad_deal.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/bad_deal.txt
rename to forge-gui/res/cardsfolder/b/bad_deal.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/barrin_tolarian_archmage.txt b/forge-gui/res/cardsfolder/b/barrin_tolarian_archmage.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/barrin_tolarian_archmage.txt
rename to forge-gui/res/cardsfolder/b/barrin_tolarian_archmage.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basri_devoted_paladin.txt b/forge-gui/res/cardsfolder/b/basri_devoted_paladin.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basri_devoted_paladin.txt
rename to forge-gui/res/cardsfolder/b/basri_devoted_paladin.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basri_ket.txt b/forge-gui/res/cardsfolder/b/basri_ket.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basri_ket.txt
rename to forge-gui/res/cardsfolder/b/basri_ket.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basris_acolyte.txt b/forge-gui/res/cardsfolder/b/basris_acolyte.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basris_acolyte.txt
rename to forge-gui/res/cardsfolder/b/basris_acolyte.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basris_aegis.txt b/forge-gui/res/cardsfolder/b/basris_aegis.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basris_aegis.txt
rename to forge-gui/res/cardsfolder/b/basris_aegis.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basris_lieutenant.txt b/forge-gui/res/cardsfolder/b/basris_lieutenant.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basris_lieutenant.txt
rename to forge-gui/res/cardsfolder/b/basris_lieutenant.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/basris_solidarity.txt b/forge-gui/res/cardsfolder/b/basris_solidarity.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/basris_solidarity.txt
rename to forge-gui/res/cardsfolder/b/basris_solidarity.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/blood_glutton.txt b/forge-gui/res/cardsfolder/b/blood_glutton.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/blood_glutton.txt
rename to forge-gui/res/cardsfolder/b/blood_glutton.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/bolt_hound.txt b/forge-gui/res/cardsfolder/b/bolt_hound.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/bolt_hound.txt
rename to forge-gui/res/cardsfolder/b/bolt_hound.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/bone_pit_brute.txt b/forge-gui/res/cardsfolder/b/bone_pit_brute.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/bone_pit_brute.txt
rename to forge-gui/res/cardsfolder/b/bone_pit_brute.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/brash_taunter.txt b/forge-gui/res/cardsfolder/b/brash_taunter.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/brash_taunter.txt
rename to forge-gui/res/cardsfolder/b/brash_taunter.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/burlfist_oak.txt b/forge-gui/res/cardsfolder/b/burlfist_oak.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/burlfist_oak.txt
rename to forge-gui/res/cardsfolder/b/burlfist_oak.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/caged_zombie.txt b/forge-gui/res/cardsfolder/c/caged_zombie.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/caged_zombie.txt
rename to forge-gui/res/cardsfolder/c/caged_zombie.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/canopy_stalker.txt b/forge-gui/res/cardsfolder/c/canopy_stalker.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/canopy_stalker.txt
rename to forge-gui/res/cardsfolder/c/canopy_stalker.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/carrion_grub.txt b/forge-gui/res/cardsfolder/c/carrion_grub.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/carrion_grub.txt
rename to forge-gui/res/cardsfolder/c/carrion_grub.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/celestial_enforcer.txt b/forge-gui/res/cardsfolder/c/celestial_enforcer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/celestial_enforcer.txt
rename to forge-gui/res/cardsfolder/c/celestial_enforcer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandra_flames_catalyst.txt b/forge-gui/res/cardsfolder/c/chandra_flames_catalyst.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandra_flames_catalyst.txt
rename to forge-gui/res/cardsfolder/c/chandra_flames_catalyst.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandra_heart_of_fire.txt b/forge-gui/res/cardsfolder/c/chandra_heart_of_fire.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandra_heart_of_fire.txt
rename to forge-gui/res/cardsfolder/c/chandra_heart_of_fire.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandras_firemaw.txt b/forge-gui/res/cardsfolder/c/chandras_firemaw.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandras_firemaw.txt
rename to forge-gui/res/cardsfolder/c/chandras_firemaw.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandras_incinerator.txt b/forge-gui/res/cardsfolder/c/chandras_incinerator.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandras_incinerator.txt
rename to forge-gui/res/cardsfolder/c/chandras_incinerator.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandras_magmutt.txt b/forge-gui/res/cardsfolder/c/chandras_magmutt.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandras_magmutt.txt
rename to forge-gui/res/cardsfolder/c/chandras_magmutt.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chandras_pyreling.txt b/forge-gui/res/cardsfolder/c/chandras_pyreling.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chandras_pyreling.txt
rename to forge-gui/res/cardsfolder/c/chandras_pyreling.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chromatic_orrery.txt b/forge-gui/res/cardsfolder/c/chromatic_orrery.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chromatic_orrery.txt
rename to forge-gui/res/cardsfolder/c/chromatic_orrery.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/chrome_replicator.txt b/forge-gui/res/cardsfolder/c/chrome_replicator.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/chrome_replicator.txt
rename to forge-gui/res/cardsfolder/c/chrome_replicator.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/conclave_mentor.txt b/forge-gui/res/cardsfolder/c/conclave_mentor.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/conclave_mentor.txt
rename to forge-gui/res/cardsfolder/c/conclave_mentor.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/conspicuous_snoop.txt b/forge-gui/res/cardsfolder/c/conspicuous_snoop.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/conspicuous_snoop.txt
rename to forge-gui/res/cardsfolder/c/conspicuous_snoop.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/crypt_lurker.txt b/forge-gui/res/cardsfolder/c/crypt_lurker.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/crypt_lurker.txt
rename to forge-gui/res/cardsfolder/c/crypt_lurker.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/daybreak_charger.txt b/forge-gui/res/cardsfolder/d/daybreak_charger.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/daybreak_charger.txt
rename to forge-gui/res/cardsfolder/d/daybreak_charger.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/demonic_embrace.txt b/forge-gui/res/cardsfolder/d/demonic_embrace.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/demonic_embrace.txt
rename to forge-gui/res/cardsfolder/d/demonic_embrace.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/dire_fleet_warmonger.txt b/forge-gui/res/cardsfolder/d/dire_fleet_warmonger.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/dire_fleet_warmonger.txt
rename to forge-gui/res/cardsfolder/d/dire_fleet_warmonger.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/discontinuity.txt b/forge-gui/res/cardsfolder/d/discontinuity.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/discontinuity.txt
rename to forge-gui/res/cardsfolder/d/discontinuity.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/double_vision.txt b/forge-gui/res/cardsfolder/d/double_vision.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/double_vision.txt
rename to forge-gui/res/cardsfolder/d/double_vision.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/drowsing_tyrannodon.txt b/forge-gui/res/cardsfolder/d/drowsing_tyrannodon.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/drowsing_tyrannodon.txt
rename to forge-gui/res/cardsfolder/d/drowsing_tyrannodon.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/elder_gargaroth.txt b/forge-gui/res/cardsfolder/e/elder_gargaroth.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/elder_gargaroth.txt
rename to forge-gui/res/cardsfolder/e/elder_gargaroth.txt
diff --git a/forge-gui/res/cardsfolder/e/eliminate.txt b/forge-gui/res/cardsfolder/e/eliminate.txt
new file mode 100644
index 00000000000..169a5a30d87
--- /dev/null
+++ b/forge-gui/res/cardsfolder/e/eliminate.txt
@@ -0,0 +1,5 @@
+Name:Eliminate
+ManaCost:1 B
+Types:Instant
+A:SP$ Destroy | Cost$ 1 B | ValidTgts$ Creature+cmcLE3,Planeswalker+cmcLE3 | TgtPrompt$ Select target creature or planeswalker with converted mana cost 3 or less | SpellDescription$ Destroy target creature or planeswalker with converted mana cost 3 or less.
+Oracle:Destroy target creature or planeswalker with converted mana cost 3 or less.
diff --git a/forge-gui/res/cardsfolder/upcoming/enthralling_hold.txt b/forge-gui/res/cardsfolder/e/enthralling_hold.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/enthralling_hold.txt
rename to forge-gui/res/cardsfolder/e/enthralling_hold.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/experimental_overload.txt b/forge-gui/res/cardsfolder/e/experimental_overload.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/experimental_overload.txt
rename to forge-gui/res/cardsfolder/e/experimental_overload.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/falconer_adept.txt b/forge-gui/res/cardsfolder/f/falconer_adept.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/falconer_adept.txt
rename to forge-gui/res/cardsfolder/f/falconer_adept.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/feline_sovereign.txt b/forge-gui/res/cardsfolder/f/feline_sovereign.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/feline_sovereign.txt
rename to forge-gui/res/cardsfolder/f/feline_sovereign.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/fiery_emancipation.txt b/forge-gui/res/cardsfolder/f/fiery_emancipation.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/fiery_emancipation.txt
rename to forge-gui/res/cardsfolder/f/fiery_emancipation.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/finishing_blow.txt b/forge-gui/res/cardsfolder/f/finishing_blow.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/finishing_blow.txt
rename to forge-gui/res/cardsfolder/f/finishing_blow.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/forgotten_sentinel.txt b/forge-gui/res/cardsfolder/f/forgotten_sentinel.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/forgotten_sentinel.txt
rename to forge-gui/res/cardsfolder/f/forgotten_sentinel.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/frantic_inventory.txt b/forge-gui/res/cardsfolder/f/frantic_inventory.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/frantic_inventory.txt
rename to forge-gui/res/cardsfolder/f/frantic_inventory.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/fungal_rebirth.txt b/forge-gui/res/cardsfolder/f/fungal_rebirth.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/fungal_rebirth.txt
rename to forge-gui/res/cardsfolder/f/fungal_rebirth.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/gadrak_the_crown_scourge.txt b/forge-gui/res/cardsfolder/g/gadrak_the_crown_scourge.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/gadrak_the_crown_scourge.txt
rename to forge-gui/res/cardsfolder/g/gadrak_the_crown_scourge.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/gale_swooper.txt b/forge-gui/res/cardsfolder/g/gale_swooper.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/gale_swooper.txt
rename to forge-gui/res/cardsfolder/g/gale_swooper.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruk_savage_herald.txt b/forge-gui/res/cardsfolder/g/garruk_savage_herald.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruk_savage_herald.txt
rename to forge-gui/res/cardsfolder/g/garruk_savage_herald.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruk_unleashed.txt b/forge-gui/res/cardsfolder/g/garruk_unleashed.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruk_unleashed.txt
rename to forge-gui/res/cardsfolder/g/garruk_unleashed.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruks_gorehorn.txt b/forge-gui/res/cardsfolder/g/garruks_gorehorn.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruks_gorehorn.txt
rename to forge-gui/res/cardsfolder/g/garruks_gorehorn.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruks_harbinger.txt b/forge-gui/res/cardsfolder/g/garruks_harbinger.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruks_harbinger.txt
rename to forge-gui/res/cardsfolder/g/garruks_harbinger.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruks_uprising.txt b/forge-gui/res/cardsfolder/g/garruks_uprising.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruks_uprising.txt
rename to forge-gui/res/cardsfolder/g/garruks_uprising.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/garruks_warsteed.txt b/forge-gui/res/cardsfolder/g/garruks_warsteed.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/garruks_warsteed.txt
rename to forge-gui/res/cardsfolder/g/garruks_warsteed.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/ghostly_pilferer.txt b/forge-gui/res/cardsfolder/g/ghostly_pilferer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/ghostly_pilferer.txt
rename to forge-gui/res/cardsfolder/g/ghostly_pilferer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/gloom_sower.txt b/forge-gui/res/cardsfolder/g/gloom_sower.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/gloom_sower.txt
rename to forge-gui/res/cardsfolder/g/gloom_sower.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/gnarled_sage.txt b/forge-gui/res/cardsfolder/g/gnarled_sage.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/gnarled_sage.txt
rename to forge-gui/res/cardsfolder/g/gnarled_sage.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/goblin_wizardry.txt b/forge-gui/res/cardsfolder/g/goblin_wizardry.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/goblin_wizardry.txt
rename to forge-gui/res/cardsfolder/g/goblin_wizardry.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/goremand.txt b/forge-gui/res/cardsfolder/g/goremand.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/goremand.txt
rename to forge-gui/res/cardsfolder/g/goremand.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/griffin_aerie.txt b/forge-gui/res/cardsfolder/g/griffin_aerie.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/griffin_aerie.txt
rename to forge-gui/res/cardsfolder/g/griffin_aerie.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/havoc_jester.txt b/forge-gui/res/cardsfolder/h/havoc_jester.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/havoc_jester.txt
rename to forge-gui/res/cardsfolder/h/havoc_jester.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/heartfire_lmmolator.txt b/forge-gui/res/cardsfolder/h/heartfire_lmmolator.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/heartfire_lmmolator.txt
rename to forge-gui/res/cardsfolder/h/heartfire_lmmolator.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/hellkite_punisher.txt b/forge-gui/res/cardsfolder/h/hellkite_punisher.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/hellkite_punisher.txt
rename to forge-gui/res/cardsfolder/h/hellkite_punisher.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/historian_of_zhalfir.txt b/forge-gui/res/cardsfolder/h/historian_of_zhalfir.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/historian_of_zhalfir.txt
rename to forge-gui/res/cardsfolder/h/historian_of_zhalfir.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/hobblefiend.txt b/forge-gui/res/cardsfolder/h/hobblefiend.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/hobblefiend.txt
rename to forge-gui/res/cardsfolder/h/hobblefiend.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/hooded_blightfang.txt b/forge-gui/res/cardsfolder/h/hooded_blightfang.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/hooded_blightfang.txt
rename to forge-gui/res/cardsfolder/h/hooded_blightfang.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/hunters_edge.txt b/forge-gui/res/cardsfolder/h/hunters_edge.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/hunters_edge.txt
rename to forge-gui/res/cardsfolder/h/hunters_edge.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/idol_of_endurance.txt b/forge-gui/res/cardsfolder/i/idol_of_endurance.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/idol_of_endurance.txt
rename to forge-gui/res/cardsfolder/i/idol_of_endurance.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/igneous_cur.txt b/forge-gui/res/cardsfolder/i/igneous_cur.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/igneous_cur.txt
rename to forge-gui/res/cardsfolder/i/igneous_cur.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/indulging_patrician.txt b/forge-gui/res/cardsfolder/i/indulging_patrician.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/indulging_patrician.txt
rename to forge-gui/res/cardsfolder/i/indulging_patrician.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/invigorating_surge.txt b/forge-gui/res/cardsfolder/i/invigorating_surge.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/invigorating_surge.txt
rename to forge-gui/res/cardsfolder/i/invigorating_surge.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/jolrael_mwonvuli_recluse.txt b/forge-gui/res/cardsfolder/j/jolrael_mwonvuli_recluse.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/jolrael_mwonvuli_recluse.txt
rename to forge-gui/res/cardsfolder/j/jolrael_mwonvuli_recluse.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/kaervek_the_spiteful.txt b/forge-gui/res/cardsfolder/k/kaervek_the_spiteful.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/kaervek_the_spiteful.txt
rename to forge-gui/res/cardsfolder/k/kaervek_the_spiteful.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/keen_glidemaster.txt b/forge-gui/res/cardsfolder/k/keen_glidemaster.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/keen_glidemaster.txt
rename to forge-gui/res/cardsfolder/k/keen_glidemaster.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/keral_keep_disciples.txt b/forge-gui/res/cardsfolder/k/keral_keep_disciples.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/keral_keep_disciples.txt
rename to forge-gui/res/cardsfolder/k/keral_keep_disciples.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/kinetic_augur.txt b/forge-gui/res/cardsfolder/k/kinetic_augur.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/kinetic_augur.txt
rename to forge-gui/res/cardsfolder/k/kinetic_augur.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/leafkin_avenger.txt b/forge-gui/res/cardsfolder/l/leafkin_avenger.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/leafkin_avenger.txt
rename to forge-gui/res/cardsfolder/l/leafkin_avenger.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/library_larcenist.txt b/forge-gui/res/cardsfolder/l/library_larcenist.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/library_larcenist.txt
rename to forge-gui/res/cardsfolder/l/library_larcenist.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/light_of_promise.txt b/forge-gui/res/cardsfolder/l/light_of_promise.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/light_of_promise.txt
rename to forge-gui/res/cardsfolder/l/light_of_promise.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/liliana_death_mage.txt b/forge-gui/res/cardsfolder/l/liliana_death_mage.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/liliana_death_mage.txt
rename to forge-gui/res/cardsfolder/l/liliana_death_mage.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/liliana_waker_of_the_dead.txt b/forge-gui/res/cardsfolder/l/liliana_waker_of_the_dead.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/liliana_waker_of_the_dead.txt
rename to forge-gui/res/cardsfolder/l/liliana_waker_of_the_dead.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lilianas_devotee.txt b/forge-gui/res/cardsfolder/l/lilianas_devotee.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lilianas_devotee.txt
rename to forge-gui/res/cardsfolder/l/lilianas_devotee.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lilianas_scorn.txt b/forge-gui/res/cardsfolder/l/lilianas_scorn.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lilianas_scorn.txt
rename to forge-gui/res/cardsfolder/l/lilianas_scorn.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lilianas_scrounger.txt b/forge-gui/res/cardsfolder/l/lilianas_scrounger.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lilianas_scrounger.txt
rename to forge-gui/res/cardsfolder/l/lilianas_scrounger.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lilianas_standard_bearer.txt b/forge-gui/res/cardsfolder/l/lilianas_standard_bearer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lilianas_standard_bearer.txt
rename to forge-gui/res/cardsfolder/l/lilianas_standard_bearer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lilianas_steward.txt b/forge-gui/res/cardsfolder/l/lilianas_steward.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lilianas_steward.txt
rename to forge-gui/res/cardsfolder/l/lilianas_steward.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/llanowar_visionary.txt b/forge-gui/res/cardsfolder/l/llanowar_visionary.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/llanowar_visionary.txt
rename to forge-gui/res/cardsfolder/l/llanowar_visionary.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/lofty_denial.txt b/forge-gui/res/cardsfolder/l/lofty_denial.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/lofty_denial.txt
rename to forge-gui/res/cardsfolder/l/lofty_denial.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/malefic_scythe.txt b/forge-gui/res/cardsfolder/m/malefic_scythe.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/malefic_scythe.txt
rename to forge-gui/res/cardsfolder/m/malefic_scythe.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/mangara_the_diplomat.txt b/forge-gui/res/cardsfolder/m/mangara_the_diplomat.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/mangara_the_diplomat.txt
rename to forge-gui/res/cardsfolder/m/mangara_the_diplomat.txt
diff --git a/forge-gui/res/cardsfolder/m/mask_of_the_mimic.txt b/forge-gui/res/cardsfolder/m/mask_of_the_mimic.txt
index 87ad91674ec..259f64277df 100644
--- a/forge-gui/res/cardsfolder/m/mask_of_the_mimic.txt
+++ b/forge-gui/res/cardsfolder/m/mask_of_the_mimic.txt
@@ -1,7 +1,7 @@
Name:Mask of the Mimic
ManaCost:U
Types:Instant
-A:SP$ Pump | Cost$ U Sac<1/Creature> | ValidTgts$ Creature.nonToken | TgtPrompt$ Select target nontoken creature | Static$ True | StackDescription$ None | SubAbility$ DBChangeZone
+A:SP$ Pump | Cost$ U Sac<1/Creature> | ValidTgts$ Creature.nonToken | TgtPrompt$ Select target nontoken creature | StackDescription$ None | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Targeted.sameName | ChangeNum$ 1 | Hidden$ True | StackDescription$ Search your library for a card with the same name as target nontoken creature and put that card onto the battlefield. | SpellDescription$ As an additional cost to cast CARDNAME, sacrifice a creature. Search your library for a card with the same name as target nontoken creature and put that card onto the battlefield. Then shuffle your library.
AI:RemoveDeck:All
SVar:Picture:http://www.wizards.com/global/images/magic/general/mask_of_the_mimic.jpg
diff --git a/forge-gui/res/cardsfolder/upcoming/masked_blackguard.txt b/forge-gui/res/cardsfolder/m/masked_blackguard.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/masked_blackguard.txt
rename to forge-gui/res/cardsfolder/m/masked_blackguard.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/mazemind_tome.txt b/forge-gui/res/cardsfolder/m/mazemind_tome.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/mazemind_tome.txt
rename to forge-gui/res/cardsfolder/m/mazemind_tome.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/miscast.txt b/forge-gui/res/cardsfolder/m/miscast.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/miscast.txt
rename to forge-gui/res/cardsfolder/m/miscast.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/mistral_singer.txt b/forge-gui/res/cardsfolder/m/mistral_singer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/mistral_singer.txt
rename to forge-gui/res/cardsfolder/m/mistral_singer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/mystic_skyfish.txt b/forge-gui/res/cardsfolder/m/mystic_skyfish.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/mystic_skyfish.txt
rename to forge-gui/res/cardsfolder/m/mystic_skyfish.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/necromentia.txt b/forge-gui/res/cardsfolder/n/necromentia.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/necromentia.txt
rename to forge-gui/res/cardsfolder/n/necromentia.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/niambi_esteemed_speaker.txt b/forge-gui/res/cardsfolder/n/niambi_esteemed_speaker.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/niambi_esteemed_speaker.txt
rename to forge-gui/res/cardsfolder/n/niambi_esteemed_speaker.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/nine_lives.txt b/forge-gui/res/cardsfolder/n/nine_lives.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/nine_lives.txt
rename to forge-gui/res/cardsfolder/n/nine_lives.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/obsessive_stitcher.txt b/forge-gui/res/cardsfolder/o/obsessive_stitcher.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/obsessive_stitcher.txt
rename to forge-gui/res/cardsfolder/o/obsessive_stitcher.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/ornery_dilophosaur.txt b/forge-gui/res/cardsfolder/o/ornery_dilophosaur.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/ornery_dilophosaur.txt
rename to forge-gui/res/cardsfolder/o/ornery_dilophosaur.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/pack_leader.txt b/forge-gui/res/cardsfolder/p/pack_leader.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/pack_leader.txt
rename to forge-gui/res/cardsfolder/p/pack_leader.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/peer_into_the_abyss.txt b/forge-gui/res/cardsfolder/p/peer_into_the_abyss.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/peer_into_the_abyss.txt
rename to forge-gui/res/cardsfolder/p/peer_into_the_abyss.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/pestilent_haze.txt b/forge-gui/res/cardsfolder/p/pestilent_haze.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/pestilent_haze.txt
rename to forge-gui/res/cardsfolder/p/pestilent_haze.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/predatory_wurm.txt b/forge-gui/res/cardsfolder/p/predatory_wurm.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/predatory_wurm.txt
rename to forge-gui/res/cardsfolder/p/predatory_wurm.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/pridemalkin.txt b/forge-gui/res/cardsfolder/p/pridemalkin.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/pridemalkin.txt
rename to forge-gui/res/cardsfolder/p/pridemalkin.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/primal_might.txt b/forge-gui/res/cardsfolder/p/primal_might.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/primal_might.txt
rename to forge-gui/res/cardsfolder/p/primal_might.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/pursued_whale.txt b/forge-gui/res/cardsfolder/p/pursued_whale.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/pursued_whale.txt
rename to forge-gui/res/cardsfolder/p/pursued_whale.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/radha_heart_of_keld.txt b/forge-gui/res/cardsfolder/r/radha_heart_of_keld.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/radha_heart_of_keld.txt
rename to forge-gui/res/cardsfolder/r/radha_heart_of_keld.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/rambunctious_mutt.txt b/forge-gui/res/cardsfolder/r/rambunctious_mutt.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/rambunctious_mutt.txt
rename to forge-gui/res/cardsfolder/r/rambunctious_mutt.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/read_the_tides.txt b/forge-gui/res/cardsfolder/r/read_the_tides.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/read_the_tides.txt
rename to forge-gui/res/cardsfolder/r/read_the_tides.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/rin_and_seri_inseparable.txt b/forge-gui/res/cardsfolder/r/rin_and_seri_inseparable.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/rin_and_seri_inseparable.txt
rename to forge-gui/res/cardsfolder/r/rin_and_seri_inseparable.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/rise_again.txt b/forge-gui/res/cardsfolder/r/rise_again.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/rise_again.txt
rename to forge-gui/res/cardsfolder/r/rise_again.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/roaming_ghostlight.txt b/forge-gui/res/cardsfolder/r/roaming_ghostlight.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/roaming_ghostlight.txt
rename to forge-gui/res/cardsfolder/r/roaming_ghostlight.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/rookie_mistake.txt b/forge-gui/res/cardsfolder/r/rookie_mistake.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/rookie_mistake.txt
rename to forge-gui/res/cardsfolder/r/rookie_mistake.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/rousing_read.txt b/forge-gui/res/cardsfolder/r/rousing_read.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/rousing_read.txt
rename to forge-gui/res/cardsfolder/r/rousing_read.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/run_afoul.txt b/forge-gui/res/cardsfolder/r/run_afoul.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/run_afoul.txt
rename to forge-gui/res/cardsfolder/r/run_afoul.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sabertooth_mauler.txt b/forge-gui/res/cardsfolder/s/sabertooth_mauler.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sabertooth_mauler.txt
rename to forge-gui/res/cardsfolder/s/sabertooth_mauler.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_all.txt b/forge-gui/res/cardsfolder/s/sanctum_of_all.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_all.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_all.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_calm_waters.txt b/forge-gui/res/cardsfolder/s/sanctum_of_calm_waters.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_calm_waters.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_calm_waters.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_fruitful_harvest.txt b/forge-gui/res/cardsfolder/s/sanctum_of_fruitful_harvest.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_fruitful_harvest.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_fruitful_harvest.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_shattered_heights.txt b/forge-gui/res/cardsfolder/s/sanctum_of_shattered_heights.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_shattered_heights.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_shattered_heights.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_stone_fangs.txt b/forge-gui/res/cardsfolder/s/sanctum_of_stone_fangs.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_stone_fangs.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_stone_fangs.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanctum_of_tranquil_light.txt b/forge-gui/res/cardsfolder/s/sanctum_of_tranquil_light.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanctum_of_tranquil_light.txt
rename to forge-gui/res/cardsfolder/s/sanctum_of_tranquil_light.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sanguine_indulgence.txt b/forge-gui/res/cardsfolder/s/sanguine_indulgence.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sanguine_indulgence.txt
rename to forge-gui/res/cardsfolder/s/sanguine_indulgence.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/seasoned_hallowblade.txt b/forge-gui/res/cardsfolder/s/seasoned_hallowblade.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/seasoned_hallowblade.txt
rename to forge-gui/res/cardsfolder/s/seasoned_hallowblade.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/secure_the_scene.txt b/forge-gui/res/cardsfolder/s/secure_the_scene.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/secure_the_scene.txt
rename to forge-gui/res/cardsfolder/s/secure_the_scene.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/see_the_truth.txt b/forge-gui/res/cardsfolder/s/see_the_truth.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/see_the_truth.txt
rename to forge-gui/res/cardsfolder/s/see_the_truth.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/selfless_savior.txt b/forge-gui/res/cardsfolder/s/selfless_savior.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/selfless_savior.txt
rename to forge-gui/res/cardsfolder/s/selfless_savior.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/shacklegeist.txt b/forge-gui/res/cardsfolder/s/shacklegeist.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/shacklegeist.txt
rename to forge-gui/res/cardsfolder/s/shacklegeist.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/shipwreck_dowser.txt b/forge-gui/res/cardsfolder/s/shipwreck_dowser.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/shipwreck_dowser.txt
rename to forge-gui/res/cardsfolder/s/shipwreck_dowser.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/siege_striker.txt b/forge-gui/res/cardsfolder/s/siege_striker.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/siege_striker.txt
rename to forge-gui/res/cardsfolder/s/siege_striker.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sigiled_contender.txt b/forge-gui/res/cardsfolder/s/sigiled_contender.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sigiled_contender.txt
rename to forge-gui/res/cardsfolder/s/sigiled_contender.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/silversmote_ghoul.txt b/forge-gui/res/cardsfolder/s/silversmote_ghoul.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/silversmote_ghoul.txt
rename to forge-gui/res/cardsfolder/s/silversmote_ghoul.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/skyway_sniper.txt b/forge-gui/res/cardsfolder/s/skyway_sniper.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/skyway_sniper.txt
rename to forge-gui/res/cardsfolder/s/skyway_sniper.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/soul_sear.txt b/forge-gui/res/cardsfolder/s/soul_sear.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/soul_sear.txt
rename to forge-gui/res/cardsfolder/s/soul_sear.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sparkhunter_masticore.txt b/forge-gui/res/cardsfolder/s/sparkhunter_masticore.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sparkhunter_masticore.txt
rename to forge-gui/res/cardsfolder/s/sparkhunter_masticore.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/speaker_of_the_heavens.txt b/forge-gui/res/cardsfolder/s/speaker_of_the_heavens.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/speaker_of_the_heavens.txt
rename to forge-gui/res/cardsfolder/s/speaker_of_the_heavens.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/spined_megalodon.txt b/forge-gui/res/cardsfolder/s/spined_megalodon.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/spined_megalodon.txt
rename to forge-gui/res/cardsfolder/s/spined_megalodon.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/spirit_of_malevolence.txt b/forge-gui/res/cardsfolder/s/spirit_of_malevolence.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/spirit_of_malevolence.txt
rename to forge-gui/res/cardsfolder/s/spirit_of_malevolence.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sporeweb_weaver.txt b/forge-gui/res/cardsfolder/s/sporeweb_weaver.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sporeweb_weaver.txt
rename to forge-gui/res/cardsfolder/s/sporeweb_weaver.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/staunch_shieldmate.txt b/forge-gui/res/cardsfolder/s/staunch_shieldmate.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/staunch_shieldmate.txt
rename to forge-gui/res/cardsfolder/s/staunch_shieldmate.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/storm_caller.txt b/forge-gui/res/cardsfolder/s/storm_caller.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/storm_caller.txt
rename to forge-gui/res/cardsfolder/s/storm_caller.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/stormwing_entity.txt b/forge-gui/res/cardsfolder/s/stormwing_entity.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/stormwing_entity.txt
rename to forge-gui/res/cardsfolder/s/stormwing_entity.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/subira_tulzidi_caravanner.txt b/forge-gui/res/cardsfolder/s/subira_tulzidi_caravanner.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/subira_tulzidi_caravanner.txt
rename to forge-gui/res/cardsfolder/s/subira_tulzidi_caravanner.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/sublime_epiphany.txt b/forge-gui/res/cardsfolder/s/sublime_epiphany.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/sublime_epiphany.txt
rename to forge-gui/res/cardsfolder/s/sublime_epiphany.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/swift_response.txt b/forge-gui/res/cardsfolder/s/swift_response.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/swift_response.txt
rename to forge-gui/res/cardsfolder/s/swift_response.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferi_master_of_time.txt b/forge-gui/res/cardsfolder/t/teferi_master_of_time.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferi_master_of_time.txt
rename to forge-gui/res/cardsfolder/t/teferi_master_of_time.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferi_timeless_voyager.txt b/forge-gui/res/cardsfolder/t/teferi_timeless_voyager.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferi_timeless_voyager.txt
rename to forge-gui/res/cardsfolder/t/teferi_timeless_voyager.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferis_ageless_insight.txt b/forge-gui/res/cardsfolder/t/teferis_ageless_insight.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferis_ageless_insight.txt
rename to forge-gui/res/cardsfolder/t/teferis_ageless_insight.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferis_protege.txt b/forge-gui/res/cardsfolder/t/teferis_protege.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferis_protege.txt
rename to forge-gui/res/cardsfolder/t/teferis_protege.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferis_tutelage.txt b/forge-gui/res/cardsfolder/t/teferis_tutelage.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferis_tutelage.txt
rename to forge-gui/res/cardsfolder/t/teferis_tutelage.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/teferis_wavecaster.txt b/forge-gui/res/cardsfolder/t/teferis_wavecaster.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/teferis_wavecaster.txt
rename to forge-gui/res/cardsfolder/t/teferis_wavecaster.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/tempered_veteran.txt b/forge-gui/res/cardsfolder/t/tempered_veteran.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/tempered_veteran.txt
rename to forge-gui/res/cardsfolder/t/tempered_veteran.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/terror_of_the_peaks.txt b/forge-gui/res/cardsfolder/t/terror_of_the_peaks.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/terror_of_the_peaks.txt
rename to forge-gui/res/cardsfolder/t/terror_of_the_peaks.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/thieves_guild_enforcer.txt b/forge-gui/res/cardsfolder/t/thieves_guild_enforcer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/thieves_guild_enforcer.txt
rename to forge-gui/res/cardsfolder/t/thieves_guild_enforcer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/tide_skimmer.txt b/forge-gui/res/cardsfolder/t/tide_skimmer.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/tide_skimmer.txt
rename to forge-gui/res/cardsfolder/t/tide_skimmer.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/tolarian_kraken.txt b/forge-gui/res/cardsfolder/t/tolarian_kraken.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/tolarian_kraken.txt
rename to forge-gui/res/cardsfolder/t/tolarian_kraken.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/tome_anima.txt b/forge-gui/res/cardsfolder/t/tome_anima.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/tome_anima.txt
rename to forge-gui/res/cardsfolder/t/tome_anima.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/track_down.txt b/forge-gui/res/cardsfolder/t/track_down.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/track_down.txt
rename to forge-gui/res/cardsfolder/t/track_down.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/traitorous_greed.txt b/forge-gui/res/cardsfolder/t/traitorous_greed.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/traitorous_greed.txt
rename to forge-gui/res/cardsfolder/t/traitorous_greed.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/transmogrify.txt b/forge-gui/res/cardsfolder/t/transmogrify.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/transmogrify.txt
rename to forge-gui/res/cardsfolder/t/transmogrify.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/trufflesnout.txt b/forge-gui/res/cardsfolder/t/trufflesnout.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/trufflesnout.txt
rename to forge-gui/res/cardsfolder/t/trufflesnout.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/twinblade_assassins.txt b/forge-gui/res/cardsfolder/t/twinblade_assassins.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/twinblade_assassins.txt
rename to forge-gui/res/cardsfolder/t/twinblade_assassins.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/unleash_fury.txt b/forge-gui/res/cardsfolder/u/unleash_fury.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/unleash_fury.txt
rename to forge-gui/res/cardsfolder/u/unleash_fury.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/ormos_archive_keeper.txt b/forge-gui/res/cardsfolder/upcoming/JMP/ormos_archive_keeper.txt
new file mode 100644
index 00000000000..a8162c859d5
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/ormos_archive_keeper.txt
@@ -0,0 +1,10 @@
+Name:Ormos, Archive Keeper
+ManaCost:4 U U
+Types:Legendary Creature Sphinx
+PT:5/5
+K:Flying
+R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ You | IsPresent$ Card.YouOwn | PresentZone$ Library | PresentCompare$ EQ0 | ReplaceWith$ AddCounters | Description$ If you would draw a card while your library has no cards in it, instead put five +1/+1 counters on CARDNAME.
+SVar:AddCounters:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 5 | Defined$ Self
+A:AB$ Draw | Cost$ 1 U U Discard<3/DifferentNames> | NumCards$ 5 | SpellDescription$ Draw five cards.
+AI:RemoveDeck:All
+Oracle:Flying\nIf you would draw a card while your library has no cards in it, instead put five +1/+1 counters on Ormos, Archive Keeper.\n{1}{U}{U}, Discard three cards with different names: Draw five cards.
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/scholar_of_the_lost_trove.txt b/forge-gui/res/cardsfolder/upcoming/JMP/scholar_of_the_lost_trove.txt
new file mode 100755
index 00000000000..ec4c783317c
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/scholar_of_the_lost_trove.txt
@@ -0,0 +1,10 @@
+Name:Scholar of the Lost Trove
+ManaCost:5 U U
+Types:Creature Sphinx
+PT:5/5
+K:Flying
+T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPlay | TriggerDescription$ When CARDNAME enters the battlefield, you may cast target instant, sorcery, or artifact card from your graveyard without paying its mana cost. If an instant or sorcery spell cast this way would be put into your graveyard this turn, exile it instead.
+SVar:TrigPlay:DB$ Play | ValidTgts$ Instant.YouOwn,Sorcery.YouOwn,Artifact.YouOwn | TgtPrompt$ Choose target instant, sorcery, or artifact card in your graveyard | TgtZone$ Graveyard | WithoutManaCost$ True | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell
+DeckHints:Type$Instant|Sorcery|Artifact
+DeckHas:Ability$Graveyard
+Oracle:Flying\nWhen Scholar of the Lost Trove enters the battlefield, you may cast target instant, sorcery, or artifact card from your graveyard without paying its mana cost. If an instant or sorcery spell cast this way would be put into your graveyard this turn, exile it instead.
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/sethron_hurloon_general.txt b/forge-gui/res/cardsfolder/upcoming/JMP/sethron_hurloon_general.txt
new file mode 100755
index 00000000000..b617c2d6be3
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/sethron_hurloon_general.txt
@@ -0,0 +1,11 @@
+Name:Sethron, Hurloon General
+ManaCost:3 R R
+Types:Legendary Creature Minotaur Warrior
+PT:4/4
+T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME or another nontoken Minotaur enters enters the battlefield under your control, create a 2/3 red Minotaur creature token.
+T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Minotaur.nonToken+Other+YouCtrl | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another nontoken Minotaur enters the battlefield under your control, create a 2/3 red Minotaur creature token.
+SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ r_2_3_minotaur | TokenOwner$ You
+A:AB$ PumpAll | Cost$ 2 BR | ValidCards$ Minotaur.YouCtrl | NumAtt$ +1 | KW$ Menace & Haste | SpellDescription$ Minotaurs you control get +1/+0 and gain menace and haste until end of turn.
+SVar:PlayMain1:TRUE
+DeckNeeds:Type$Minotaur
+Oracle:Whenever Sethron, Hurloon General or another nontoken Minotaur enters the battlefield under your control, create a 2/3 red Minotaur creature token.\n{2}{B/R}: Minotaurs you control get +1/+0 and gain menace and haste until end of turn. ({B/R} can be paid with either {B} or {R}.)
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/spiteful_prankster.txt b/forge-gui/res/cardsfolder/upcoming/JMP/spiteful_prankster.txt
new file mode 100755
index 00000000000..f5177ac9399
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/spiteful_prankster.txt
@@ -0,0 +1,8 @@
+Name:Spiteful Prankster
+ManaCost:2 R
+Types:Creature Devil
+PT:3/2
+S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, CARDNAME has first strike.
+T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever another creature dies, CARDNAME deals 1 damage to target player or planeswalker.
+SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | NumDmg$ 1
+Oracle:As long as it's your turn, Spiteful Prankster has first strike.\nWhenever another creature dies, Spiteful Prankster deals 1 damage to target player or planeswalker.
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/steel_plume_marshal.txt b/forge-gui/res/cardsfolder/upcoming/JMP/steel_plume_marshal.txt
new file mode 100755
index 00000000000..59884879c75
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/steel_plume_marshal.txt
@@ -0,0 +1,10 @@
+Name:Steel-Plume Marshal
+ManaCost:3 W W
+Types:Creature Bird Soldier
+PT:3/3
+K:Flying
+T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ When CARDNAME attacks, other attacking creatures you control with flying get +2/+2 until end of turn.
+SVar:TrigPump:DB$ PumpAll | ValidCards$ Creature.attacking+withFlying+Other+YouCtrl | NumAtt$ 2 | NumDef$ 2
+DeckHints:Keyword$Flying
+SVar:HasAttackEffect:TRUE
+Oracle:Flying\nWhenever Steel-Plume Marshal attacks, other attacking creatures you control with flying get +2/+2 until end of turn.
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/stone_haven_pilgrim.txt b/forge-gui/res/cardsfolder/upcoming/JMP/stone_haven_pilgrim.txt
new file mode 100755
index 00000000000..af731201968
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/stone_haven_pilgrim.txt
@@ -0,0 +1,9 @@
+Name:Stone Haven Pilgrim
+ManaCost:1 W
+Types:Creature Kor Cleric
+PT:2/2
+T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | IsPresent$ Artifact.YouCtrl,Enchantment.YouCtrl | TriggerDescription$ Whenever CARDNAME attacks, if you control an artifact or enchantment, CARDNAME gets +1/+1 and gains lifelink until end of turn.
+SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ 1 | KW$ Lifelink
+SVar:BuffedBy:Artifact,Enchantment
+DeckHints:Type$Artifact|Enchantment
+Oracle:Whenever Stone Haven Pilgrim attacks, if you control an artifact or enchantment, Stone Haven Pilgrim gets +1/+1 and gains lifelink until end of turn.
diff --git a/forge-gui/res/cardsfolder/upcoming/JMP/supply_runners.txt b/forge-gui/res/cardsfolder/upcoming/JMP/supply_runners.txt
new file mode 100755
index 00000000000..3bc68f4193f
--- /dev/null
+++ b/forge-gui/res/cardsfolder/upcoming/JMP/supply_runners.txt
@@ -0,0 +1,8 @@
+Name:Supply Runners
+ManaCost:4 W
+Types:Creature Dog
+PT:2/2
+T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounters | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each other creature you control.
+SVar:TrigPutCounters:DB$ PutCounterAll | ValidCards$ Creature.Other+YouCtrl | CounterType$ P1P1 | CounterNum$ 1
+DeckHas:Ability$Counters
+Oracle:When Supply Runners enters the battlefield, put a +1/+1 counter on each other creature you control.
diff --git a/forge-gui/res/cardsfolder/upcoming/eliminate.txt b/forge-gui/res/cardsfolder/upcoming/eliminate.txt
deleted file mode 100644
index 248edb37a4d..00000000000
--- a/forge-gui/res/cardsfolder/upcoming/eliminate.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Name:Eliminate
-ManaCost:1 B
-Types:Instant
-A:SP$ Destroy | Cost$ 1 B | ValidTgts$ Creature,Planeswalker+cmcLE3 | TgtPrompt$ Select target creature or planeswalker with converted mana cost 3 or less | SpellDescription$ Destroy target creature or planeswalker with converted mana cost 3 or less.
-Oracle:Destroy target creature or planeswalker with converted mana cost 3 or less.
diff --git a/forge-gui/res/cardsfolder/upcoming/valorous_steed.txt b/forge-gui/res/cardsfolder/v/valorous_steed.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/valorous_steed.txt
rename to forge-gui/res/cardsfolder/v/valorous_steed.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/village_rites.txt b/forge-gui/res/cardsfolder/v/village_rites.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/village_rites.txt
rename to forge-gui/res/cardsfolder/v/village_rites.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/vito_thorn_of_the_dusk_rose.txt b/forge-gui/res/cardsfolder/v/vito_thorn_of_the_dusk_rose.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/vito_thorn_of_the_dusk_rose.txt
rename to forge-gui/res/cardsfolder/v/vito_thorn_of_the_dusk_rose.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/volcanic_salvo.txt b/forge-gui/res/cardsfolder/v/volcanic_salvo.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/volcanic_salvo.txt
rename to forge-gui/res/cardsfolder/v/volcanic_salvo.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/waker_of_waves.txt b/forge-gui/res/cardsfolder/w/waker_of_waves.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/waker_of_waves.txt
rename to forge-gui/res/cardsfolder/w/waker_of_waves.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/warded_battlements.txt b/forge-gui/res/cardsfolder/w/warded_battlements.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/warded_battlements.txt
rename to forge-gui/res/cardsfolder/w/warded_battlements.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/warden_of_the_woods.txt b/forge-gui/res/cardsfolder/w/warden_of_the_woods.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/warden_of_the_woods.txt
rename to forge-gui/res/cardsfolder/w/warden_of_the_woods.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/watcher_of_the_spheres.txt b/forge-gui/res/cardsfolder/w/watcher_of_the_spheres.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/watcher_of_the_spheres.txt
rename to forge-gui/res/cardsfolder/w/watcher_of_the_spheres.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/wildwood_patrol.txt b/forge-gui/res/cardsfolder/w/wildwood_patrol.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/wildwood_patrol.txt
rename to forge-gui/res/cardsfolder/w/wildwood_patrol.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/wildwood_scourge.txt b/forge-gui/res/cardsfolder/w/wildwood_scourge.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/wildwood_scourge.txt
rename to forge-gui/res/cardsfolder/w/wildwood_scourge.txt
diff --git a/forge-gui/res/cardsfolder/upcoming/witchs_cauldron.txt b/forge-gui/res/cardsfolder/w/witchs_cauldron.txt
similarity index 100%
rename from forge-gui/res/cardsfolder/upcoming/witchs_cauldron.txt
rename to forge-gui/res/cardsfolder/w/witchs_cauldron.txt
diff --git a/forge-gui/res/deckgendecks/Pioneer.lda.dat b/forge-gui/res/deckgendecks/Pioneer.lda.dat
index 5f0fbcaac3e..552b1cbffd1 100644
Binary files a/forge-gui/res/deckgendecks/Pioneer.lda.dat and b/forge-gui/res/deckgendecks/Pioneer.lda.dat differ
diff --git a/forge-gui/res/deckgendecks/Pioneer.raw.dat b/forge-gui/res/deckgendecks/Pioneer.raw.dat
index 0c6221bcb1b..79bcd63297c 100644
Binary files a/forge-gui/res/deckgendecks/Pioneer.raw.dat and b/forge-gui/res/deckgendecks/Pioneer.raw.dat differ
diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat
index 1faf8cd03d0..69d65831173 100644
Binary files a/forge-gui/res/deckgendecks/Standard.lda.dat and b/forge-gui/res/deckgendecks/Standard.lda.dat differ
diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat
index d25714546dc..97aa2371fc3 100644
Binary files a/forge-gui/res/deckgendecks/Standard.raw.dat and b/forge-gui/res/deckgendecks/Standard.raw.dat differ
diff --git a/forge-gui/res/formats/Sanctioned/Modern.txt b/forge-gui/res/formats/Sanctioned/Modern.txt
index 34b10015297..b4540c801b9 100644
--- a/forge-gui/res/formats/Sanctioned/Modern.txt
+++ b/forge-gui/res/formats/Sanctioned/Modern.txt
@@ -3,5 +3,5 @@ Name:Modern
Order:103
Subtype:Modern
Type:Sanctioned
-Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19, G18, GRN, RNA, WAR, MH1, M20, ELD, THB, IKO
+Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19, G18, GRN, RNA, WAR, MH1, M20, ELD, THB, IKO, M21
Banned:Ancient Den; Birthing Pod; Blazing Shoal; Bridge from Below; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Faithless Looting; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hogaak, Arisen Necropolis; Hypergenesis; Krark-Clan Ironworks; Mental Misstep; Mox Opal; Mycosynth Lattice; 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; Skullclamp; Splinter Twin; Summer Bloom; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Vault of Whispers
diff --git a/forge-gui/res/formats/Sanctioned/Pioneer.txt b/forge-gui/res/formats/Sanctioned/Pioneer.txt
index 5f373573abe..925597ef998 100644
--- a/forge-gui/res/formats/Sanctioned/Pioneer.txt
+++ b/forge-gui/res/formats/Sanctioned/Pioneer.txt
@@ -3,5 +3,5 @@ Name:Pioneer
Order:102
Subtype:Pioneer
Type:Sanctioned
-Sets:RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, HOU, XLN, RIX, DOM, M19, GRN, RNA, WAR, M20, ELD, THB, IKO
+Sets:RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, HOU, XLN, RIX, DOM, M19, GRN, RNA, WAR, M20, ELD, THB, IKO, M21
Banned:Bloodstained Mire; Felidar Guardian; Field of the Dead; Flooded Strand; Leyline of Abundance; Nexus of Fate; Oath of Nissa; Oko, Thief of Crowns; Once Upon a Time; Polluted Delta; Smuggler's Copter; Veil of Summer; Windswept Heath; Wooded Foothills
diff --git a/forge-gui/res/formats/Sanctioned/Standard.txt b/forge-gui/res/formats/Sanctioned/Standard.txt
index 4f8e2354e69..23dd91fbd51 100644
--- a/forge-gui/res/formats/Sanctioned/Standard.txt
+++ b/forge-gui/res/formats/Sanctioned/Standard.txt
@@ -3,5 +3,5 @@ Name:Standard
Order:101
Subtype:Standard
Type:Sanctioned
-Sets:GRN, RNA, WAR, M20, ELD, THB, IKO
+Sets:GRN, RNA, WAR, M20, ELD, THB, IKO, M21
Banned:Agent of Treachery; Field of the Dead; Fires of Invention; Oko, Thief of Crowns; Once Upon a Time; Veil of Summer
diff --git a/forge-gui/res/languages/de-DE.properties b/forge-gui/res/languages/de-DE.properties
index 4e4572dfd63..0cdf412cac9 100644
--- a/forge-gui/res/languages/de-DE.properties
+++ b/forge-gui/res/languages/de-DE.properties
@@ -2174,6 +2174,7 @@ lblConquestName=Eroberung-Name
#HumanCostDecision.java
lblChooseXValueForCard={0} - Wähle Wert für X
lblSelectOneSameNameCardToDiscardAlreadyChosen=Wähle eine Karte mit dem gleichen Namen zum Abwerfen. Bereits gewählt:
+lblSelectOneDifferentNameCardToDiscardAlreadyChosen=Select one of the cards with a different name to discard. Already chosen:
lblSelectNMoreTargetTypeCardToDiscard=Wähle {0} weitere {1} zum Abwerfen.
lblDoYouWantCardDealNDamageToYou=Möchtest du, daß {0} dir {1} Schaden zufügt?
lblDrawNCardsConfirm=Ziehe {0} Karte(n)?
diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties
index 0a881a92763..7d1ef1cb8d7 100644
--- a/forge-gui/res/languages/en-US.properties
+++ b/forge-gui/res/languages/en-US.properties
@@ -2174,6 +2174,7 @@ lblConquestName=Conquest Name
#HumanCostDecision.java
lblChooseXValueForCard={0} - Choose a Value for X
lblSelectOneSameNameCardToDiscardAlreadyChosen=Select one of the cards with the same name to discard. Already chosen:
+lblSelectOneDifferentNameCardToDiscardAlreadyChosen=Select one of the cards with a different name to discard. Already chosen:
lblSelectNMoreTargetTypeCardToDiscard=Select {0} more {1} to discard.
lblDoYouWantCardDealNDamageToYou=Do you want {0} to deal {1} damage to you?
lblDrawNCardsConfirm=Draw {0} Card(s)?
diff --git a/forge-gui/res/languages/es-ES.properties b/forge-gui/res/languages/es-ES.properties
index 39069cb97a2..18c755dfa54 100644
--- a/forge-gui/res/languages/es-ES.properties
+++ b/forge-gui/res/languages/es-ES.properties
@@ -2174,6 +2174,7 @@ lblConquestName=Nombre de la Conquista
#HumanCostDecision.java
lblChooseXValueForCard={0} - Elige un Valor para X
lblSelectOneSameNameCardToDiscardAlreadyChosen=Selecciona una de las cartas con el mismo nombre para descartarla. Ya elegida:
+lblSelectOneDifferentNameCardToDiscardAlreadyChosen=Selecciona una de las cartas con un nombre diferente para descartarla. Ya elegida:
lblSelectNMoreTargetTypeCardToDiscard=Selecciona {0} {1} más para descartar.
lblDoYouWantCardDealNDamageToYou=¿Quieres que {0} te haga {1} de daño?
lblDrawNCardsConfirm=¿Robar {0} Carta(s)?
diff --git a/forge-gui/res/languages/it-IT.properties b/forge-gui/res/languages/it-IT.properties
index 9a966cfa6c8..6e01c4919fd 100644
--- a/forge-gui/res/languages/it-IT.properties
+++ b/forge-gui/res/languages/it-IT.properties
@@ -2174,6 +2174,7 @@ lblConquestName=Conquest Name
#HumanCostDecision.java
lblChooseXValueForCard={0} - Choose a Value for X
lblSelectOneSameNameCardToDiscardAlreadyChosen=Select one of the cards with the same name to discard. Already chosen:
+lblSelectOneDifferentNameCardToDiscardAlreadyChosen=Select one of the cards with a different name to discard. Already chosen:
lblSelectNMoreTargetTypeCardToDiscard=Select {0} more {1} to discard.
lblDoYouWantCardDealNDamageToYou=Do you want {0} to deal {1} damage to you?
lblDrawNCardsConfirm=Draw {0} Card(s)?
diff --git a/forge-gui/res/languages/zh-CN.properties b/forge-gui/res/languages/zh-CN.properties
index 57426d0e4b5..0787b354605 100644
--- a/forge-gui/res/languages/zh-CN.properties
+++ b/forge-gui/res/languages/zh-CN.properties
@@ -2173,7 +2173,8 @@ lblHistoriiansWillRecallYourConquestAs=史学家将会将你的征服记为:
lblConquestName=征服名
#HumanCostDecision.java
lblChooseXValueForCard={0} - 为X选择一个值
-lblSelectOneSameNameCardToDiscardAlreadyChosen=选择一个具有相同名称的牌弃掉。已选择:
+lblSelectOneSameNameCardToDiscardAlreadyChosen=选择一个具有相同名称的牌弃掉。已选择:
+lblSelectOneDifferentNameCardToDiscardAlreadyChosen=选择一个具有不同名称的牌弃掉。已选择:
lblSelectNMoreTargetTypeCardToDiscard=再选择{0}张{1}弃掉
lblDoYouWantCardDealNDamageToYou=你想要{0}对你造成{1}点伤害吗?
lblDrawNCardsConfirm=抓{0}张牌?
diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java
index cedcf02018e..b2496fb2254 100644
--- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java
+++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java
@@ -9,6 +9,7 @@ import java.util.Map;
import java.util.Map.Entry;
import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.card.CardType;
@@ -127,6 +128,23 @@ public class HumanCostDecision extends CostDecisionMakerBase {
}
return PaymentDecision.card(randomSubset);
}
+ if (discardType.equals("DifferentNames")) {
+ final CardCollection discarded = new CardCollection();
+ while (c > 0) {
+ final InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, 1, 1, hand, ability);
+ inp.setMessage(Localizer.getInstance().getMessage("lblSelectOneDifferentNameCardToDiscardAlreadyChosen") + discarded);
+ inp.setCancelAllowed(true);
+ inp.showAndWait();
+ if (inp.hasCancelled()) {
+ return null;
+ }
+ final Card first = inp.getFirstSelected();
+ discarded.add(first);
+ hand = CardLists.filter(hand, Predicates.not(CardPredicates.sharesNameWith(first)));
+ c--;
+ }
+ return PaymentDecision.card(discarded);
+ }
if (discardType.contains("+WithSameName")) {
final String type = TextUtil.fastReplace(discardType, "+WithSameName", "");
hand = CardLists.getValidCards(hand, type.split(";"), player, source, ability);
diff --git a/pom.xml b/pom.xml
index e13b6c87f3d..0b1e85b2d82 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
forge
pom
Forge Parent
- 1.6.35-SNAPSHOT
+ 1.6.36-SNAPSHOT
Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules.