From 341a241a824e0710c0c784999002dac8303b09ed Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Tue, 28 Aug 2018 12:24:04 -0400 Subject: [PATCH 001/143] Fixing Mana types being inappropriately referenced in relation to Matrices --- .../src/main/java/forge/ai/ComputerUtilMana.java | 4 ++++ .../src/main/java/forge/card/MagicColor.java | 9 --------- .../src/main/java/forge/card/mana/ManaAtom.java | 5 ++++- .../java/forge/game/ability/AbilityUtils.java | 3 ++- .../java/forge/game/mana/ManaCostBeingPaid.java | 6 ++++-- .../src/main/java/forge/game/mana/ManaPool.java | 15 +++++++++------ 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java index 98df78bf24a..02ffc322634 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java @@ -913,6 +913,10 @@ public class ComputerUtilMana { // Make mana needed to avoid negative effect a mandatory cost for the AI for (String manaPart : card.getSVar("ManaNeededToAvoidNegativeEffect").split(",")) { // convert long color strings to short color strings + if (manaPart.isEmpty()) { + continue; + } + byte mask = ManaAtom.fromName(manaPart); // make mana mandatory for AI diff --git a/forge-core/src/main/java/forge/card/MagicColor.java b/forge-core/src/main/java/forge/card/MagicColor.java index bc452e19520..37e6294a056 100644 --- a/forge-core/src/main/java/forge/card/MagicColor.java +++ b/forge-core/src/main/java/forge/card/MagicColor.java @@ -103,15 +103,6 @@ public final class MagicColor { } } - public static int getIndexOfFirstColor(final byte color){ - for (int i = 0; i < NUMBER_OR_COLORS; i++) { - if ((color & WUBRG[i]) != 0) { - return i; - } - } - return -1; // colorless - } - /** * The Interface Color. */ diff --git a/forge-core/src/main/java/forge/card/mana/ManaAtom.java b/forge-core/src/main/java/forge/card/mana/ManaAtom.java index 1416139cda5..5a38b3a3310 100644 --- a/forge-core/src/main/java/forge/card/mana/ManaAtom.java +++ b/forge-core/src/main/java/forge/card/mana/ManaAtom.java @@ -14,6 +14,9 @@ public abstract class ManaAtom { public static final byte[] MANACOLORS = new byte[] { WHITE, BLUE, BLACK, RED, GREEN }; public static final byte[] MANATYPES = new byte[] { WHITE, BLUE, BLACK, RED, GREEN, COLORLESS }; + public static final byte ALL_MANA_COLORS = WHITE | BLUE | BLACK | RED | GREEN; + public static final byte ALL_MANA_TYPES = ALL_MANA_COLORS | COLORLESS; + public static final int GENERIC = 1 << 6; // Below here skip due to byte conversion shenanigans @@ -62,6 +65,6 @@ public abstract class ManaAtom { return i; } } - return -1; // colorless + return -1; // somehow the mana is not colored or colorless? } } \ No newline at end of file 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 3401a5d6a80..f3b9d374e66 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1655,7 +1655,8 @@ public class AbilityUtils { String convertTo = params.get(key); byte convertByte = 0; if ("All".equals(convertTo)) { - convertByte = ColorSet.ALL_COLORS.getColor(); + // IMPORTANT! We need to use Mana Color here not Card Color. + convertByte = ManaAtom.ALL_MANA_TYPES; } else { for (final String convertColor : convertTo.split(",")) { convertByte |= ManaAtom.fromName(convertColor); diff --git a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java index f1f43259799..f5c381fb9ca 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java +++ b/forge-game/src/main/java/forge/game/mana/ManaCostBeingPaid.java @@ -586,6 +586,7 @@ public class ManaCostBeingPaid { // Boolean addX used to add Xs into the returned value final StringBuilder sb = new StringBuilder(); + // TODO Prepend a line about paying with any type/color if available if (addX) { for (int i = 0; i < this.getXcounter(); i++) { sb.append("{X}"); @@ -595,10 +596,11 @@ public class ManaCostBeingPaid { int nGeneric = getGenericManaAmount(); List shards = new ArrayList(unpaidShards.keySet()); - if (pool != null) { //replace shards with generic mana if they can be paid with any color mana + // TODO Fix this. Should we really be changing Shards here? + if (false && pool != null) { //replace shards with generic mana if they can be paid with any color mana for (int i = 0; i < shards.size(); i++) { ManaCostShard shard = shards.get(i); - if (shard != ManaCostShard.GENERIC && pool.getPossibleColorUses(shard.getColorMask()) == MagicColor.ALL_COLORS) { + if (shard != ManaCostShard.GENERIC && pool.getPossibleColorUses(shard.getColorMask()) == ManaAtom.ALL_MANA_TYPES) { nGeneric += unpaidShards.get(shard).totalCount; shards.remove(i); i--; diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index 2d2de63d968..d76c2145973 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -22,7 +22,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import forge.GameCommand; -import forge.card.ColorSet; import forge.card.MagicColor; import forge.card.mana.ManaAtom; import forge.card.mana.ManaCostShard; @@ -364,7 +363,7 @@ public class ManaPool implements Iterable { public void adjustColorReplacement(byte originalColor, byte replacementColor, boolean additive) { // Fix the index without hardcodes - int rowIdx = MagicColor.getIndexOfFirstColor(originalColor); + int rowIdx = ManaAtom.getIndexOfFirstManaType(originalColor); rowIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; if (additive) { colorConversionMatrix[rowIdx] |= replacementColor; @@ -375,17 +374,19 @@ public class ManaPool implements Iterable { } public void restoreColorReplacements() { + // By default each color can only be paid by itself ( {G} -> {G}, {C} -> {C} for (int i = 0; i < colorConversionMatrix.length; i++) { colorConversionMatrix[i] = identityMatrix[i]; } + // By default all mana types are unrestricted for (int i = 0; i < colorRestrictionMatrix.length; i++) { - colorRestrictionMatrix[i] = ColorSet.ALL_COLORS.getColor(); + colorRestrictionMatrix[i] = ManaAtom.ALL_MANA_TYPES; } } public byte getPossibleColorUses(byte color) { // Take the current conversion value, AND with restrictions to get mana usage - int rowIdx = MagicColor.getIndexOfFirstColor(color); + int rowIdx = ManaAtom.getIndexOfFirstManaType(color); int matrixIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; byte colorUse = colorConversionMatrix[matrixIdx]; @@ -394,14 +395,16 @@ public class ManaPool implements Iterable { } public boolean canPayForShardWithColor(ManaCostShard shard, byte color) { + // TODO Debug this for Paying Gonti, byte line = getPossibleColorUses(color); - for (int i = 0; i < MagicColor.NUMBER_OR_COLORS; i++) { - byte outColor = MagicColor.WUBRG[i]; + + for(byte outColor : ManaAtom.MANATYPES) { if ((line & outColor) != 0 && shard.canBePaidWithManaOfColor(outColor)) { return true; } } + // TODO The following may not be needed anymore? if (((color & (byte) ManaAtom.COLORLESS) != 0) && shard.canBePaidWithManaOfColor((byte) (byte)ManaAtom.COLORLESS)) { return true; } From 2ab982463e5dfd2b4b7a7cb063a37cf11b424d24 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 Aug 2018 23:00:59 +0100 Subject: [PATCH 002/143] Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool --- forge-gui/res/quest/world/worlds.txt | 1 + .../java/forge/quest/QuestController.java | 8 +- .../src/main/java/forge/quest/QuestEvent.java | 4 +- .../forge/quest/QuestEventDuelManager.java | 2 +- .../quest/QuestEventDuelManagerInterface.java | 10 + .../java/forge/quest/QuestEventLDADuel.java | 46 ++++ .../forge/quest/QuestEventLDADuelManager.java | 244 ++++++++++++++++++ .../src/main/java/forge/quest/QuestWorld.java | 7 + 8 files changed, 317 insertions(+), 5 deletions(-) create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java diff --git a/forge-gui/res/quest/world/worlds.txt b/forge-gui/res/quest/world/worlds.txt index d71439419d0..b08931cde59 100644 --- a/forge-gui/res/quest/world/worlds.txt +++ b/forge-gui/res/quest/world/worlds.txt @@ -1,4 +1,5 @@ Name:Main world +Name:Random Standard Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU Name:Jamuraa|Dir:jamuraa|Sets:5ED, ARN, MIR, VIS, WTH|Banned:Chaos Orb; Falling Star Name:Kamigawa|Dir:2004 Kamigawa|Sets:CHK, BOK, SOK diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index 753e09e7c14..1d319a1dbde 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -62,7 +62,7 @@ public class QuestController { /** The decks. */ private transient IStorage decks; - private QuestEventDuelManager duelManager = null; + private QuestEventDuelManagerInterface duelManager = null; private IStorage allChallenges = null; private QuestBazaarManager bazaar = null; @@ -405,7 +405,7 @@ public class QuestController { * * @return the event manager */ - public QuestEventDuelManager getDuelsManager() { + public QuestEventDuelManagerInterface getDuelsManager() { if (this.duelManager == null) { resetDuelsManager(); } @@ -431,6 +431,10 @@ public class QuestController { public void resetDuelsManager() { QuestWorld world = getWorld(); String path; + if(world.getName().equals(QuestWorld.STANDARDWORLDNAME)){ + this.duelManager = new QuestEventLDADuelManager(); + return; + } if (world == null || !world.isCustom()){ path = world == null || world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getDuelsDir(); }else{ diff --git a/forge-gui/src/main/java/forge/quest/QuestEvent.java b/forge-gui/src/main/java/forge/quest/QuestEvent.java index 456290719c6..00a140c80e2 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEvent.java +++ b/forge-gui/src/main/java/forge/quest/QuestEvent.java @@ -36,7 +36,7 @@ import java.util.List; */ public abstract class QuestEvent implements IQuestEvent { // Default vals if none provided in the event file. - private Deck eventDeck = null; + protected Deck eventDeck = null; private String title = "Mystery Event"; private String description = ""; private QuestEventDifficulty difficulty = QuestEventDifficulty.MEDIUM; @@ -83,7 +83,7 @@ public abstract class QuestEvent implements IQuestEvent { return description; } - public final Deck getEventDeck() { + public Deck getEventDeck() { return eventDeck; } diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java b/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java index 80ac9e30988..7d54e178f13 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java +++ b/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java @@ -38,7 +38,7 @@ import java.util.*; * @author Forge * @version $Id: QuestEventManager.java 20404 2013-03-17 05:34:13Z myk $ */ -public class QuestEventDuelManager { +public class QuestEventDuelManager implements QuestEventDuelManagerInterface { private final MapOfLists sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.arrayLists()); private final IStorage allDuels; diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java b/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java new file mode 100644 index 00000000000..48052ce87e6 --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java @@ -0,0 +1,10 @@ +package forge.quest; + +import java.util.List; + +public interface QuestEventDuelManagerInterface { + Iterable getAllDuels(); + Iterable getDuels(QuestEventDifficulty difficulty); + List generateDuels(); + void randomizeOpponents(); +} diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java new file mode 100644 index 00000000000..a7e8c2b4507 --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java @@ -0,0 +1,46 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.quest; + + +import forge.deck.Deck; +import forge.deck.DeckgenUtil; +import forge.deck.io.Archetype; +import forge.model.FModel; + +/** + *

+ * QuestDuel class. + *

+ * MODEL - A single duel event data instance, including meta and deck. + * + */ +public class QuestEventLDADuel extends QuestEventDuel { + + private Archetype archetype; + + /** + * Instantiates a new quest duel. + */ + public QuestEventLDADuel(Archetype archetype) { + super(); + this.archetype = archetype; + this.eventDeck = DeckgenUtil.buildLDACArchetypeDeck(archetype, FModel.getFormats().getStandard(),true); + } + +} diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java new file mode 100644 index 00000000000..5d0836cd4cf --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java @@ -0,0 +1,244 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.quest; + +import forge.deck.CardArchetypeLDAGenerator; +import forge.deck.DeckgenUtil; +import forge.deck.io.Archetype; +import forge.model.FModel; +import forge.quest.data.QuestPreferences; +import forge.quest.data.QuestPreferences.DifficultyPrefs; +import forge.quest.data.QuestPreferences.QPref; +import forge.quest.io.QuestDuelReader; +import forge.util.CollectionSuppliers; +import forge.util.MyRandom; +import forge.util.maps.EnumMapOfLists; +import forge.util.maps.MapOfLists; +import forge.util.storage.IStorage; +import forge.util.storage.StorageBase; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * QuestEventManager. + * + * @author Forge + * @version $Id: QuestEventManager.java 20404 2013-03-17 05:34:13Z myk $ + */ +public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface { + + private List archetypes; + private final MapOfLists sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.arrayLists()); + + public QuestEventLDADuelManager(){ + archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(FModel.getFormats().getStandard().getName()); + assembleDuelDifficultyLists(); + } + + private void assembleDuelDifficultyLists() { + + sortedDuels.clear(); + sortedDuels.put(QuestEventDifficulty.EASY, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.MEDIUM, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.HARD, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.EXPERT, new ArrayList()); + + int i=0; + for(Archetype archetype : archetypes){ + QuestEventLDADuel duel = new QuestEventLDADuel((archetype)); + duel.setDescription("Randomly generated "+archetype.getName()+" archetype deck."); + duel.setName(archetype.getName()); + duel.setTitle(archetype.getName()); + duel.setOpponentName(archetype.getName()); + QuestEventDifficulty diff = QuestEventDifficulty.EASY; + if(i <= (new Float(archetypes.size()))*.1){ + diff = QuestEventDifficulty.EXPERT; + }else if(i <= (new Float(archetypes.size()))*.4){ + diff = QuestEventDifficulty.HARD; + }else if(i <= (new Float(archetypes.size()))*.7) { + diff = QuestEventDifficulty.MEDIUM; + } + duel.setDifficulty(diff); + sortedDuels.add(diff, duel); + i++; + } + + + } + + private void addRandomDuel(final List listOfDuels, final QuestEventDifficulty difficulty) { + + QuestEventDuel duel = new QuestEventDuel(); + + List difficultyOrder = getOrderForDifficulty(difficulty); + List possibleDuels = new ArrayList<>(); + for (QuestEventDifficulty diff : difficultyOrder) { + possibleDuels = new ArrayList<>(sortedDuels.get(diff)); + if (!possibleDuels.isEmpty()) { + break; + } + } + + QuestEventDuel randomOpponent = possibleDuels.get(((int) (possibleDuels.size() * MyRandom.getRandom().nextDouble()))); + + duel.setTitle("Random Opponent"); + duel.setIconImageKey(randomOpponent.getIconImageKey()); + duel.setOpponentName(randomOpponent.getTitle()); + duel.setDifficulty(difficulty); + duel.setProfile(randomOpponent.getProfile()); + duel.setShowDifficulty(false); + duel.setDescription("Fight a random opponent"); + duel.setEventDeck(randomOpponent.getEventDeck()); + + listOfDuels.add(duel); + + } + + public final List generateDuels() { + + final QuestPreferences questPreferences = FModel.getQuestPreferences(); + boolean moreDuelChoices = questPreferences.getPrefInt(QPref.MORE_DUEL_CHOICES) > 0; + + if (FModel.getQuest().getAchievements() == null) { + return null; + } + + final QuestController qCtrl = FModel.getQuest(); + final int numberOfWins = qCtrl.getAchievements().getWin(); + + final int index = qCtrl.getAchievements().getDifficulty(); + final List duelOpponents = new ArrayList<>(); + + QuestEventDifficulty randomDuelDifficulty = QuestEventDifficulty.EASY; + + if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 3); + randomDuelDifficulty = QuestEventDifficulty.EASY; + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2); + randomDuelDifficulty = QuestEventDifficulty.MEDIUM; + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 3); + randomDuelDifficulty = QuestEventDifficulty.MEDIUM; + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + addDuel(duelOpponents, QuestEventDifficulty.HARD, 2); + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.HARD, 3); + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else { + addDuel(duelOpponents, QuestEventDifficulty.HARD, 2); + addDuel(duelOpponents, QuestEventDifficulty.EXPERT, 1); + if (MyRandom.getRandom().nextDouble() * 3 < 2) { + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else { + randomDuelDifficulty = QuestEventDifficulty.EXPERT; + } + } + + if (moreDuelChoices) { + if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + } else { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } + } + + addRandomDuel(duelOpponents, randomDuelDifficulty); + + return duelOpponents; + + } + + private void addDuel(List outList, QuestEventDifficulty targetDifficulty, int toAdd) { + + final List difficultyOrder = getOrderForDifficulty(targetDifficulty); + + for (QuestEventDifficulty d : difficultyOrder) { // will add duels from preferred difficulty, will use others if the former has too few options. + for (QuestEventDuel duel : sortedDuels.get(d)) { + if (toAdd <= 0) { + return; + } + if (!outList.contains(duel)) { + outList.add(duel); + toAdd--; + } + } + } + + } + + // define fallback orders if there aren't enough opponents defined for a particular difficultly level + private static List easyOrder = Arrays.asList(QuestEventDifficulty.EASY, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.HARD, QuestEventDifficulty.EXPERT); + private static List mediumOrder = Arrays.asList(QuestEventDifficulty.MEDIUM, QuestEventDifficulty.HARD, QuestEventDifficulty.EASY, QuestEventDifficulty.EXPERT); + private static List hardOrder = Arrays.asList(QuestEventDifficulty.HARD, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.EASY, QuestEventDifficulty.EXPERT); + private static List expertOrder = Arrays.asList(QuestEventDifficulty.EXPERT, QuestEventDifficulty.HARD, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.EASY); + + + private List getOrderForDifficulty(QuestEventDifficulty d) { + final List difficultyOrder; + + switch (d) { + case EASY: + difficultyOrder = easyOrder; + break; + case MEDIUM: + difficultyOrder = mediumOrder; + break; + case HARD: + difficultyOrder = hardOrder; + break; + case EXPERT: + difficultyOrder = expertOrder; + break; + default: + throw new RuntimeException("unhandled difficulty: " + d); + } + + return difficultyOrder; + } + + @Override + public Iterable getAllDuels() { + return new ArrayList(); + } + + public Iterable getDuels(QuestEventDifficulty difficulty) { + return sortedDuels.get(difficulty); + } + + @Override + /** */ + public void randomizeOpponents() { + for (QuestEventDifficulty qd : sortedDuels.keySet()) { + List list = (List) sortedDuels.get(qd); + Collections.shuffle(list, MyRandom.getRandom()); + } + } +} diff --git a/forge-gui/src/main/java/forge/quest/QuestWorld.java b/forge-gui/src/main/java/forge/quest/QuestWorld.java index fe5a573113b..e20dcf98ce8 100644 --- a/forge-gui/src/main/java/forge/quest/QuestWorld.java +++ b/forge-gui/src/main/java/forge/quest/QuestWorld.java @@ -39,6 +39,7 @@ public class QuestWorld implements Comparable{ private final String name; private final String dir; private final GameFormatQuest format; + public static final String STANDARDWORLDNAME = "Random Standard"; private boolean isCustom; @@ -187,6 +188,12 @@ public class QuestWorld implements Comparable{ useFormat = new GameFormatQuest(useName, sets, bannedCards); } + if (useName.equalsIgnoreCase(QuestWorld.STANDARDWORLDNAME)){ + useFormat = new GameFormatQuest(QuestWorld.STANDARDWORLDNAME, + FModel.getFormats().getStandard().getAllowedSetCodes(), + FModel.getFormats().getStandard().getBannedCardNames(),false); + } + // System.out.println("Creating quest world " + useName + " (index " + useIdx + ", dir: " + useDir); // if (useFormat != null) { System.out.println("SETS: " + sets + "\nBANNED: " + bannedCards); } From 952e08848c67d5652b4953dc3742522368659678 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 31 Aug 2018 23:00:59 +0100 Subject: [PATCH 003/143] Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool --- forge-gui/res/quest/world/worlds.txt | 1 + .../java/forge/quest/QuestController.java | 8 +- .../src/main/java/forge/quest/QuestEvent.java | 4 +- .../forge/quest/QuestEventDuelManager.java | 2 +- .../quest/QuestEventDuelManagerInterface.java | 10 + .../java/forge/quest/QuestEventLDADuel.java | 46 ++++ .../forge/quest/QuestEventLDADuelManager.java | 244 ++++++++++++++++++ .../src/main/java/forge/quest/QuestWorld.java | 7 + 8 files changed, 317 insertions(+), 5 deletions(-) create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java create mode 100644 forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java diff --git a/forge-gui/res/quest/world/worlds.txt b/forge-gui/res/quest/world/worlds.txt index d71439419d0..b08931cde59 100644 --- a/forge-gui/res/quest/world/worlds.txt +++ b/forge-gui/res/quest/world/worlds.txt @@ -1,4 +1,5 @@ Name:Main world +Name:Random Standard Name:Amonkhet|Dir:Amonkhet|Sets:AKH, HOU Name:Jamuraa|Dir:jamuraa|Sets:5ED, ARN, MIR, VIS, WTH|Banned:Chaos Orb; Falling Star Name:Kamigawa|Dir:2004 Kamigawa|Sets:CHK, BOK, SOK diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index 753e09e7c14..1d319a1dbde 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -62,7 +62,7 @@ public class QuestController { /** The decks. */ private transient IStorage decks; - private QuestEventDuelManager duelManager = null; + private QuestEventDuelManagerInterface duelManager = null; private IStorage allChallenges = null; private QuestBazaarManager bazaar = null; @@ -405,7 +405,7 @@ public class QuestController { * * @return the event manager */ - public QuestEventDuelManager getDuelsManager() { + public QuestEventDuelManagerInterface getDuelsManager() { if (this.duelManager == null) { resetDuelsManager(); } @@ -431,6 +431,10 @@ public class QuestController { public void resetDuelsManager() { QuestWorld world = getWorld(); String path; + if(world.getName().equals(QuestWorld.STANDARDWORLDNAME)){ + this.duelManager = new QuestEventLDADuelManager(); + return; + } if (world == null || !world.isCustom()){ path = world == null || world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getDuelsDir(); }else{ diff --git a/forge-gui/src/main/java/forge/quest/QuestEvent.java b/forge-gui/src/main/java/forge/quest/QuestEvent.java index 456290719c6..00a140c80e2 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEvent.java +++ b/forge-gui/src/main/java/forge/quest/QuestEvent.java @@ -36,7 +36,7 @@ import java.util.List; */ public abstract class QuestEvent implements IQuestEvent { // Default vals if none provided in the event file. - private Deck eventDeck = null; + protected Deck eventDeck = null; private String title = "Mystery Event"; private String description = ""; private QuestEventDifficulty difficulty = QuestEventDifficulty.MEDIUM; @@ -83,7 +83,7 @@ public abstract class QuestEvent implements IQuestEvent { return description; } - public final Deck getEventDeck() { + public Deck getEventDeck() { return eventDeck; } diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java b/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java index 80ac9e30988..7d54e178f13 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java +++ b/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java @@ -38,7 +38,7 @@ import java.util.*; * @author Forge * @version $Id: QuestEventManager.java 20404 2013-03-17 05:34:13Z myk $ */ -public class QuestEventDuelManager { +public class QuestEventDuelManager implements QuestEventDuelManagerInterface { private final MapOfLists sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.arrayLists()); private final IStorage allDuels; diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java b/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java new file mode 100644 index 00000000000..48052ce87e6 --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java @@ -0,0 +1,10 @@ +package forge.quest; + +import java.util.List; + +public interface QuestEventDuelManagerInterface { + Iterable getAllDuels(); + Iterable getDuels(QuestEventDifficulty difficulty); + List generateDuels(); + void randomizeOpponents(); +} diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java new file mode 100644 index 00000000000..a7e8c2b4507 --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java @@ -0,0 +1,46 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.quest; + + +import forge.deck.Deck; +import forge.deck.DeckgenUtil; +import forge.deck.io.Archetype; +import forge.model.FModel; + +/** + *

+ * QuestDuel class. + *

+ * MODEL - A single duel event data instance, including meta and deck. + * + */ +public class QuestEventLDADuel extends QuestEventDuel { + + private Archetype archetype; + + /** + * Instantiates a new quest duel. + */ + public QuestEventLDADuel(Archetype archetype) { + super(); + this.archetype = archetype; + this.eventDeck = DeckgenUtil.buildLDACArchetypeDeck(archetype, FModel.getFormats().getStandard(),true); + } + +} diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java new file mode 100644 index 00000000000..5d0836cd4cf --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java @@ -0,0 +1,244 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.quest; + +import forge.deck.CardArchetypeLDAGenerator; +import forge.deck.DeckgenUtil; +import forge.deck.io.Archetype; +import forge.model.FModel; +import forge.quest.data.QuestPreferences; +import forge.quest.data.QuestPreferences.DifficultyPrefs; +import forge.quest.data.QuestPreferences.QPref; +import forge.quest.io.QuestDuelReader; +import forge.util.CollectionSuppliers; +import forge.util.MyRandom; +import forge.util.maps.EnumMapOfLists; +import forge.util.maps.MapOfLists; +import forge.util.storage.IStorage; +import forge.util.storage.StorageBase; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * QuestEventManager. + * + * @author Forge + * @version $Id: QuestEventManager.java 20404 2013-03-17 05:34:13Z myk $ + */ +public class QuestEventLDADuelManager implements QuestEventDuelManagerInterface { + + private List archetypes; + private final MapOfLists sortedDuels = new EnumMapOfLists<>(QuestEventDifficulty.class, CollectionSuppliers.arrayLists()); + + public QuestEventLDADuelManager(){ + archetypes = CardArchetypeLDAGenerator.ldaArchetypes.get(FModel.getFormats().getStandard().getName()); + assembleDuelDifficultyLists(); + } + + private void assembleDuelDifficultyLists() { + + sortedDuels.clear(); + sortedDuels.put(QuestEventDifficulty.EASY, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.MEDIUM, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.HARD, new ArrayList()); + sortedDuels.put(QuestEventDifficulty.EXPERT, new ArrayList()); + + int i=0; + for(Archetype archetype : archetypes){ + QuestEventLDADuel duel = new QuestEventLDADuel((archetype)); + duel.setDescription("Randomly generated "+archetype.getName()+" archetype deck."); + duel.setName(archetype.getName()); + duel.setTitle(archetype.getName()); + duel.setOpponentName(archetype.getName()); + QuestEventDifficulty diff = QuestEventDifficulty.EASY; + if(i <= (new Float(archetypes.size()))*.1){ + diff = QuestEventDifficulty.EXPERT; + }else if(i <= (new Float(archetypes.size()))*.4){ + diff = QuestEventDifficulty.HARD; + }else if(i <= (new Float(archetypes.size()))*.7) { + diff = QuestEventDifficulty.MEDIUM; + } + duel.setDifficulty(diff); + sortedDuels.add(diff, duel); + i++; + } + + + } + + private void addRandomDuel(final List listOfDuels, final QuestEventDifficulty difficulty) { + + QuestEventDuel duel = new QuestEventDuel(); + + List difficultyOrder = getOrderForDifficulty(difficulty); + List possibleDuels = new ArrayList<>(); + for (QuestEventDifficulty diff : difficultyOrder) { + possibleDuels = new ArrayList<>(sortedDuels.get(diff)); + if (!possibleDuels.isEmpty()) { + break; + } + } + + QuestEventDuel randomOpponent = possibleDuels.get(((int) (possibleDuels.size() * MyRandom.getRandom().nextDouble()))); + + duel.setTitle("Random Opponent"); + duel.setIconImageKey(randomOpponent.getIconImageKey()); + duel.setOpponentName(randomOpponent.getTitle()); + duel.setDifficulty(difficulty); + duel.setProfile(randomOpponent.getProfile()); + duel.setShowDifficulty(false); + duel.setDescription("Fight a random opponent"); + duel.setEventDeck(randomOpponent.getEventDeck()); + + listOfDuels.add(duel); + + } + + public final List generateDuels() { + + final QuestPreferences questPreferences = FModel.getQuestPreferences(); + boolean moreDuelChoices = questPreferences.getPrefInt(QPref.MORE_DUEL_CHOICES) > 0; + + if (FModel.getQuest().getAchievements() == null) { + return null; + } + + final QuestController qCtrl = FModel.getQuest(); + final int numberOfWins = qCtrl.getAchievements().getWin(); + + final int index = qCtrl.getAchievements().getDifficulty(); + final List duelOpponents = new ArrayList<>(); + + QuestEventDifficulty randomDuelDifficulty = QuestEventDifficulty.EASY; + + if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 3); + randomDuelDifficulty = QuestEventDifficulty.EASY; + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2); + randomDuelDifficulty = QuestEventDifficulty.MEDIUM; + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 3); + randomDuelDifficulty = QuestEventDifficulty.MEDIUM; + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + addDuel(duelOpponents, QuestEventDifficulty.HARD, 2); + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.HARD, 3); + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else { + addDuel(duelOpponents, QuestEventDifficulty.HARD, 2); + addDuel(duelOpponents, QuestEventDifficulty.EXPERT, 1); + if (MyRandom.getRandom().nextDouble() * 3 < 2) { + randomDuelDifficulty = QuestEventDifficulty.HARD; + } else { + randomDuelDifficulty = QuestEventDifficulty.EXPERT; + } + } + + if (moreDuelChoices) { + if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + } else { + addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); + addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); + } + } + + addRandomDuel(duelOpponents, randomDuelDifficulty); + + return duelOpponents; + + } + + private void addDuel(List outList, QuestEventDifficulty targetDifficulty, int toAdd) { + + final List difficultyOrder = getOrderForDifficulty(targetDifficulty); + + for (QuestEventDifficulty d : difficultyOrder) { // will add duels from preferred difficulty, will use others if the former has too few options. + for (QuestEventDuel duel : sortedDuels.get(d)) { + if (toAdd <= 0) { + return; + } + if (!outList.contains(duel)) { + outList.add(duel); + toAdd--; + } + } + } + + } + + // define fallback orders if there aren't enough opponents defined for a particular difficultly level + private static List easyOrder = Arrays.asList(QuestEventDifficulty.EASY, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.HARD, QuestEventDifficulty.EXPERT); + private static List mediumOrder = Arrays.asList(QuestEventDifficulty.MEDIUM, QuestEventDifficulty.HARD, QuestEventDifficulty.EASY, QuestEventDifficulty.EXPERT); + private static List hardOrder = Arrays.asList(QuestEventDifficulty.HARD, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.EASY, QuestEventDifficulty.EXPERT); + private static List expertOrder = Arrays.asList(QuestEventDifficulty.EXPERT, QuestEventDifficulty.HARD, QuestEventDifficulty.MEDIUM, QuestEventDifficulty.EASY); + + + private List getOrderForDifficulty(QuestEventDifficulty d) { + final List difficultyOrder; + + switch (d) { + case EASY: + difficultyOrder = easyOrder; + break; + case MEDIUM: + difficultyOrder = mediumOrder; + break; + case HARD: + difficultyOrder = hardOrder; + break; + case EXPERT: + difficultyOrder = expertOrder; + break; + default: + throw new RuntimeException("unhandled difficulty: " + d); + } + + return difficultyOrder; + } + + @Override + public Iterable getAllDuels() { + return new ArrayList(); + } + + public Iterable getDuels(QuestEventDifficulty difficulty) { + return sortedDuels.get(difficulty); + } + + @Override + /** */ + public void randomizeOpponents() { + for (QuestEventDifficulty qd : sortedDuels.keySet()) { + List list = (List) sortedDuels.get(qd); + Collections.shuffle(list, MyRandom.getRandom()); + } + } +} diff --git a/forge-gui/src/main/java/forge/quest/QuestWorld.java b/forge-gui/src/main/java/forge/quest/QuestWorld.java index fe5a573113b..e20dcf98ce8 100644 --- a/forge-gui/src/main/java/forge/quest/QuestWorld.java +++ b/forge-gui/src/main/java/forge/quest/QuestWorld.java @@ -39,6 +39,7 @@ public class QuestWorld implements Comparable{ private final String name; private final String dir; private final GameFormatQuest format; + public static final String STANDARDWORLDNAME = "Random Standard"; private boolean isCustom; @@ -187,6 +188,12 @@ public class QuestWorld implements Comparable{ useFormat = new GameFormatQuest(useName, sets, bannedCards); } + if (useName.equalsIgnoreCase(QuestWorld.STANDARDWORLDNAME)){ + useFormat = new GameFormatQuest(QuestWorld.STANDARDWORLDNAME, + FModel.getFormats().getStandard().getAllowedSetCodes(), + FModel.getFormats().getStandard().getBannedCardNames(),false); + } + // System.out.println("Creating quest world " + useName + " (index " + useIdx + ", dir: " + useDir); // if (useFormat != null) { System.out.println("SETS: " + sets + "\nBANNED: " + bannedCards); } From 7ebd5ef70ea81f387fd2dafdda682a26ccbc591b Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 7 Sep 2018 14:38:36 +0100 Subject: [PATCH 004/143] Added randomly generated quest challenges to the random standard quest world --- .../forge/quest/QuestChallengeGenerator.java | 195 ++++++++++++++++++ .../java/forge/quest/QuestController.java | 9 + 2 files changed, 204 insertions(+) create mode 100644 forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java diff --git a/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java b/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java new file mode 100644 index 00000000000..ebdb0b31cfc --- /dev/null +++ b/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java @@ -0,0 +1,195 @@ +package forge.quest; + +import com.google.common.base.Predicate; +import forge.deck.DeckgenUtil; +import forge.game.GameFormat; +import forge.item.PaperCard; +import forge.model.FModel; +import forge.util.MyRandom; +import forge.util.storage.IStorage; + +import java.util.*; + +public class QuestChallengeGenerator { + + public static QuestEventChallengeList generateChallenges(){ + Map challenges = new HashMap<>(); + int id = 0; + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().getModern()); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(1000); + qc.setWinsReqd(MyRandom.getRandom().nextInt(5)); + qc.setDifficulty(QuestEventDifficulty.MEDIUM); + qc.setCardReward("1 multicolor rare"); + challenges.put(Integer.toString(id),qc); + id++; + } + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getAIHeadstartChallenge(1); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(1000); + qc.setCardReward("1 multicolor rare"); + qc.setWinsReqd(MyRandom.getRandom().nextInt(5)); + qc.setDifficulty(QuestEventDifficulty.EASY); + challenges.put(Integer.toString(id),qc); + id++; + } + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().get("Legacy")); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(5000); + qc.setCardReward("2 multicolor rares"); + qc.setWinsReqd(MyRandom.getRandom().nextInt(25)); + qc.setDifficulty(QuestEventDifficulty.HARD); + challenges.put(Integer.toString(id),qc); + id++; + } + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getAIHeadstartChallenge(2); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(5000); + qc.setCardReward("2 multicolor rares"); + qc.setWinsReqd(MyRandom.getRandom().nextInt(25)); + qc.setDifficulty(QuestEventDifficulty.MEDIUM); + challenges.put(Integer.toString(id),qc); + id++; + } + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getFormatChallenge(FModel.getFormats().get("Vintage")); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(10000); + qc.setCardReward("3 multicolor rares"); + qc.setWinsReqd(MyRandom.getRandom().nextInt(50)); + qc.setDifficulty(QuestEventDifficulty.EXPERT); + challenges.put(Integer.toString(id),qc); + id++; + } + for (int i=0;i<5;++i) { + QuestEventChallenge qc = getAIHeadstartChallenge(3); + qc.setId(new Integer(id).toString()); + qc.setCreditsReward(10000); + qc.setCardReward("3 multicolor rares"); + qc.setWinsReqd(MyRandom.getRandom().nextInt(50)); + qc.setDifficulty(QuestEventDifficulty.HARD); + challenges.put(Integer.toString(id),qc); + id++; + } + return new QuestEventChallengeList(challenges); + } + + public static QuestEventChallenge getFormatChallenge(GameFormat format){ + QuestEventChallenge qc = new QuestEventChallenge(); + + qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(format,true)); + qc.setTitle(format.getName() + " " + qc.getEventDeck().getName() + " challenge"); + qc.setName(format.getName() + " " + qc.getEventDeck().getName() + " challenge"); + qc.setOpponentName(qc.getEventDeck().getName()); + qc.setDescription("Take on a " + format.getName() + " format deck"); + qc.setOpponentName(qc.getEventDeck().getName()); + qc.setRepeatable(true); + return qc; + } + + public static QuestEventChallenge getAIHeadstartChallenge(int extras){ + QuestEventChallenge qc = new QuestEventChallenge(); + + qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true)); + qc.setTitle(qc.getEventDeck().getName() + " headstart challenge"); + qc.setName(qc.getEventDeck().getName() + " headstart challenge"); + qc.setOpponentName(qc.getEventDeck().getName()); + qc.setDescription("The AI gets a bit of a headstart..."); + ArrayList cards = new ArrayList<>(); + for(int i=0; i < extras; ++i) { + cards.add(qc.getEventDeck().getMain().toFlatList().get( + MyRandom.getRandom().nextInt(qc.getEventDeck().getMain().toFlatList().size())).getName()); + } + qc.setAiExtraCards(cards); + qc.setOpponentName(qc.getEventDeck().getName()); + qc.setRepeatable(true); + return qc; + } + + public static class QuestEventChallengeList implements IStorage{ + + private Map challenges; + + public QuestEventChallengeList(Map list){ + challenges = list; + } + + @Override + public String getFullPath() { + return null; + } + + @Override + public QuestEventChallenge get(String id) { + return challenges.get(id); + } + + @Override + public QuestEventChallenge find(Predicate condition) { + for(QuestEventChallenge challenge:challenges.values()){ + if(condition.apply(challenge)){ + return challenge; + } + } + return null; + } + + @Override + public Collection getItemNames() { + List names = new ArrayList<>(); + for(QuestEventChallenge challenge:challenges.values()){ + names.add(challenge.getName()); + } + return names; + } + + @Override + public boolean contains(String id) { + return challenges.containsKey(id); + } + + @Override + public int size() { + return challenges.keySet().size(); + } + + @Override + public void add(QuestEventChallenge item) { + + } + + @Override + public void delete(String id) { + challenges.remove(id); + } + + @Override + public IStorage> getFolders() { + return null; + } + + @Override + public IStorage tryGetFolder(String path) { + return null; + } + + @Override + public IStorage getFolderOrCreate(String path) { + return null; + } + + @Override + public String getName() { + return "QuestChallenges"; + } + + @Override + public Iterator iterator() { + return challenges.values().iterator(); + } + } +} diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index 1d319a1dbde..ebd35b52300 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -418,6 +418,9 @@ public class QuestController { * @return QuestEventManager */ public IStorage getChallenges() { + if (getWorld().getName().equals(QuestWorld.STANDARDWORLDNAME)){ + allChallenges = QuestChallengeGenerator.generateChallenges(); + } if (this.allChallenges == null) { resetChallengesManager(); } @@ -455,6 +458,10 @@ public class QuestController { public void resetChallengesManager() { QuestWorld world = getWorld(); String path; + if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)){ + allChallenges = QuestChallengeGenerator.generateChallenges(); + return; + } if (world == null || !world.isCustom()){ path = world == null || world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getChallengesDir(); }else{ @@ -543,6 +550,8 @@ public class QuestController { maxChallenges = 5; } + maxChallenges = 5; + // Generate IDs as needed. if (achievements.getCurrentChallenges().size() < maxChallenges) { for (final QuestEventChallenge qc : allChallenges) { From c136e7c94602e1dc0a9a5e55bea0409cbb2b0f34 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 7 Sep 2018 14:39:41 +0100 Subject: [PATCH 005/143] Removed testing variable --- forge-gui/src/main/java/forge/quest/QuestController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index ebd35b52300..321e65a84ef 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -550,8 +550,6 @@ public class QuestController { maxChallenges = 5; } - maxChallenges = 5; - // Generate IDs as needed. if (achievements.getCurrentChallenges().size() < maxChallenges) { for (final QuestEventChallenge qc : allChallenges) { From 4c816fe4af1b9132ca9919c8a4d9fed91f78c1b4 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 7 Sep 2018 17:56:34 +0100 Subject: [PATCH 006/143] Fixed random quest performance issue. Switched to 20 life for random challenge AI Limiting random extra cards to permanents --- .../java/forge/quest/QuestChallengeGenerator.java | 13 ++++++++++--- .../src/main/java/forge/quest/QuestController.java | 3 --- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java b/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java index ebdb0b31cfc..73c1dea1a5a 100644 --- a/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java +++ b/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java @@ -81,6 +81,7 @@ public class QuestChallengeGenerator { public static QuestEventChallenge getFormatChallenge(GameFormat format){ QuestEventChallenge qc = new QuestEventChallenge(); + qc.setAiLife(20); qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(format,true)); qc.setTitle(format.getName() + " " + qc.getEventDeck().getName() + " challenge"); qc.setName(format.getName() + " " + qc.getEventDeck().getName() + " challenge"); @@ -94,15 +95,21 @@ public class QuestChallengeGenerator { public static QuestEventChallenge getAIHeadstartChallenge(int extras){ QuestEventChallenge qc = new QuestEventChallenge(); + qc.setAiLife(20); qc.setEventDeck(DeckgenUtil.buildLDACArchetypeDeck(FModel.getFormats().getStandard(),true)); qc.setTitle(qc.getEventDeck().getName() + " headstart challenge"); qc.setName(qc.getEventDeck().getName() + " headstart challenge"); qc.setOpponentName(qc.getEventDeck().getName()); qc.setDescription("The AI gets a bit of a headstart..."); ArrayList cards = new ArrayList<>(); - for(int i=0; i < extras; ++i) { - cards.add(qc.getEventDeck().getMain().toFlatList().get( - MyRandom.getRandom().nextInt(qc.getEventDeck().getMain().toFlatList().size())).getName()); + int i = 0; + while(i < extras) { + PaperCard card = qc.getEventDeck().getMain().toFlatList().get( + MyRandom.getRandom().nextInt(qc.getEventDeck().getMain().toFlatList().size())); + if(card.getRules().getType().isPermanent()){ + cards.add(card.getName()); + ++i; + } } qc.setAiExtraCards(cards); qc.setOpponentName(qc.getEventDeck().getName()); diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index 321e65a84ef..bd3fc3570e2 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -418,9 +418,6 @@ public class QuestController { * @return QuestEventManager */ public IStorage getChallenges() { - if (getWorld().getName().equals(QuestWorld.STANDARDWORLDNAME)){ - allChallenges = QuestChallengeGenerator.generateChallenges(); - } if (this.allChallenges == null) { resetChallengesManager(); } From 2bb6b9e715d76b5c54f66887f019d1f89c49a4c1 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sun, 16 Sep 2018 22:09:24 +0100 Subject: [PATCH 007/143] Removed unused imports --- forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java | 1 - .../src/main/java/forge/quest/QuestEventLDADuelManager.java | 6 ------ 2 files changed, 7 deletions(-) diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java index a7e8c2b4507..162128048fc 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java @@ -18,7 +18,6 @@ package forge.quest; -import forge.deck.Deck; import forge.deck.DeckgenUtil; import forge.deck.io.Archetype; import forge.model.FModel; diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java index 5d0836cd4cf..ba453988dbf 100644 --- a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java +++ b/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java @@ -18,21 +18,15 @@ package forge.quest; import forge.deck.CardArchetypeLDAGenerator; -import forge.deck.DeckgenUtil; import forge.deck.io.Archetype; import forge.model.FModel; import forge.quest.data.QuestPreferences; import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.quest.data.QuestPreferences.QPref; -import forge.quest.io.QuestDuelReader; import forge.util.CollectionSuppliers; import forge.util.MyRandom; import forge.util.maps.EnumMapOfLists; import forge.util.maps.MapOfLists; -import forge.util.storage.IStorage; -import forge.util.storage.StorageBase; - -import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; From 5d533218851840f1b11a10551a013a7bcd883920 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Tue, 25 Sep 2018 00:40:38 +0000 Subject: [PATCH 008/143] Update crystal_seer.txt --- forge-gui/res/cardsfolder/c/crystal_seer.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/c/crystal_seer.txt b/forge-gui/res/cardsfolder/c/crystal_seer.txt index e8a3d309cfc..75e00bf20e8 100644 --- a/forge-gui/res/cardsfolder/c/crystal_seer.txt +++ b/forge-gui/res/cardsfolder/c/crystal_seer.txt @@ -5,6 +5,6 @@ PT:2/2 A:AB$ ChangeZone | Cost$ 4 U | Origin$ Battlefield | Destination$ Hand | Defined$ Self | SpellDescription$ Return CARDNAME to it's owner's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRearrange | TriggerDescription$ When CARDNAME enters the battlefield, look at the top four cards of your library, then put them back in any order. SVar:TrigRearrange:DB$ RearrangeTopOfLibrary | Defined$ You | NumCards$ 4 -Svar:RemAIDeck:True +SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/crystal_seer.jpg Oracle:When Crystal Seer enters the battlefield, look at the top four cards of your library, then put them back in any order.\n{4}{U}: Return Crystal Seer to its owner's hand. From bd2b3fab9bb5d614dfedb28f0b52dfd2f81d9a93 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Tue, 25 Sep 2018 02:45:11 +0000 Subject: [PATCH 009/143] Update demon_of_catastrophes.txt to use new "sac as an additional cost" mechanism. --- forge-gui/res/cardsfolder/d/demon_of_catastrophes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/d/demon_of_catastrophes.txt b/forge-gui/res/cardsfolder/d/demon_of_catastrophes.txt index 46e66c30d4e..6430b6d7601 100644 --- a/forge-gui/res/cardsfolder/d/demon_of_catastrophes.txt +++ b/forge-gui/res/cardsfolder/d/demon_of_catastrophes.txt @@ -4,5 +4,5 @@ Types:Creature Demon PT:6/6 K:Flying K:Trample -SVar:FullCost:2 B B Sac<1/Creature> +A:SP$ PermanentCreature | Cost$ 2 B B Sac<1/Creature> Oracle:As an additional cost to cast this spell, sacrifice a creature\n Flying, trample \ No newline at end of file From e6af6abfcfdf0e7bd3d0031f021ae2f0021ef5cd Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 24 Sep 2018 17:23:27 -0600 Subject: [PATCH 010/143] adding the Darky theme Signed-off-by: Jamin W. Collins --- forge-gui/res/skins/darky/bg_match.jpg | Bin 0 -> 38436 bytes forge-gui/res/skins/darky/bg_splash.png | Bin 0 -> 35941 bytes forge-gui/res/skins/darky/bg_texture.jpg | Bin 0 -> 3778 bytes forge-gui/res/skins/darky/font1.ttf | Bin 0 -> 60280 bytes forge-gui/res/skins/darky/sprite_icons.png | Bin 0 -> 469569 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 forge-gui/res/skins/darky/bg_match.jpg create mode 100644 forge-gui/res/skins/darky/bg_splash.png create mode 100644 forge-gui/res/skins/darky/bg_texture.jpg create mode 100644 forge-gui/res/skins/darky/font1.ttf create mode 100644 forge-gui/res/skins/darky/sprite_icons.png diff --git a/forge-gui/res/skins/darky/bg_match.jpg b/forge-gui/res/skins/darky/bg_match.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ace2bf45d101a18cfb2885cd3e578217df93172e GIT binary patch literal 38436 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

pK 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 literal 0 HcmV?d00001 diff --git a/forge-gui/res/skins/darky/bg_texture.jpg b/forge-gui/res/skins/darky/bg_texture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b0da179073bf844e35be7706b0c04b44a8bf30e GIT binary patch literal 3778 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%0DlSb*@>oche7 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 z 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"e3NeE}1kKqX(tac|N$5Toi%SxAeWu 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 sP=>$pV&_UYWVitjP>$tvQ10MZc>j{pDw literal 0 HcmV?d00001 From 7781660c113837498eaa42a53a4003c2681e42f3 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 24 Sep 2018 17:29:42 -0600 Subject: [PATCH 011/143] make font sizes relative to default (12) Signed-off-by: Jamin W. Collins --- .../java/forge/deckchooser/DecksComboBox.java | 2 +- .../java/forge/download/GuiDownloader.java | 2 +- .../forge/itemmanager/filters/ItemFilter.java | 2 +- .../forge/itemmanager/views/ImageView.java | 2 +- .../forge/itemmanager/views/ItemListView.java | 2 +- .../deckeditor/AddBasicLandsDialog.java | 2 +- .../java/forge/screens/home/LblGroup.java | 2 +- .../java/forge/screens/home/LblHeader.java | 2 +- .../java/forge/screens/home/LblMenuItem.java | 2 +- .../java/forge/screens/home/PlayerPanel.java | 2 +- .../home/gauntlet/VSubmenuGauntletQuick.java | 2 +- .../home/online/VSubmenuOnlineLobby.java | 2 +- .../screens/home/quest/PnlDraftEvent.java | 6 ++-- .../forge/screens/home/quest/PnlEvent.java | 4 +-- .../home/quest/VSubmenuQuestPrefs.java | 2 +- .../forge/screens/home/quest/ViewStall.java | 2 +- .../home/sanctioned/VSubmenuSealed.java | 2 +- .../home/settings/VSubmenuAchievements.java | 10 +++--- .../home/settings/VSubmenuPreferences.java | 8 ++--- .../home/settings/VSubmenuReleaseNotes.java | 2 +- .../forge/screens/match/LimitedWinLose.java | 4 +-- .../java/forge/screens/match/ViewWinLose.java | 16 +++++----- .../forge/screens/match/views/VPrompt.java | 4 +-- .../forge/screens/match/views/VStack.java | 2 +- .../java/forge/toolbox/FComboBoxPanel.java | 4 +-- .../src/main/java/forge/toolbox/FSkin.java | 31 ++++++++++++++++++- .../main/java/forge/toolbox/FTextEditor.java | 2 +- .../main/java/forge/view/FNavigationBar.java | 4 +-- .../src/main/java/forge/view/FTitleBar.java | 2 +- .../src/main/java/forge/view/FView.java | 2 +- 30 files changed, 80 insertions(+), 51 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/DecksComboBox.java b/forge-gui-desktop/src/main/java/forge/deckchooser/DecksComboBox.java index 3d40e0efac1..1f59867d680 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/DecksComboBox.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/DecksComboBox.java @@ -20,7 +20,7 @@ public class DecksComboBox extends FComboBoxWrapper { private DeckType selectedDeckType = null; public DecksComboBox() { - setSkinFont(FSkin.getBoldFont(14)); + setSkinFont(FSkin.getRelativeBoldFont(14)); setTextAlignment(TextAlignment.CENTER); addActionListener(getDeckTypeComboListener()); } diff --git a/forge-gui-desktop/src/main/java/forge/download/GuiDownloader.java b/forge-gui-desktop/src/main/java/forge/download/GuiDownloader.java index b7342dffed0..35c2ac36bfd 100644 --- a/forge-gui-desktop/src/main/java/forge/download/GuiDownloader.java +++ b/forge-gui-desktop/src/main/java/forge/download/GuiDownloader.java @@ -90,7 +90,7 @@ public class GuiDownloader extends DefaultBoundedRangeModel { radProxyNone.setSelected(true); btnClose.setBorder(new FSkin.LineSkinBorder(FSkin.getColor(FSkin.Colors.CLR_TEXT))); - btnStart.setFont(FSkin.getFont(18)); + btnStart.setFont(FSkin.getRelativeFont(18)); btnStart.setEnabled(false); progressBar.reset(); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ItemFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ItemFilter.java index da5c74e9df5..8837618a8be 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ItemFilter.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/ItemFilter.java @@ -27,7 +27,7 @@ public abstract class ItemFilter { public static void layoutCheckbox(SkinnedCheckBox cb) { cb.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - cb.setFont(FSkin.getFont(12)); + cb.setFont(FSkin.getFont()); cb.setOpaque(false); cb.setFocusable(false); } diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java index 1bc5d5a8cc6..d5833b4f2c0 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ImageView.java @@ -63,7 +63,7 @@ public class ImageView extends ItemView { private static final float PILE_SPACING_Y = 0.1f; private static final SkinColor GROUP_HEADER_FORE_COLOR = FSkin.getColor(FSkin.Colors.CLR_TEXT); private static final SkinColor GROUP_HEADER_LINE_COLOR = GROUP_HEADER_FORE_COLOR.alphaColor(120); - private static final SkinFont GROUP_HEADER_FONT = FSkin.getFont(12); + private static final SkinFont GROUP_HEADER_FONT = FSkin.getFont(); private static final int GROUP_HEADER_HEIGHT = 19; private static final int GROUP_HEADER_GLYPH_WIDTH = 6; private static final int MIN_COLUMN_COUNT = 1; diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemListView.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemListView.java index 58c7163196c..855e2c8250c 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemListView.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemListView.java @@ -103,7 +103,7 @@ public final class ItemListView extends ItemView { static final SkinColor ALT_ROW_COLOR = BACK_COLOR.getContrastColor(-20); private static final SkinColor GRID_COLOR = BACK_COLOR.getContrastColor(20); private static final SkinBorder HEADER_BORDER = new FSkin.CompoundSkinBorder(new FSkin.MatteSkinBorder(0, 0, 1, 1, GRID_COLOR), new EmptyBorder(0, 1, 0, 0)); - private static final SkinFont ROW_FONT = FSkin.getFont(12); + private static final SkinFont ROW_FONT = FSkin.getFont(); private static final int ROW_HEIGHT = 19; private final ItemTable table = new ItemTable(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/AddBasicLandsDialog.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/AddBasicLandsDialog.java index 8190f7e00bd..7b0dbe9978b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/AddBasicLandsDialog.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/AddBasicLandsDialog.java @@ -103,7 +103,7 @@ public class AddBasicLandsDialog { panel.add(pnlForest); panel.add(lblDeckInfo); - lblDeckInfo.setFont(FSkin.getFont(14)); + lblDeckInfo.setFont(FSkin.getRelativeFont(14)); lblDeckInfo.addMouseListener(new FMouseAdapter() { @Override public void onLeftDoubleClick(MouseEvent e) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/LblGroup.java b/forge-gui-desktop/src/main/java/forge/screens/home/LblGroup.java index 3f8c25273c2..69f92f1353d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/LblGroup.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/LblGroup.java @@ -38,7 +38,7 @@ public class LblGroup extends SkinnedLabel implements ILocalRepaint { public LblGroup(final EMenuGroup e0) { super(" " + e0.getTitle()); - this.setFont(FSkin.getBoldFont(14)); + this.setFont(FSkin.getRelativeBoldFont(14)); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); this.addMouseListener(new MouseAdapter() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/LblHeader.java b/forge-gui-desktop/src/main/java/forge/screens/home/LblHeader.java index a7dd78a9d06..80780ed9cc5 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/LblHeader.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/LblHeader.java @@ -25,7 +25,7 @@ public class LblHeader extends SkinnedLabel { public LblHeader(final String txt0) { super(txt0); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - this.setFont(FSkin.getFont(18)); + this.setFont(FSkin.getRelativeFont(18)); this.setBorder(new EmptyBorder(5, 30, 0, 0)); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/LblMenuItem.java b/forge-gui-desktop/src/main/java/forge/screens/home/LblMenuItem.java index 2208eb93a55..0c504a3d96f 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/LblMenuItem.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/LblMenuItem.java @@ -36,7 +36,7 @@ public class LblMenuItem extends SkinnedLabel implements ILocalRepaint { public LblMenuItem(final IVSubmenu doc0) { super(" " + doc0.getMenuTitle()); - this.setFont(FSkin.getFont(14)); + this.setFont(FSkin.getRelativeFont(14)); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); this.addMouseListener(new MouseAdapter() { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java index 875da3c0689..2068e3a4f05 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java @@ -663,7 +663,7 @@ public class PlayerPanel extends FPanel { txtPlayerName.setText(name); txtPlayerName.setFocusable(true); - txtPlayerName.setFont(FSkin.getFont(14)); + txtPlayerName.setFont(FSkin.getRelativeFont(14)); txtPlayerName.addActionListener(lobby.nameListener); txtPlayerName.addFocusListener(nameFocusListener); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java index d01810b33d0..d3b7d0f2084 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java @@ -107,7 +107,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { sliOpponents.setSnapToTicks(true); sliOpponents.setOpaque(false); sliOpponents.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - sliOpponents.setFont(FSkin.getFont(12)); + sliOpponents.setFont(FSkin.getFont()); pnlOptions.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); pnlOptions.add(lblOptions, "h 30px!, w 96%!, gap 2% 0 0 5px"); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java index 759d36b7bd2..f589f204c7d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java @@ -64,7 +64,7 @@ public enum VSubmenuOnlineLobby implements IVSubmenu, IOnli if (lobby == null) { final FButton btnConnect = new FButton("Connect to Server"); - btnConnect.setFont(FSkin.getFont(20)); + btnConnect.setFont(FSkin.getRelativeFont(20)); btnConnect.addActionListener(new ActionListener() { @Override public final void actionPerformed(final ActionEvent e) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java index d320a394c17..6fe76f89de2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java @@ -27,17 +27,17 @@ public class PnlDraftEvent extends JPanel { super(); radButton = new FRadioButton(event.getTitle()); - radButton.setFont(FSkin.getBoldFont(20)); + radButton.setFont(FSkin.getRelativeBoldFont(20)); radButton.setIconTextGap(10); final FTextArea eventBoosters = new FTextArea(); final FTextArea eventFee = new FTextArea(); eventBoosters.setText(event.getBoosterList()); - eventBoosters.setFont(FSkin.getFont(12)); + eventBoosters.setFont(FSkin.getFont()); eventFee.setText(QuestUtil.formatCredits(event.getEntryFee()) + " Credit Entry Fee"); - eventFee.setFont(FSkin.getFont(12)); + eventFee.setFont(FSkin.getFont()); radButton.addChangeListener(new ChangeListener() { @Override diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java index af0963e4dda..96b4d20336c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java @@ -56,11 +56,11 @@ class PnlEvent extends JPanel { // Title and description this.rad = new FRadioButton(event.getFullTitle()); - this.rad.setFont(FSkin.getBoldFont(16)); + this.rad.setFont(FSkin.getRelativeBoldFont(16)); final FTextArea tarDesc = new FTextArea(); tarDesc.setText(event.getDescription()); - tarDesc.setFont(FSkin.getItalicFont(12)); + tarDesc.setFont(FSkin.getItalicFont()); tarDesc.addMouseListener(new MouseAdapter() { @Override diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java index 2f3c2c66a82..0f56c273032 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java @@ -509,7 +509,7 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { this.setOpaque(false); this.setBorder((Border)null); - this.setFont(FSkin.getFont(13)); + this.setFont(FSkin.getRelativeFont(13)); this.setForeground(clrText); this.setCaretColor(clrText); this.setBackground(clrHover); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java index 9f3da1afc43..0eb32eff473 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java @@ -80,7 +80,7 @@ public class ViewStall extends JPanel { this.tpnFluff.setOpaque(false); this.tpnFluff.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - this.tpnFluff.setFont(FSkin.getItalicFont(15)); + this.tpnFluff.setFont(FSkin.getRelativeItalicFont(15)); this.tpnFluff.setFocusable(false); this.tpnFluff.setEditable(false); this.tpnFluff.setBorder((Border)null); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java index f9bdc4dea6f..486d16860c9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java @@ -193,7 +193,7 @@ public enum VSubmenuSealed implements IVSubmenu { final SkinnedTextPane tpnDirections = new SkinnedTextPane(); tpnDirections.setOpaque(false); tpnDirections.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - tpnDirections.setFont(FSkin.getFont(15)); + tpnDirections.setFont(FSkin.getRelativeFont(15)); tpnDirections.setAlignmentX(SwingConstants.CENTER); tpnDirections.setFocusable(false); tpnDirections.setEditable(false); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java index 361b27c1ab8..bd5e3fc31d2 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java @@ -48,8 +48,8 @@ public enum VSubmenuAchievements implements IVSubmenu { private static final int TROPHIES_PER_SHELVE = 4; private static final int PADDING = 5; private static final int TROPHY_PADDING = 45; - private static final SkinFont NAME_FONT = FSkin.getBoldFont(14); - private static final SkinFont DESC_FONT = FSkin.getFont(12); + private static final SkinFont NAME_FONT = FSkin.getRelativeBoldFont(14); + private static final SkinFont DESC_FONT = FSkin.getFont(); private static final SkinColor TEXT_COLOR = FSkin.getColor(Colors.CLR_TEXT); private static final SkinColor NOT_EARNED_COLOR = TEXT_COLOR.alphaColor(128); private static final SkinColor TEXTURE_OVERLAY_COLOR = FSkin.getColor(Colors.CLR_THEME); @@ -121,7 +121,7 @@ public enum VSubmenuAchievements implements IVSubmenu { AchievementCollection.buildComboBox(cbCollections); - cbCollections.setSkinFont(FSkin.getBoldFont(14)); + cbCollections.setSkinFont(FSkin.getRelativeBoldFont(14)); cbCollections.setTextAlignment(TextAlignment.CENTER); cbCollections.addActionListener(new ActionListener() { @Override @@ -264,8 +264,8 @@ public enum VSubmenuAchievements implements IVSubmenu { private static final SkinImage imgTop = FSkin.getImage(FSkinProp.IMG_TROPHY_CASE_TOP); private static final SkinImage imgShelf = FSkin.getImage(FSkinProp.IMG_TROPHY_SHELF); private static final SkinImage imgTrophyPlate = FSkin.getImage(FSkinProp.IMG_TROPHY_PLATE); - private static final Font font = FSkin.getFixedFont(14).deriveFont(Font.BOLD); - private static final Font subFont = FSkin.getFixedFont(12); + private static final Font font = FSkin.getRelativeFixedFont(14).deriveFont(Font.BOLD); + private static final Font subFont = FSkin.getFixedFont(); private static final Color foreColor = new Color(239, 220, 144); private AchievementCollection achievements; diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index 40a96099df4..572c9a36edb 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -391,7 +391,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final class OptionsCheckBox extends FCheckBox { private OptionsCheckBox(final String txt0) { super(txt0); - this.setFont(FSkin.getBoldFont(12)); + this.setFont(FSkin.getBoldFont()); } } @@ -402,7 +402,7 @@ public enum VSubmenuPreferences implements IVSubmenu { super(txt0); this.setBorder(new FSkin.MatteSkinBorder(0, 0, 1, 0, FSkin.getColor(FSkin.Colors.CLR_BORDERS))); setHorizontalAlignment(SwingConstants.CENTER); - this.setFont(FSkin.getBoldFont(16)); + this.setFont(FSkin.getRelativeBoldFont(16)); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); } } @@ -412,7 +412,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final class NoteLabel extends SkinnedLabel { private NoteLabel(final String txt0) { super(txt0); - this.setFont(FSkin.getItalicFont(12)); + this.setFont(FSkin.getItalicFont()); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); } } @@ -436,7 +436,7 @@ public enum VSubmenuPreferences implements IVSubmenu { public KeyboardShortcutField(final Shortcut shortcut0) { super(); this.setEditable(false); - this.setFont(FSkin.getFont(14)); + this.setFont(FSkin.getRelativeFont(14)); final FPref prefKey = shortcut0.getPrefKey(); reload(prefKey); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuReleaseNotes.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuReleaseNotes.java index 4ff741dd106..ce5f59a28e3 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuReleaseNotes.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuReleaseNotes.java @@ -60,7 +60,7 @@ public enum VSubmenuReleaseNotes implements IVSubmenu { tar.setEditable(false); tar.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - tar.setFont(FSkin.getFixedFont(16)); + tar.setFont(FSkin.getRelativeFixedFont(16)); tar.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); tar.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java index f8b22a27fe0..58c4f9da476 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java @@ -59,7 +59,7 @@ public class LimitedWinLose extends ControlWinLose { TitleLabel lblTemp1 = new TitleLabel(title); SkinnedLabel lblTemp2 = new SkinnedLabel(message); lblTemp2.setHorizontalAlignment(SwingConstants.CENTER); - lblTemp2.setFont(FSkin.getFont(17)); + lblTemp2.setFont(FSkin.getRelativeFont(17)); lblTemp2.setForeground(FORE_COLOR); lblTemp2.setIconTextGap(50); getView().getPnlCustom().add(lblTemp1, LimitedWinLose.CONSTRAINTS_TITLE); @@ -136,7 +136,7 @@ public class LimitedWinLose extends ControlWinLose { private class TitleLabel extends SkinnedLabel { TitleLabel(final String msg) { super(msg); - setFont(FSkin.getFont(18)); + setFont(FSkin.getRelativeFont(18)); setPreferredSize(new Dimension(200, 40)); setHorizontalAlignment(SwingConstants.CENTER); setForeground(FORE_COLOR); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/ViewWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/ViewWinLose.java index b1c681d5b88..0c8c6b0b71c 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/ViewWinLose.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/ViewWinLose.java @@ -110,24 +110,24 @@ public class ViewWinLose implements IWinLoseView { lblTitle.setForeground(Color.white); lblTitle.setHorizontalAlignment(SwingConstants.CENTER); - lblTitle.setFont(FSkin.getBoldFont(30)); + lblTitle.setFont(FSkin.getRelativeBoldFont(30)); lblStats.setForeground(Color.white); lblStats.setHorizontalAlignment(SwingConstants.CENTER); - lblStats.setFont(FSkin.getFont(26)); + lblStats.setFont(FSkin.getRelativeFont(26)); btnContinue.setText("Next Game"); - btnContinue.setFont(FSkin.getFont(22)); + btnContinue.setFont(FSkin.getRelativeFont(22)); btnRestart.setText("Start New Match"); - btnRestart.setFont(FSkin.getFont(22)); + btnRestart.setFont(FSkin.getRelativeFont(22)); btnQuit.setText("Quit Match"); - btnQuit.setFont(FSkin.getFont(22)); + btnQuit.setFont(FSkin.getRelativeFont(22)); btnContinue.setEnabled(!game0.isMatchOver()); // Assemble game log scroller. final FTextArea txtLog = new FTextArea(); txtLog.setText(StringUtils.join(game.getGameLog().getLogEntries(null), "\r\n").replace("[COMPUTER]", "[AI]")); - txtLog.setFont(FSkin.getFont(14)); + txtLog.setFont(FSkin.getRelativeFont(14)); txtLog.setFocusable(true); // allow highlighting and copying of log final FLabel btnCopyLog = new FLabel.ButtonBuilder().text("Copy to clipboard").build(); @@ -292,7 +292,7 @@ public class ViewWinLose implements IWinLoseView { message = "" + message.replace("\n", "
") + ""; } final SkinnedLabel lblMessage = new SkinnedLabel(message); - lblMessage.setFont(FSkin.getFont(14)); + lblMessage.setFont(FSkin.getRelativeFont(14)); lblMessage.setForeground(FORE_COLOR); lblMessage.setHorizontalAlignment(SwingConstants.CENTER); lblMessage.setIconTextGap(50); @@ -309,7 +309,7 @@ public class ViewWinLose implements IWinLoseView { private class TitleLabel extends SkinnedLabel { TitleLabel(final String msg) { super(msg); - setFont(FSkin.getFont(16)); + setFont(FSkin.getRelativeFont(16)); setPreferredSize(new Dimension(200, 40)); setHorizontalAlignment(SwingConstants.CENTER); setForeground(FORE_COLOR); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java index 5a3ee81fc41..0e5d565d118 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VPrompt.java @@ -116,11 +116,11 @@ public class VPrompt implements IVDoc { // wrap : 2 columns required for btnOk and btnCancel. container.setLayout(new MigLayout("wrap 2, gap 0px!, insets 1px 1px 3px 1px")); if (prefs.getPrefBoolean(FPref.UI_COMPACT_PROMPT)) { //hide header and use smaller font if compact prompt - tarMessage.setFont(FSkin.getFont(12)); + tarMessage.setFont(FSkin.getFont()); } else { container.add(lblGames, "span 2, w 10:100%, h 22px!"); - tarMessage.setFont(FSkin.getFont(14)); + tarMessage.setFont(FSkin.getRelativeFont(14)); } lblGames.setText("Game Setup"); diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java b/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java index 7bf2c3694a0..0f78f73589a 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/views/VStack.java @@ -191,7 +191,7 @@ public class VStack implements IVDoc { setFocusable(false); setEditable(false); setLineWrap(true); - setFont(FSkin.getFont(12)); + setFont(FSkin.getFont()); setWrapStyleWord(true); setMinimumSize(new Dimension(CARD_WIDTH + 2 * PADDING, CARD_HEIGHT + 2 * PADDING)); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java index a11a6c74066..4e8f403e412 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FComboBoxPanel.java @@ -82,7 +82,7 @@ public class FComboBoxPanel extends JPanel { if (comboBoxCaption != null && !comboBoxCaption.isEmpty()) { final SkinnedLabel comboLabel = new SkinnedLabel(comboBoxCaption); comboLabel.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - comboLabel.setFont(FSkin.getBoldFont(12)); + comboLabel.setFont(FSkin.getBoldFont()); add(comboLabel); } } @@ -91,7 +91,7 @@ public class FComboBoxPanel extends JPanel { if (comboBox != null) { comboBox.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); comboBox.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - comboBox.setFont(FSkin.getFont(12)); + comboBox.setFont(FSkin.getFont()); comboBox.setEditable(false); comboBox.setFocusable(true); comboBox.setOpaque(true); diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index c9d86367d8a..3cf54afa734 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -859,8 +859,12 @@ public class FSkin { private static Map avatars; private static Map fixedFonts = new HashMap<>(); + public static Font getFixedFont() { + return getFixedFont(defaultFontSize); + } + /** @return {@link java.awt.font} */ - public static Font getFixedFont(final int size) { + private static Font getFixedFont(final int size) { Font fixedFont = fixedFonts.get(size); if (fixedFont == null) { fixedFont = new Font("Monospaced", Font.PLAIN, size); @@ -869,6 +873,16 @@ public class FSkin { return fixedFont; } + public static Font getRelativeFixedFont(final int relative) { + double multiplier = getMultiplier(relative); + return getFixedFont((int)(defaultFontSize * multiplier)); + } + + private static double getMultiplier(final int relative) { + // don't know of a good way to get the preference default value + return relative / 12.0; + } + /** * @return {@link forge.toolbox.FSkin.SkinFont} */ @@ -884,6 +898,11 @@ public class FSkin { return SkinFont.get(Font.PLAIN, size); } + public static SkinFont getRelativeFont(final int relative) { + double multiplier = getMultiplier(relative); + return SkinFont.get(Font.PLAIN, (int)(defaultFontSize * multiplier)); + } + /** * @return {@link forge.toolbox.FSkin.SkinFont} */ @@ -899,6 +918,11 @@ public class FSkin { return SkinFont.get(Font.BOLD, size); } + public static SkinFont getRelativeBoldFont(final int relative) { + double multiplier = getMultiplier(relative); + return SkinFont.get(Font.BOLD, (int)(defaultFontSize * multiplier)); + } + /** * @return {@link forge.toolbox.FSkin.SkinFont} */ @@ -914,6 +938,11 @@ public class FSkin { return SkinFont.get(Font.ITALIC, size); } + public static SkinFont getRelativeItalicFont(final int relative) { + double multiplier = getMultiplier(relative); + return SkinFont.get(Font.ITALIC, (int)(defaultFontSize * multiplier)); + } + public static void setGraphicsFont(final Graphics g, final SkinFont skinFont) { g.setFont(skinFont.font); } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FTextEditor.java b/forge-gui-desktop/src/main/java/forge/toolbox/FTextEditor.java index 10b6c489766..202dbaaf1f1 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FTextEditor.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FTextEditor.java @@ -19,7 +19,7 @@ public class FTextEditor extends SkinnedScrollPane { public FTextEditor() { tarEditor = new SkinnedTextArea(); - tarEditor.setFont(FSkin.getFixedFont(16)); + tarEditor.setFont(FSkin.getRelativeFixedFont(16)); tarEditor.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); tarEditor.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); tarEditor.setCaretColor(FSkin.getColor(FSkin.Colors.CLR_TEXT)); diff --git a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java index 0989fd51008..05eb0e2d3b6 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java +++ b/forge-gui-desktop/src/main/java/forge/view/FNavigationBar.java @@ -382,7 +382,7 @@ public class FNavigationBar extends FTitleBarBase { setOpaque(false); this.setIcon(screen0.getTabIcon()); this.setForeground(foreColor.alphaColor(unhoveredAlpha)); - this.setFont(FSkin.getFont(fontSize)); + this.setFont(FSkin.getRelativeFont(fontSize)); int closeButtonOffset; if (screen.allowTabClose()) { @@ -434,7 +434,7 @@ public class FNavigationBar extends FTitleBarBase { private void setSelected(final boolean selected0) { if (this.selected == selected0) { return; } this.selected = selected0; - this.setFont(selected0 ? FSkin.getBoldFont(fontSize) : FSkin.getFont(fontSize)); + this.setFont(selected0 ? FSkin.getRelativeBoldFont(fontSize) : FSkin.getRelativeFont(fontSize)); repaintSelf(); } diff --git a/forge-gui-desktop/src/main/java/forge/view/FTitleBar.java b/forge-gui-desktop/src/main/java/forge/view/FTitleBar.java index 79cb67b87c2..8833bfb8cbd 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FTitleBar.java +++ b/forge-gui-desktop/src/main/java/forge/view/FTitleBar.java @@ -9,7 +9,7 @@ import java.awt.*; @SuppressWarnings("serial") public class FTitleBar extends FTitleBarBase { - private static final FSkin.SkinFont skinFont = FSkin.getFont(12); + private static final FSkin.SkinFont skinFont = FSkin.getFont(); private final SkinnedLabel lblTitle = new SkinnedLabel(); diff --git a/forge-gui-desktop/src/main/java/forge/view/FView.java b/forge-gui-desktop/src/main/java/forge/view/FView.java index 24997a433e3..36b95e8f247 100644 --- a/forge-gui-desktop/src/main/java/forge/view/FView.java +++ b/forge-gui-desktop/src/main/java/forge/view/FView.java @@ -265,7 +265,7 @@ public enum FView { textPane.setOpaque(false); textPane.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT).getColor()); textPane.setBorder(null); - textPane.setFont(FSkin.getFont(14).getBaseFont()); + textPane.setFont(FSkin.getRelativeFont(14).getBaseFont()); final FLabel btnRemindMeLater = new FLabel.Builder().text("Remind Me Later").hoverable().opaque().build(); final FLabel btnDoNotRemindMe = new FLabel.Builder().text("Don't Remind Me Again").hoverable().opaque().build(); From 970931bcfd2c4c26de93269f63eba1818c10f1c2 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 24 Sep 2018 17:47:00 -0600 Subject: [PATCH 012/143] create a new user preference for default font size Signed-off-by: Jamin W. Collins --- .../screens/home/settings/CSubmenuPreferences.java | 10 ++++++++++ .../screens/home/settings/VSubmenuPreferences.java | 8 ++++++++ .../src/main/java/forge/toolbox/FSkin.java | 5 +---- .../main/java/forge/properties/ForgePreferences.java | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java index 3e32bdc8303..8cdefb16f8e 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java @@ -205,6 +205,7 @@ public enum CSubmenuPreferences implements ICDoc { initializeGameLogVerbosityComboBox(); initializeCloseActionComboBox(); + initializeDefaultFontSizeComboBox(); initializeAiProfilesComboBox(); initializeColorIdentityCombobox(); initializeAutoYieldModeComboBox(); @@ -329,6 +330,15 @@ public enum CSubmenuPreferences implements ICDoc { panel.setComboBox(comboBox, Singletons.getControl().getCloseAction()); } + private void initializeDefaultFontSizeComboBox() { + final String [] choices = {"10", "11", "12", "13", "14", "15", "16", "17", "18"}; + final FPref userSetting = FPref.UI_DEFAULT_FONT_SIZE; + final FComboBoxPanel panel = this.view.getCbpDefaultFontSizeComboBoxPanel(); + final FComboBox comboBox = createComboBox(choices, userSetting); + final String selectedItem = this.prefs.getPref(userSetting); + panel.setComboBox(comboBox, selectedItem); + } + private void initializeAiProfilesComboBox() { final FPref userSetting = FPref.UI_CURRENT_AI_PROFILE; final FComboBoxPanel panel = this.view.getAiProfilesComboBoxPanel(); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java index 572c9a36edb..cbf2bd9cf40 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java @@ -105,6 +105,7 @@ public enum VSubmenuPreferences implements IVSubmenu { // ComboBox items are added in CSubmenuPreferences since this is just the View. private final FComboBoxPanel cbpGameLogEntryType = new FComboBoxPanel<>("Game Log Verbosity:"); private final FComboBoxPanel cbpCloseAction = new FComboBoxPanel<>("Close Action:"); + private final FComboBoxPanel cbpDefaultFontSize = new FComboBoxPanel<>("Default Font Size:"); private final FComboBoxPanel cbpAiProfiles = new FComboBoxPanel<>("AI Personality:"); private final FComboBoxPanel cbpDisplayCurrentCardColors = new FComboBoxPanel<>("Show Detailed Card Color:"); private final FComboBoxPanel cbpAutoYieldMode = new FComboBoxPanel<>("Auto-Yield:"); @@ -258,6 +259,9 @@ public enum VSubmenuPreferences implements IVSubmenu { // Graphic Options pnlPrefs.add(new SectionLabel("Graphic Options"), sectionConstraints + ", gaptop 2%"); + pnlPrefs.add(cbpDefaultFontSize, comboBoxConstraints); + pnlPrefs.add(new NoteLabel("The default font size within the UI. All font elements are scaled relative to this. (Needs restart)"), descriptionConstraints); + pnlPrefs.add(cbImageFetcher, titleConstraints); pnlPrefs.add(new NoteLabel("Enables live fetching of missing card images from an online resource."), descriptionConstraints); @@ -632,6 +636,10 @@ public enum VSubmenuPreferences implements IVSubmenu { return cbpCloseAction; } + public FComboBoxPanel getCbpDefaultFontSizeComboBoxPanel() { + return cbpDefaultFontSize; + } + public FComboBoxPanel getAutoYieldModeComboBoxPanel() { return cbpAutoYieldMode; } diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index 3cf54afa734..a77bc2086e4 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -1201,10 +1201,7 @@ public class FSkin { // Initialize fonts if (onInit) { //set default font size only once onInit - final Font f = UIManager.getDefaults().getFont("Label.font"); - if (f != null) { - defaultFontSize = f.getSize(); - } + defaultFontSize = FModel.getPreferences().getPrefInt(FPref.UI_DEFAULT_FONT_SIZE); } SkinFont.setBaseFont(GuiUtils.newFont(preferredDir + ForgeConstants.FONT_FILE)); diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 22d13d973d7..2d6af689171 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -124,6 +124,7 @@ public class ForgePreferences extends PreferencesStore { UI_DYNAMIC_PLANECHASE_BG("false"), UI_DISABLE_IMAGES_EFFECT_CARDS("false"), UI_ALLOW_ORDER_GRAVEYARD_WHEN_NEEDED ("Never"), + UI_DEFAULT_FONT_SIZE("12"), UI_FOR_TOUCHSCREN("false"), From eefc6ea9d3da18f0e94f7799ac4f77c467e2b2ed Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Tue, 25 Sep 2018 23:23:46 -0400 Subject: [PATCH 013/143] Experimental Frenzy --- .../forge/game/spellability/LandAbility.java | 45 +------------------ .../StaticAbilityCantBeCast.java | 8 ++++ .../upcoming/experimental_frenzy.txt | 10 +++++ 3 files changed, 19 insertions(+), 44 deletions(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt diff --git a/forge-game/src/main/java/forge/game/spellability/LandAbility.java b/forge-game/src/main/java/forge/game/spellability/LandAbility.java index a524a7222a9..96d80560451 100644 --- a/forge-game/src/main/java/forge/game/spellability/LandAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/LandAbility.java @@ -39,51 +39,8 @@ public class LandAbility extends Ability { public boolean canPlay() { final Card land = this.getHostCard(); final Player p = this.getActivatingPlayer(); - final Game game = p.getGame(); - if (!p.canCastSorcery()) { - return false; - } - // CantBeCast static abilities - for (final Card ca : game.getCardsIn(ZoneType.listValueOf("Battlefield,Command"))) { - final Iterable staticAbilities = ca.getStaticAbilities(); - for (final StaticAbility stAb : staticAbilities) { - if (stAb.applyAbility("CantPlayLand", land, this)) { - return false; - } - } - } - - if (land != null) { - final boolean mayPlay = getMayPlay() != null; - if (land.getOwner() != p && !mayPlay) { - return false; - } - - final Zone zone = game.getZoneOf(land); - if (zone != null && (zone.is(ZoneType.Battlefield) || (!zone.is(ZoneType.Hand) && !mayPlay))) { - return false; - } - } - - // **** Check for land play limit per turn **** - // Dev Mode - if (p.getController().canPlayUnlimitedLands() || p.hasKeyword("You may play any number of additional lands on each of your turns.")) { - return true; - } - - // check for adjusted max lands play per turn - int adjMax = 1; - for (String keyword : p.getKeywords()) { - if (keyword.startsWith("AdjustLandPlays")) { - final String[] k = keyword.split(":"); - adjMax += Integer.valueOf(k[1]); - } - } - if (p.getLandsPlayedThisTurn() < adjMax) { - return true; - } - return false; + return p.canPlayLand(land); } @Override public void resolve() { diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantBeCast.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantBeCast.java index 49a95c13fa6..307d64d366a 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantBeCast.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantBeCast.java @@ -160,6 +160,14 @@ public class StaticAbilityCantBeCast { return false; } + if (params.containsKey("Origin")) { + List src = ZoneType.listValueOf(params.get("Origin")); + + if (!src.contains(card.getZone().getZoneType())) { + return false; + } + } + if (params.containsKey("Player") && (player != null) && !player.isValid(params.get("Player"), hostCard.getController(), hostCard, null)) { return false; diff --git a/forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt b/forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt new file mode 100644 index 00000000000..d98744b9149 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt @@ -0,0 +1,10 @@ +Name:Experimental Frenzy +ManaCost:3 R +Types:Enchantment +S:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayLookAt$ Player | Description$ You may look at the top card of your library any time. +S:Mode$ Continuous | Affected$ Card.TopLibrary+YouCtrl | AffectedZone$ Library | MayPlay$ True | Description$ You may play the top card of your library. +S:Mode$ CantPlayLand | Player$ You | Origin$ Hand | Description$ You can't play lands from your hand. +S:Mode$ CantBeCast | ValidCard$ Card | Caster$ You | Origin$ Hand | Description$ You can't play cards from your hand. +SVar:NonStackingEffect:True +A:AB$ Destroy | Cost$ 3 R | Defined$ Self | SpellDescription$ Destroy CARDNAME. +Oracle:You may look at the top card of your library any time.\nYou may play the top card of your library.\nYou can't play cards from your hand.\n{3}{R}: Destroy Experimental Frenzy. \ No newline at end of file From 701418ab6394ed0ede604b08bd059fc59e6e18af Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Tue, 25 Sep 2018 21:26:43 -0600 Subject: [PATCH 014/143] avoid CME in cleanUpTemporaryReplacements() Signed-off-by: Jamin W. Collins --- .../forge/game/replacement/ReplacementHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java index c47dd86d932..b1843c1850d 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java @@ -309,13 +309,15 @@ public class ReplacementHandler { game.forEachCardInGame(new Visitor() { @Override public boolean visit(Card c) { - for (int i = 0; i < c.getReplacementEffects().size(); i++) { - ReplacementEffect rep = c.getReplacementEffects().get(i); + List toRemove = Lists.newArrayList(); + for (ReplacementEffect rep : c.getReplacementEffects()) { if (rep.isTemporary()) { - c.removeReplacementEffect(rep); - i--; + toRemove.add(rep); } } + for (ReplacementEffect rep : toRemove) { + c.removeReplacementEffect(rep); + } return true; } }); From 79267ac29f5b0364cd66f5ed6d9d14632609fee2 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Tue, 25 Sep 2018 21:41:38 -0600 Subject: [PATCH 015/143] avoid CME in checkStaticAbilities() Signed-off-by: Jamin W. Collins --- .../src/main/java/forge/game/GameAction.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 2741c83f892..be3959b2ac7 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -798,16 +798,18 @@ public class GameAction { public boolean visit(final Card c) { // need to get Card from preList if able final Card co = preList.get(c); - for (int i = 0; i < co.getStaticAbilities().size(); i++) { - final StaticAbility stAb = co.getStaticAbilities().get(i); + List toRemove = Lists.newArrayList(); + for (StaticAbility stAb : co.getStaticAbilities()) { if (stAb.getMapParams().get("Mode").equals("Continuous")) { staticAbilities.add(stAb); } if (stAb.isTemporary()) { - co.removeStaticAbility(stAb); - i--; + toRemove.add(stAb); } } + for (StaticAbility stAb : toRemove) { + co.removeStaticAbility(stAb); + } if (!co.getStaticCommandList().isEmpty()) { staticList.add(co); } @@ -851,8 +853,8 @@ public class GameAction { } for (final Card c : staticList) { - for (int i = 0; i < c.getStaticCommandList().size(); i++) { - final Object[] staticCheck = c.getStaticCommandList().get(i); + List toRemove = Lists.newArrayList(); + for (Object[] staticCheck : c.getStaticCommandList()) { final String leftVar = (String) staticCheck[0]; final String rightVar = (String) staticCheck[1]; final Card affected = (Card) staticCheck[2]; @@ -863,11 +865,13 @@ public class GameAction { final int operandValue = AbilityUtils.calculateAmount(c, svarOperand, null); if (Expressions.compare(sVar, svarOperator, operandValue)) { ((GameCommand) staticCheck[3]).run(); - c.getStaticCommandList().remove(i); - i--; + toRemove.add(staticCheck); affectedCards.add(c); } } + for (Object[] staticCheck : c.getStaticCommandList()) { + c.getStaticCommandList().remove(staticCheck); + } } // Exclude cards in hidden zones from update Iterator it = affectedCards.iterator(); From 593218343cf67f061e22b9feb9c06fc0ce07fc9c Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Tue, 25 Sep 2018 21:42:22 -0600 Subject: [PATCH 016/143] avoid CME in chooseSaToActivateFromOpeningHand() Signed-off-by: Jamin W. Collins --- forge-ai/src/main/java/forge/ai/AiController.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 2c761044964..97943fe1750 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -1483,23 +1483,25 @@ public class AiController { boolean hasLeyline1 = false; SpellAbility saGemstones = null; - - for(int i = 0; i < result.size(); i++) { - SpellAbility sa = result.get(i); - + + List toRemove = Lists.newArrayList(); + for(SpellAbility sa : result) { String srcName = sa.getHostCard().getName(); if ("Gemstone Caverns".equals(srcName)) { if (saGemstones == null) saGemstones = sa; else - result.remove(i--); + toRemove.add(sa); } else if ("Leyline of Singularity".equals(srcName)) { if (!hasLeyline1) hasLeyline1 = true; else - result.remove(i--); + toRemove.add(sa); } } + for(SpellAbility sa : toRemove) { + result.remove(sa); + } // Play them last if (saGemstones != null) { From d273a35305b043c3d223fad2f6a5e0c7c373da17 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 26 Sep 2018 09:16:34 +0300 Subject: [PATCH 017/143] - Update Svar->SVar. --- forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt | 2 +- forge-gui/res/cardsfolder/r/retaliator_griffin.txt | 2 +- forge-gui/res/cardsfolder/s/standstill.txt | 2 +- forge-gui/res/cardsfolder/t/tamanoa.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt index 8b7e34ff4f7..8abf81b05be 100644 --- a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt +++ b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt @@ -4,6 +4,6 @@ Types:Legendary Creature Human Advisor PT:2/2 T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. SVar:TrigSac:DB$Sacrifice | Defined$ TriggeredSourceController | SacValid$ Permanent -Svar:Rarity:Rare +SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/michiko_konda_truth_seeker.jpg Oracle:Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. diff --git a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt index ceb70260099..b8865aa8a43 100644 --- a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt +++ b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt @@ -6,6 +6,6 @@ K:Flying T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ Whenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ X | References$ X SVar:X:TriggerCount$DamageAmount -Svar:Rarity:Rare +SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/retaliator_griffin.jpg Oracle:Flying\nWhenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on Retaliator Griffin. diff --git a/forge-gui/res/cardsfolder/s/standstill.txt b/forge-gui/res/cardsfolder/s/standstill.txt index 005ad59d316..8236863e08b 100644 --- a/forge-gui/res/cardsfolder/s/standstill.txt +++ b/forge-gui/res/cardsfolder/s/standstill.txt @@ -9,6 +9,6 @@ SVar:X:Remembered$Amount SVar:Y:Count$Valid Creature.YouCtrl SVar:Z:Count$Valid Creature.OppCtrl SVar:NeedsToPlayVar:Y GTZ -Svar:RemAIDeck:True +SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/standstill.jpg Oracle:When a player casts a spell, sacrifice Standstill. If you do, each of that player's opponents draws three cards. diff --git a/forge-gui/res/cardsfolder/t/tamanoa.txt b/forge-gui/res/cardsfolder/t/tamanoa.txt index 013368baacf..d882871571e 100644 --- a/forge-gui/res/cardsfolder/t/tamanoa.txt +++ b/forge-gui/res/cardsfolder/t/tamanoa.txt @@ -5,6 +5,6 @@ PT:2/4 T:Mode$ DamageDealtOnce | ValidSource$ Card.nonCreature+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a noncreature source you control deals damage, you gain that much life. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X | References$ X SVar:X:TriggerCount$DamageAmount -Svar:Rarity:Rare +SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/tamanoa.jpg Oracle:Whenever a noncreature source you control deals damage, you gain that much life. From 08e3f1ebd5704f6c6e13ac869aa58719036fc822 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 26 Sep 2018 10:59:54 +0300 Subject: [PATCH 018/143] - Removing SVar:Rarity --- forge-core/src/main/java/forge/card/CardRules.java | 2 -- forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt | 1 - forge-gui/res/cardsfolder/r/retaliator_griffin.txt | 1 - forge-gui/res/cardsfolder/t/tamanoa.txt | 1 - 4 files changed, 5 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index f96411d4dc7..93f6e3e5f78 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -453,8 +453,6 @@ public final class CardRules implements ICardCharacteristics { this.removedFromRandomDecks = "True".equalsIgnoreCase(value); } else if ( "Picture".equals(variable) ) { this.pictureUrl[this.curFace] = value; - } else if ( "Rarity".equals(variable) ) { - // discard that, they should supply it in SetInfo } else this.faces[curFace].addSVar(variable, value); } else if ("SetInfo".equals(key)) { diff --git a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt index 8b7e34ff4f7..91727132aff 100644 --- a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt +++ b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt @@ -4,6 +4,5 @@ Types:Legendary Creature Human Advisor PT:2/2 T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. SVar:TrigSac:DB$Sacrifice | Defined$ TriggeredSourceController | SacValid$ Permanent -Svar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/michiko_konda_truth_seeker.jpg Oracle:Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. diff --git a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt index ceb70260099..e4111734bbc 100644 --- a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt +++ b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt @@ -6,6 +6,5 @@ K:Flying T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ Whenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ X | References$ X SVar:X:TriggerCount$DamageAmount -Svar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/retaliator_griffin.jpg Oracle:Flying\nWhenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on Retaliator Griffin. diff --git a/forge-gui/res/cardsfolder/t/tamanoa.txt b/forge-gui/res/cardsfolder/t/tamanoa.txt index 013368baacf..d164f782778 100644 --- a/forge-gui/res/cardsfolder/t/tamanoa.txt +++ b/forge-gui/res/cardsfolder/t/tamanoa.txt @@ -5,6 +5,5 @@ PT:2/4 T:Mode$ DamageDealtOnce | ValidSource$ Card.nonCreature+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a noncreature source you control deals damage, you gain that much life. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X | References$ X SVar:X:TriggerCount$DamageAmount -Svar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/tamanoa.jpg Oracle:Whenever a noncreature source you control deals damage, you gain that much life. From 0e398d2589ed48e85e4a0aee0abffbfdaa92bea0 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 26 Sep 2018 13:21:46 +0300 Subject: [PATCH 019/143] - Removing SVar:Rarity:Rare --- forge-core/src/main/java/forge/card/CardRules.java | 2 -- forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt | 1 - forge-gui/res/cardsfolder/r/retaliator_griffin.txt | 1 - forge-gui/res/cardsfolder/t/tamanoa.txt | 1 - 4 files changed, 5 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index f96411d4dc7..93f6e3e5f78 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -453,8 +453,6 @@ public final class CardRules implements ICardCharacteristics { this.removedFromRandomDecks = "True".equalsIgnoreCase(value); } else if ( "Picture".equals(variable) ) { this.pictureUrl[this.curFace] = value; - } else if ( "Rarity".equals(variable) ) { - // discard that, they should supply it in SetInfo } else this.faces[curFace].addSVar(variable, value); } else if ("SetInfo".equals(key)) { diff --git a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt index 8abf81b05be..91727132aff 100644 --- a/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt +++ b/forge-gui/res/cardsfolder/m/michiko_konda_truth_seeker.txt @@ -4,6 +4,5 @@ Types:Legendary Creature Human Advisor PT:2/2 T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. SVar:TrigSac:DB$Sacrifice | Defined$ TriggeredSourceController | SacValid$ Permanent -SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/michiko_konda_truth_seeker.jpg Oracle:Whenever a source an opponent controls deals damage to you, that player sacrifices a permanent. diff --git a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt index b8865aa8a43..e4111734bbc 100644 --- a/forge-gui/res/cardsfolder/r/retaliator_griffin.txt +++ b/forge-gui/res/cardsfolder/r/retaliator_griffin.txt @@ -6,6 +6,5 @@ K:Flying T:Mode$ DamageDone | ValidSource$ Card.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ Whenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ X | References$ X SVar:X:TriggerCount$DamageAmount -SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/retaliator_griffin.jpg Oracle:Flying\nWhenever a source an opponent controls deals damage to you, you may put that many +1/+1 counters on Retaliator Griffin. diff --git a/forge-gui/res/cardsfolder/t/tamanoa.txt b/forge-gui/res/cardsfolder/t/tamanoa.txt index d882871571e..d164f782778 100644 --- a/forge-gui/res/cardsfolder/t/tamanoa.txt +++ b/forge-gui/res/cardsfolder/t/tamanoa.txt @@ -5,6 +5,5 @@ PT:2/4 T:Mode$ DamageDealtOnce | ValidSource$ Card.nonCreature+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a noncreature source you control deals damage, you gain that much life. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X | References$ X SVar:X:TriggerCount$DamageAmount -SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/tamanoa.jpg Oracle:Whenever a noncreature source you control deals damage, you gain that much life. From 32ab0aadb00505712e00070fa7346e79519a4635 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Wed, 26 Sep 2018 17:26:03 -0600 Subject: [PATCH 020/143] fix NPE when there is nothing to choose from With the existing code, if a player cast Surgical Extraction targetting a card that only existed in the target player's graveyard (no copies in the players hand or library), an NPE would be thrown. Signed-off-by: Jamin W. Collins --- .../java/forge/game/ability/effects/ChangeZoneEffect.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 749b72a277e..0c0d1be8836 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 @@ -892,9 +892,11 @@ public class ChangeZoneEffect extends SpellAbilityEffect { do { selectedCards = decider.getController().chooseCardsForZoneChange(destination, origin, sa, fetchList, delayedReveal, selectPrompt, decider); } while (selectedCards != null && selectedCards.size() > changeNum); - for (Card card : selectedCards) { - chosenCards.add(card); - }; + if (selectedCards != null) { + for (Card card : selectedCards) { + chosenCards.add(card); + } + } // maybe prompt the user if they selected fewer than the maximum possible? } else { // one at a time From 9ab50c4d9d6a5965112b156d6f3994306f0c2f6b Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Wed, 26 Sep 2018 17:27:15 -0600 Subject: [PATCH 021/143] create and use getRelativeFontSize() method Signed-off-by: Jamin W. Collins --- .../src/main/java/forge/toolbox/FSkin.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index a77bc2086e4..56c535e6720 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -874,8 +874,7 @@ public class FSkin { } public static Font getRelativeFixedFont(final int relative) { - double multiplier = getMultiplier(relative); - return getFixedFont((int)(defaultFontSize * multiplier)); + return getFixedFont(getRelativeFontSize(relative)); } private static double getMultiplier(final int relative) { @@ -883,6 +882,11 @@ public class FSkin { return relative / 12.0; } + public static Integer getRelativeFontSize(final int relative) { + double multiplier = getMultiplier(relative); + return (int)(defaultFontSize * multiplier); + } + /** * @return {@link forge.toolbox.FSkin.SkinFont} */ @@ -899,8 +903,7 @@ public class FSkin { } public static SkinFont getRelativeFont(final int relative) { - double multiplier = getMultiplier(relative); - return SkinFont.get(Font.PLAIN, (int)(defaultFontSize * multiplier)); + return SkinFont.get(Font.PLAIN, getRelativeFontSize(relative)); } /** @@ -919,8 +922,7 @@ public class FSkin { } public static SkinFont getRelativeBoldFont(final int relative) { - double multiplier = getMultiplier(relative); - return SkinFont.get(Font.BOLD, (int)(defaultFontSize * multiplier)); + return SkinFont.get(Font.BOLD, getRelativeFontSize(relative)); } /** @@ -939,8 +941,7 @@ public class FSkin { } public static SkinFont getRelativeItalicFont(final int relative) { - double multiplier = getMultiplier(relative); - return SkinFont.get(Font.ITALIC, (int)(defaultFontSize * multiplier)); + return SkinFont.get(Font.ITALIC, getRelativeFontSize(relative)); } public static void setGraphicsFont(final Graphics g, final SkinFont skinFont) { From 848df654fadcc610013149e82fe315e14877cf51 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Wed, 26 Sep 2018 17:28:08 -0600 Subject: [PATCH 022/143] set relative font sizes in Card Detail Panel Signed-off-by: Jamin W. Collins --- .../src/main/java/forge/gui/CardDetailPanel.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java b/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java index 0575afbdaf1..4909b00b285 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java +++ b/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java @@ -85,13 +85,16 @@ public class CardDetailPanel extends SkinnedPanel { setInfoLabel = new JLabel(); setInfoLabel.setHorizontalAlignment(SwingConstants.CENTER); - final Font font = new Font("Dialog", 0, 14); + final Integer fontSizeR12 = FSkin.getRelativeFontSize(12); + final Integer fontSizeR14 = FSkin.getRelativeFontSize(14); + final Font font = new Font("Dialog", 0, fontSizeR14); nameCostLabel.setFont(font); typeLabel.setFont(font); idLabel.setFont(font); powerToughnessLabel.setFont(font); cdArea = new FHtmlViewer(); + cdArea.setFont(new Font("Dialog", 0, fontSizeR12)); cdArea.setBorder(new EmptyBorder(2, 6, 2, 6)); cdArea.setOpaque(false); scrArea = new FScrollPane(cdArea, false); From c1df1da19510a18931e483991baba072c3e32e2e Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Thu, 27 Sep 2018 08:21:48 -0400 Subject: [PATCH 023/143] Apparently unused imports is a compile error? --- .../src/main/java/forge/game/spellability/LandAbility.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/spellability/LandAbility.java b/forge-game/src/main/java/forge/game/spellability/LandAbility.java index 96d80560451..a9b26dc7680 100644 --- a/forge-game/src/main/java/forge/game/spellability/LandAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/LandAbility.java @@ -17,13 +17,10 @@ */ package forge.game.spellability; -import forge.game.Game; import forge.game.card.Card; import forge.game.cost.Cost; import forge.game.player.Player; import forge.game.staticability.StaticAbility; -import forge.game.zone.Zone; -import forge.game.zone.ZoneType; public class LandAbility extends Ability { @@ -33,7 +30,7 @@ public class LandAbility extends Ability { setMayPlay(mayPlay); } public LandAbility(Card sourceCard) { - this(sourceCard, sourceCard.getController(), (StaticAbility)null); + this(sourceCard, sourceCard.getController(), null); } @Override public boolean canPlay() { From 2f30b14c53ef1efae67cee0202ddb680e6c3b6dc Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Thu, 27 Sep 2018 10:57:04 -0400 Subject: [PATCH 024/143] Fix AI passing in null to canPlayLand --- forge-ai/src/main/java/forge/ai/AiController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 2c761044964..274b5882c67 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -422,7 +422,8 @@ public class AiController { } } } - return true; + + return player.canPlayLand(c); } }); return landList; @@ -1174,7 +1175,7 @@ public class AiController { if (landsWannaPlay != null) { landsWannaPlay = filterLandsToPlay(landsWannaPlay); Log.debug("Computer " + game.getPhaseHandler().getPhase().nameForUi); - if (landsWannaPlay != null && !landsWannaPlay.isEmpty() && player.canPlayLand(null)) { + if (landsWannaPlay != null && !landsWannaPlay.isEmpty()) { // TODO search for other land it might want to play? Card land = chooseBestLandToPlay(landsWannaPlay); if (ComputerUtil.getDamageFromETB(player, land) < player.getLife() || !player.canLoseLife() From de5d7c4349ec63783eb3b39f7b80c620d706b27b Mon Sep 17 00:00:00 2001 From: Meerkov Date: Thu, 27 Sep 2018 16:48:27 +0000 Subject: [PATCH 025/143] Changes Tetsuo Umezawa to use the same script as Bartel Runeaxe, instead of a keyworded ability --- forge-gui/res/cardsfolder/t/tetsuo_umezawa.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/t/tetsuo_umezawa.txt b/forge-gui/res/cardsfolder/t/tetsuo_umezawa.txt index 3912d5e5b42..006d1e82233 100644 --- a/forge-gui/res/cardsfolder/t/tetsuo_umezawa.txt +++ b/forge-gui/res/cardsfolder/t/tetsuo_umezawa.txt @@ -2,7 +2,7 @@ Name:Tetsuo Umezawa ManaCost:U B R Types:Legendary Creature Human Archer PT:3/3 -K:CARDNAME can't be the target of Aura spells. +S:Mode$ CantTarget | ValidCard$ Card.Self | ValidSource$ Aura | ValidSA$ Spell | Description$ CARDNAME can't be the target of Aura spells. A:AB$ Destroy | Cost$ U B B R T | ValidTgts$ Creature.tapped,Creature.blocking | TgtPrompt$ Select target tapped or blocking creature | SpellDescription$ Destroy target tapped or blocking creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/tetsuo_umezawa.jpg Oracle:Tetsuo Umezawa can't be the target of Aura spells.\n{U}{B}{B}{R}, {T}: Destroy target tapped or blocking creature. From fce605868d0ff431d50b90d9d922bc093bd4d195 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 28 Sep 2018 06:50:16 +0100 Subject: [PATCH 026/143] Remaining GRN cards - all either incomplete or with issues to fix --- .../cardsfolder/upcoming/beamsplitter_mage.txt | 7 +++++++ .../res/cardsfolder/upcoming/charnel_troll.txt | 11 +++++++++++ .../upcoming/discovery_dispersal.txt | 17 +++++++++++++++++ .../upcoming/lazav_the_multifarious.txt | 11 +++++++++++ .../cardsfolder/upcoming/mission_briefing.txt | 11 +++++++++++ .../cardsfolder/upcoming/mnemonic_betrayal.txt | 7 +++++++ .../res/cardsfolder/upcoming/plaguecrafter.txt | 9 +++++++++ .../cardsfolder/upcoming/selective_snare.txt | 7 +++++++ .../cardsfolder/upcoming/thief_of_sanity.txt | 9 +++++++++ .../upcoming/thousand_year_storm.txt | 8 ++++++++ .../res/cardsfolder/upcoming/unmoored_ego.txt | 7 +++++++ .../cardsfolder/upcoming/venerated_loxodon.txt | 8 ++++++++ .../upcoming/vraska_golgari_queen.txt | 13 +++++++++++++ 13 files changed, 125 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/beamsplitter_mage.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/charnel_troll.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/discovery_dispersal.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/lazav_the_multifarious.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mission_briefing.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/mnemonic_betrayal.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/plaguecrafter.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/selective_snare.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/thief_of_sanity.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/thousand_year_storm.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/unmoored_ego.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/venerated_loxodon.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/vraska_golgari_queen.txt diff --git a/forge-gui/res/cardsfolder/upcoming/beamsplitter_mage.txt b/forge-gui/res/cardsfolder/upcoming/beamsplitter_mage.txt new file mode 100644 index 00000000000..5a89640fa1d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/beamsplitter_mage.txt @@ -0,0 +1,7 @@ +Name:Beamsplitter Mage +ManaCost:U R +Types:Creature Vedalken Wizard +PT:2/2 +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | IsSingleTarget$ True | TargetsValid$ Card.Self | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery that targets only CARDNAME, if you control one or more creatures that the spell could target, choose one of them. Copy the spell and it targets the chosen creature. +SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ You | CopyForEachCanTarget$ Creature.YouCtrl +Oracle:Whenever you cast an instant or sorcery that targets only Beamsplitter Mage, if you control one or more creatures that the spell could target, choose one of them. Copy the spell and it targets the chosen creature. diff --git a/forge-gui/res/cardsfolder/upcoming/charnel_troll.txt b/forge-gui/res/cardsfolder/upcoming/charnel_troll.txt new file mode 100644 index 00000000000..929325a3e04 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/charnel_troll.txt @@ -0,0 +1,11 @@ +Name:Charnel Troll +ManaCost:1 B G +Types:Creature Troll +PT:4/4 +K:Trample +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ At the beginning of your upkeep, exile a creature card from your graveyard. If you do, put a +1/+1 counter on CARDNAME. Otherwise sacrifice it. +SVar:TrigExile:DB$ ChangeZone | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouOwn | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 +A:AB$ PutCounter | Cost$ B G Discard<1/Creature> | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on CARDNAME. +SVar:RemRandomDeck:True +Oracle:Trample\nAt the beginning of your upkeep, exile a creature card from your graveyard. If you do, put a +1/+1 counter on Charnel Troll. Otherwise sacrifice it.\n{B}{G}, Discard a creature card: Put a +1/+1 counter on Charnel Troll. diff --git a/forge-gui/res/cardsfolder/upcoming/discovery_dispersal.txt b/forge-gui/res/cardsfolder/upcoming/discovery_dispersal.txt new file mode 100644 index 00000000000..b99f9e6df43 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/discovery_dispersal.txt @@ -0,0 +1,17 @@ +Name:Discovery +ManaCost:1 U/B +Types:Sorcery // Instant +AlternateMode:Split +A:SP$ Surveil | Cost$ 1 U/B | Amount$ 2 | SubAbility$ DBDraw | SpellDescription$ Surveil 2, then draw two cards. CARDNAME deals 2 damage to you. +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 + +Oracle:Surveil 2, then draw a card. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) + +ALTERNATE + +Name:Dispersal +ManaCost:3 U B +Types:Instant +A:SP$ RepeatEach | Cost$ 3 U B | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TrigChangeZone | AILogic$ AllPlayerLoseLife | SpellDescription$ Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner's hand, then discards a card. +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | ChangeType$ Permanent | DefinedPlayer$ TriggeredPlayer | ChangeNum$ 1 | Hidden$ True | Mandatory$ True +Oracle:Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner's hand, then discards a card. diff --git a/forge-gui/res/cardsfolder/upcoming/lazav_the_multifarious.txt b/forge-gui/res/cardsfolder/upcoming/lazav_the_multifarious.txt new file mode 100644 index 00000000000..a407c9e25d1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lazav_the_multifarious.txt @@ -0,0 +1,11 @@ +Name:Lazav, the Multifarious +ManaCost:U B +Types:Legendary Creature Shapeshifter +PT:1/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. (To scry 1, look at the top card of your library. You may put that card into your graveyard.) +SVar:TrigSurveil:DB$ Surveil | Amount$ 1 +A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddTypes$ Legendary | AddSVars$ LazavTrig | SubAbility$ DBAnimate | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. +SVar:DBAnimate:DB$ Animate | Defined$ Self | staticAbilities$ LazavTrig | Permanent$ True +SVar:LazavTrig:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddTypes$ Legendary | AddSVars$ LazavTrig | SubAbility$ DBAnimate | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. +SVar:X:Targeted$CardManaCost +Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. diff --git a/forge-gui/res/cardsfolder/upcoming/mission_briefing.txt b/forge-gui/res/cardsfolder/upcoming/mission_briefing.txt new file mode 100644 index 00000000000..655845909b8 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mission_briefing.txt @@ -0,0 +1,11 @@ +Name:Mission Briefing +ManaCost:U U +Types:Instant +A:SP$ Surveil | Cost$ U U | Amount$ 2 | SubAbility$ DBChooseCard | SpellDescription$ Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +SVar:DBChooseCard:DB$ ChooseCard | Choices$ Card | ChoiceZone$ Graveyard | Mandatory$ True | Defined$ You | RememberChosen$ True | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STPlay | ExileOnMoved$ Exile | SubAbility$ DBEffect2 +SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may cast that card this turn, and you may spend mana as though it were mana of any type to cast that spell. If that card would be put into a graveyard this turn, exile it instead. +SVar:DBEffect2:DB$ Effect | RememberObjects$ Remembered | ExileOnMoved$ Stack | ReplacementEffects$ ReplaceGraveyard | SVars$ MoveExile +SVar:ReplaceGraveyard:Event$ Moved | ValidCard$ Card.IsRemembered | Origin$ Stack | Destination$ Graveyard | ReplaceWith$ MoveExile | Description$ If that card would be put into your graveyard this turn, exile it instead. +SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Exile +Oracle:Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/upcoming/mnemonic_betrayal.txt b/forge-gui/res/cardsfolder/upcoming/mnemonic_betrayal.txt new file mode 100644 index 00000000000..af729b328e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mnemonic_betrayal.txt @@ -0,0 +1,7 @@ +Name:Mnemonic Betrayal +ManaCost:1 U B +Types:Sorcery +A:SP$ ChangeZoneAll | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all card from all opponents' graveyards. You may cast those cards this turn, and you may spend it as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. Exile CARDNAME. +SVar:DBEffect:DB$ Effect | StaticAbilities$ EffSModeContinuous | RememberObjects$ Remembered | SubAbility$ DBShuffle +SVar:EffSModeContinuous:Mode$ Continuous | EffectZone$ Command +Oracle:Exile all card from all opponents' graveyards. You may cast those cards this turn, and you may spend mana as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards.\nExile Mnemonic Betrayal. diff --git a/forge-gui/res/cardsfolder/upcoming/plaguecrafter.txt b/forge-gui/res/cardsfolder/upcoming/plaguecrafter.txt new file mode 100644 index 00000000000..a5ebf3507d0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/plaguecrafter.txt @@ -0,0 +1,9 @@ +Name:Plaguecrafter +ManaCost:2 B +Types:Creature Human Shaman +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ RepeatEach | TriggerDescription$ When CARDNAME enters the battlefield, each player sacrifices a creature or planeswalker. Each player who can't discards a card. +SVar:DBRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ TrigSac +SVar:TrigSac:DB$ Sacrifice | Defined$ Player | SacValid$ Creature,Planeswalker | SacMessage$ Creature or Planeswalker | SubAbility$ Discard +SVar:Discard:DB$ Discard | Mode$ TgtChoose | NumCards$ 1 | Defined$ Player.IsRemembered | SubAbility$ DBCleanup +Oracle:When Plaguecrafter enters the battlefield, each player sacrifices a creature or planeswalker. Each player who can't discards a card. diff --git a/forge-gui/res/cardsfolder/upcoming/selective_snare.txt b/forge-gui/res/cardsfolder/upcoming/selective_snare.txt new file mode 100644 index 00000000000..6fdac828185 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/selective_snare.txt @@ -0,0 +1,7 @@ +Name:Selective Snare +ManaCost:X U +Types:Sorcery +A:SP$ ChangeZone | Cost$ X U | ValidTgts$ Creature.ChosenType | TargetMin$ 0 | TargetMax$ MaxTgts | TgtPrompt$ Select target creature of the creature type | Origin$ Battlefield | Destination$ Hand | References$ X,MaxTgts | SpellDescription$ Return X target creatures of the creature type of your choice to their owner's hand. +SVar:X:Targeted$Amount +SVar:MaxTgts:Count$Valid Creature.ChosenType +Oracle:Return X target creatures of the creature type of your choice to their owner's hand. diff --git a/forge-gui/res/cardsfolder/upcoming/thief_of_sanity.txt b/forge-gui/res/cardsfolder/upcoming/thief_of_sanity.txt new file mode 100644 index 00000000000..0f11c09ee67 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/thief_of_sanity.txt @@ -0,0 +1,9 @@ +Name:Thief of Sanity +ManaCost:1 U B +Types:Creature Specter +PT:2/2 +K:Flying +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at the top three cards of that player's library, exile one of them face down, then put the rest into their graveyard. For as long as that card remains exiled, you may look at it, and you may spend mana as though it were mana of any type to cast it. +SVar:TrigDig:DB$ Dig | DigNum$ 3 | Defined$ TriggeredTarget | DestinationZone2$ Graveyard | Reveal$ True | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STPlay | Triggers$ TrigCleanup | +Oracle:Flying\nWhenever Thief of Sanity deals combat damage to a player, look at the top three cards of that player's library, exile one of them face down, then put the rest into their graveyard. For as long as that card remains exiled, you may look at it, you may cast it, and you may spend mana as though it were mana of any type to cast it. diff --git a/forge-gui/res/cardsfolder/upcoming/thousand_year_storm.txt b/forge-gui/res/cardsfolder/upcoming/thousand_year_storm.txt new file mode 100644 index 00000000000..55c1a5f6dc1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/thousand_year_storm.txt @@ -0,0 +1,8 @@ +Name:Thousand-Year Storm +ManaCost:4 U R +Types:Enchantment +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery spell, copy it for each other instant and sorcery spell you've cast before it this turn. You may choose new targets for the copies. +SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | ConditionCheckSVar$ X | ConditionSVarCompare$ GE2 | References$ X | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | Name$ CARDNAME Effect | StaticAbilities$ EffTModeSpellCast | SVars$ TrigCopySpell +SVar:DBCopy:Mode$ CantBeCast | +Oracle:Whenever you cast an instant or sorcery spell, copy it for each other instant and sorcery spell you've cast before it this turn. You may choose new targets for the copies. diff --git a/forge-gui/res/cardsfolder/upcoming/unmoored_ego.txt b/forge-gui/res/cardsfolder/upcoming/unmoored_ego.txt new file mode 100644 index 00000000000..2f6d84001b0 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/unmoored_ego.txt @@ -0,0 +1,7 @@ +Name:Unmoored Ego +ManaCost:1 U B +Types:Sorcery +A:SP$ NameCard | Cost$ 1 U B | Defined$ You | SubAbility$ ExileYard | SpellDescription$ Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way. +SVar:ExileYard:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player | TgtPrompt$ Select target player | ChangeType$ Card.NamedCard | Chooser$ You | ChangeNum$ 4 | Hidden$ True | SubAbility$ Exile +SVar: +Oracle:Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way. diff --git a/forge-gui/res/cardsfolder/upcoming/venerated_loxodon.txt b/forge-gui/res/cardsfolder/upcoming/venerated_loxodon.txt new file mode 100644 index 00000000000..a69a8ad8b71 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/venerated_loxodon.txt @@ -0,0 +1,8 @@ +Name:Venerated Loxodon +ManaCost:4 W +Types:Creature Elephant Cleric +PT:4/4 +K:Convoke +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounterAll | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each creature that blocked it. +SVar:TrigPutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.Damaged | CounterType$ P1P1 | CounterNum$ 1 +Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nWhen Venerated Loxodon enters the battlefield, put a +1/+1 counter on each creature that convoked it. diff --git a/forge-gui/res/cardsfolder/upcoming/vraska_golgari_queen.txt b/forge-gui/res/cardsfolder/upcoming/vraska_golgari_queen.txt new file mode 100644 index 00000000000..549e2ea6bd7 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vraska_golgari_queen.txt @@ -0,0 +1,13 @@ +Name:Vraska, Golgari Queen +ManaCost:2 B G +Types:Legendary Planeswalker Vraska +Loyalty:4 +A:AB$ Sacrifice | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | SacValid$ Permanent.Other | SacMessage$ another permanent | Optional$ True | SubAbility$ DBGainLife | SpellDescription$ You may sacrifice another permanent. If you do, you gain 1 life and draw a card. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | NumCards$ 1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ Destroy | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand+cmcLE3 | TgtPrompt$ Select target nonland permanent with converted mana cost 3 or less | SpellDescription$ Destroy target nonland permanent with converted mana cost 3 or less. +A:AB$ Effect | Cost$ SubCounter<9/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Vraska | Image$ emblem_vraska | Triggers$ TrigDamage | SVars$ LoseGame | References$ TrigDamage,LoseGame | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever a creature you control deals combat damage to a player, that player loses the game." +SVar:TrigDamage:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ LoseGame | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control deals combat damage to a player, that player loses the game. +SVar:LoseGame:DB$ LosesGame | Defined$ TriggeredTarget +Oracle:[+2]: You may sacrifice another permanent. If you do, you gain 1 life and draw a card.\n[-3]: Destroy target nonland permanent with converted mana cost 3 or less.\n[-9]: You get an emblem with "Whenever a creature you control deals combat damage to a player, that player loses the game." \ No newline at end of file From 7cdf7538e9bd17e675f2a3a10836f283432e540f Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Fri, 28 Sep 2018 21:25:25 -0400 Subject: [PATCH 027/143] Update formats --- forge-gui/res/formats/Sanctioned/Modern.txt | 2 +- forge-gui/res/formats/Sanctioned/Standard.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/formats/Sanctioned/Modern.txt b/forge-gui/res/formats/Sanctioned/Modern.txt index 738145f390b..12e45ae5ad3 100644 --- a/forge-gui/res/formats/Sanctioned/Modern.txt +++ b/forge-gui/res/formats/Sanctioned/Modern.txt @@ -3,5 +3,5 @@ Name:Modern Order:102 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 +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, GRN Banned:Ancient Den; Birthing Pod; Blazing Shoal; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hypergenesis; Mental Misstep; Ponder; Preordain; Punishing Fire; Rite of Flame; Seat of the Synod; Second Sunrise; Seething Song; Sensei's Divining Top; Skullclamp; Splinter Twin; Stoneforge Mystic; Summer Bloom; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Vault of Whispers diff --git a/forge-gui/res/formats/Sanctioned/Standard.txt b/forge-gui/res/formats/Sanctioned/Standard.txt index 6d8133d15d9..2093082499f 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:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19 +Sets:XLN, RIX, DOM, M19, GRN Banned: Attune with Aether; Rogue Refiner; Rampaging Ferocidon; Ramunap Ruins; Smuggler's Copter; Aetherworks Marvel; Felidar Guardian From 0e9bf4fe4b2809e45e4594c52f6e35e77764efe6 Mon Sep 17 00:00:00 2001 From: KrazyTheFox Date: Sat, 29 Sep 2018 00:07:05 -0400 Subject: [PATCH 028/143] Fix a crash that occurred when no quests were available to load --- .../java/forge/quest/QuestController.java | 52 ++++++++++++------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index bd3fc3570e2..0b15c20ccb1 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -149,7 +149,7 @@ public class QuestController { model.Ratings.add(r); } } - + /** * Gets the my decks. * @@ -429,19 +429,25 @@ public class QuestController { * Reset the duels manager. */ public void resetDuelsManager() { + QuestWorld world = getWorld(); - String path; - if(world.getName().equals(QuestWorld.STANDARDWORLDNAME)){ - this.duelManager = new QuestEventLDADuelManager(); - return; - } - if (world == null || !world.isCustom()){ - path = world == null || world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getDuelsDir(); - }else{ - path = world == null || world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getDuelsDir(); + String path = ForgeConstants.DEFAULT_CHALLENGES_DIR; + + if (world != null) { + + if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) { + this.duelManager = new QuestEventLDADuelManager(); + return; + } else if (world.isCustom()) { + path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getDuelsDir(); + } else { + path = world.getDuelsDir() == null ? ForgeConstants.DEFAULT_DUELS_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getDuelsDir(); + } + } this.duelManager = new QuestEventDuelManager(new File(path)); + } public HashSet GetRating() { @@ -453,19 +459,25 @@ public class QuestController { * Reset the challenges manager. */ public void resetChallengesManager() { + QuestWorld world = getWorld(); - String path; - if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)){ - allChallenges = QuestChallengeGenerator.generateChallenges(); - return; - } - if (world == null || !world.isCustom()){ - path = world == null || world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getChallengesDir(); - }else{ - path = world == null || world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getChallengesDir(); + String path = ForgeConstants.DEFAULT_CHALLENGES_DIR; + + if (world != null) { + + if (world.getName().equals(QuestWorld.STANDARDWORLDNAME)) { + allChallenges = QuestChallengeGenerator.generateChallenges(); + return; + } else if (world.isCustom()) { + path = world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.QUEST_WORLD_DIR + world.getChallengesDir(); + } else { + path = world.getChallengesDir() == null ? ForgeConstants.DEFAULT_CHALLENGES_DIR : ForgeConstants.USER_QUEST_WORLD_DIR + world.getChallengesDir(); + } } - this.allChallenges = new StorageBase("Quest Challenges", new QuestChallengeReader(new File(path))); + + this.allChallenges = new StorageBase<>("Quest Challenges", new QuestChallengeReader(new File(path))); + } /** From 63822c16c1136cd234bfdec6eae197c7633c4eea Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 27 Sep 2018 11:11:47 +0100 Subject: [PATCH 029/143] Updated pre-prerelease Standard LDA deck archetype data for deck generation - assumes new standard format is live (cherry picked from commit 913cce4) (cherry picked from commit 0bffd34) --- forge-gui/res/deckgendecks/Standard.lda.dat | Bin 245259 -> 79297 bytes forge-gui/res/deckgendecks/Standard.raw.dat | Bin 217285 -> 73726 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index a8c44ebc1ea5178e267158f19f0d5854f30e97d8..5f6c6702cd469a48c687f4df3a51db3c1e433f44 100644 GIT binary patch literal 79297 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

0kA?jC1ww) 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 aNi1ThJ2aj8Juu=e109SRR#G(i?EeGQihS+> literal 245259 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 DuUqmd diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat index 69b2e193bfd7cf2f1506e6aa98ce23bbe5bdeba6..64f646413adb8023eda2c562f44055978d6613b6 100644 GIT binary patch literal 73726 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 Date: Sat, 29 Sep 2018 06:58:39 +0100 Subject: [PATCH 030/143] Rerun deck generation with just committed GRN cards (cherry picked from commit 827bd24) --- forge-gui/res/deckgendecks/Standard.lda.dat | Bin 79297 -> 56030 bytes forge-gui/res/deckgendecks/Standard.raw.dat | Bin 73726 -> 60827 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index 5f6c6702cd469a48c687f4df3a51db3c1e433f44..0df128daf319bfb6b5082c48e28de10fe500b464 100644 GIT binary patch literal 56030 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 Bnoa-! literal 79297 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

0kA?jC1ww) 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 aNi1ThJ2aj8Juu=e109SRR#G(i?EeGQihS+> diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat index 64f646413adb8023eda2c562f44055978d6613b6..a9a3fa32a922aeac3ebc88462382a9c91c1b12b7 100644 GIT binary patch literal 60827 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�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 literal 73726 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 Date: Fri, 28 Sep 2018 08:54:58 +0100 Subject: [PATCH 031/143] Crackling Drake (cherry picked from commit 4292012) --- .../res/cardsfolder/upcoming/crackling_drake.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/crackling_drake.txt diff --git a/forge-gui/res/cardsfolder/upcoming/crackling_drake.txt b/forge-gui/res/cardsfolder/upcoming/crackling_drake.txt new file mode 100644 index 00000000000..a5a51fb25ad --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/crackling_drake.txt @@ -0,0 +1,12 @@ +Name:Crackling Drake +ManaCost:U U R R +Types:Creature Drake +PT:*/4 +K:Flying +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | References$ X,GraveCount,ExileCount | Description$ CARDNAME's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +SVar:GraveCount:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn +SVar:ExileCount:Count$ValidExile Instant.YouOwn,Sorcery.YouOwn +SVar:X:SVar$GraveCount/Plus.ExileCount +Oracle:Flying\nCrackling Drake's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard.\nWhen Crackling Drake enters the battlefield, draw a card. From 183a67122762efe39d91f222363162c2ebfccd06 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 27 Sep 2018 11:17:28 +0100 Subject: [PATCH 032/143] Updated Changes.txt to include mention of new random standard quest world (cherry picked from commit 958671d) --- forge-gui/release-files/CHANGES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-gui/release-files/CHANGES.txt b/forge-gui/release-files/CHANGES.txt index 05f0bf1829e..2b5571c599e 100644 --- a/forge-gui/release-files/CHANGES.txt +++ b/forge-gui/release-files/CHANGES.txt @@ -1,2 +1,6 @@ +- Random Quest World - +Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. +In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. + - Bug fixes - As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. From e036465ce3558aad8d7dfda3f9312e294e6fbee9 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sat, 29 Sep 2018 13:57:44 -0400 Subject: [PATCH 033/143] Migrate GRN to their letter folders --- .../cardsfolder/{upcoming => a}/affectionate_indrik.txt | 0 .../cardsfolder/{upcoming => a}/arboretum_elemental.txt | 0 .../res/cardsfolder/{upcoming => a}/arclight_phoenix.txt | 0 .../res/cardsfolder/{upcoming => a}/artful_takedown.txt | 0 .../res/cardsfolder/{upcoming => a}/assassins_trophy.txt | 0 .../res/cardsfolder/{upcoming => a}/assure_assemble.txt | 0 .../cardsfolder/{upcoming => a}/attendant_of_vraska.txt | 0 .../{upcoming => a}/aurelia_exemplar_of_justice.txt | 0 .../res/cardsfolder/{upcoming => b}/barging_sergeant.txt | 0 .../res/cardsfolder/{upcoming => b}/barrier_of_bones.txt | 0 .../res/cardsfolder/{upcoming => b}/bartizan_bats.txt | 0 forge-gui/res/cardsfolder/{upcoming => b}/beacon_bolt.txt | 0 .../res/cardsfolder/{upcoming => b}/beast_whisperer.txt | 0 .../res/cardsfolder/{upcoming => b}/blade_instructor.txt | 0 .../res/cardsfolder/{upcoming => b}/blood_operative.txt | 0 .../res/cardsfolder/{upcoming => b}/book_devourer.txt | 0 .../res/cardsfolder/{upcoming => b}/boros_challenger.txt | 0 .../res/cardsfolder/{upcoming => b}/boros_locket.txt | 0 .../res/cardsfolder/{upcoming => b}/bounty_agent.txt | 0 .../res/cardsfolder/{upcoming => b}/bounty_of_might.txt | 0 forge-gui/res/cardsfolder/{upcoming => b}/burglar_rat.txt | 0 forge-gui/res/cardsfolder/{upcoming => c}/camaraderie.txt | 0 .../res/cardsfolder/{upcoming => c}/candlelight_vigil.txt | 0 .../res/cardsfolder/{upcoming => c}/capture_sphere.txt | 0 .../cardsfolder/{upcoming => c}/centaur_peacemaker.txt | 0 .../res/cardsfolder/{upcoming => c}/chamber_sentry.txt | 0 .../res/cardsfolder/{upcoming => c}/chance_for_glory.txt | 0 .../cardsfolder/{upcoming => c}/chemisters_insight.txt | 0 .../res/cardsfolder/{upcoming => c}/circuitous_route.txt | 0 .../res/cardsfolder/{upcoming => c}/citywatch_sphinx.txt | 0 .../res/cardsfolder/{upcoming => c}/citywide_bust.txt | 0 .../cardsfolder/{upcoming => c}/collar_the_culprit.txt | 0 .../res/cardsfolder/{upcoming => c}/command_the_storm.txt | 0 .../res/cardsfolder/{upcoming => c}/conclave_cavalier.txt | 0 .../cardsfolder/{upcoming => c}/conclave_guildmage.txt | 0 .../res/cardsfolder/{upcoming => c}/conclave_tribunal.txt | 0 .../res/cardsfolder/{upcoming => c}/connive_concoct.txt | 0 .../res/cardsfolder/{upcoming => c}/cosmotronic_wave.txt | 0 .../res/cardsfolder/{upcoming => c}/crackling_drake.txt | 0 .../res/cardsfolder/{upcoming => c}/creeping_chill.txt | 0 .../res/cardsfolder/{upcoming => c}/crush_contraband.txt | 0 .../res/cardsfolder/{upcoming => d}/darkblade_agent.txt | 0 .../res/cardsfolder/{upcoming => d}/dawn_of_hope.txt | 0 .../res/cardsfolder/{upcoming => d}/dazzling_lights.txt | 0 .../res/cardsfolder/{upcoming => d}/deadly_visit.txt | 0 .../res/cardsfolder/{upcoming => d}/deafening_clarion.txt | 0 forge-gui/res/cardsfolder/{upcoming => d}/demotion.txt | 0 .../res/cardsfolder/{upcoming => d}/devious_cover_up.txt | 0 .../cardsfolder/{upcoming => d}/devkarin_dissident.txt | 0 .../res/cardsfolder/{upcoming => d}/dimir_informant.txt | 0 .../res/cardsfolder/{upcoming => d}/dimir_locket.txt | 0 .../res/cardsfolder/{upcoming => d}/dimir_spybug.txt | 0 .../res/cardsfolder/{upcoming => d}/direct_current.txt | 0 .../{upcoming => d}/disinformation_campaign.txt | 0 .../res/cardsfolder/{upcoming => d}/district_guide.txt | 0 .../res/cardsfolder/{upcoming => d}/divine_visitation.txt | 0 .../res/cardsfolder/{upcoming => d}/doom_whisperer.txt | 0 .../res/cardsfolder/{upcoming => d}/douser_of_lights.txt | 0 forge-gui/res/cardsfolder/{upcoming => d}/dream_eater.txt | 0 .../res/cardsfolder/{upcoming => d}/drowned_secrets.txt | 0 .../cardsfolder/{upcoming => e}/electrostatic_field.txt | 0 .../{upcoming => e}/emmara_soul_of_the_accord.txt | 0 .../cardsfolder/{upcoming => e}/enhanced_surveillance.txt | 0 .../res/cardsfolder/{upcoming => e}/erratic_cyclops.txt | 0 .../res/cardsfolder/{upcoming => e}/erstwhile_trooper.txt | 0 .../cardsfolder/{upcoming => e}/etrata_the_silencer.txt | 0 .../cardsfolder/{upcoming => e}/expansion_explosion.txt | 0 .../cardsfolder/{upcoming => e}/experimental_frenzy.txt | 0 .../cardsfolder/{upcoming => f}/fearless_halberdier.txt | 0 .../res/cardsfolder/{upcoming => f}/find_finality.txt | 0 forge-gui/res/cardsfolder/{upcoming => f}/fire_urchin.txt | 0 .../cardsfolder/{upcoming => f}/fireminds_research.txt | 0 .../cardsfolder/{upcoming => f}/flight_of_equenauts.txt | 0 .../res/cardsfolder/{upcoming => f}/flower_flourish.txt | 0 .../cardsfolder/{upcoming => f}/fresh_faced_recruit.txt | 0 .../res/cardsfolder/{upcoming => g}/garrison_sergeant.txt | 0 .../cardsfolder/{upcoming => g}/gatekeeper_gargoyle.txt | 0 .../res/cardsfolder/{upcoming => g}/gateway_plaza.txt | 0 .../res/cardsfolder/{upcoming => g}/generous_stray.txt | 0 .../res/cardsfolder/{upcoming => g}/gird_for_battle.txt | 0 .../{upcoming => g}/glaive_of_the_guildpact.txt | 0 .../res/cardsfolder/{upcoming => g}/glowspore_shaman.txt | 0 .../res/cardsfolder/{upcoming => g}/goblin_banneret.txt | 0 .../cardsfolder/{upcoming => g}/goblin_cratermaker.txt | 0 .../res/cardsfolder/{upcoming => g}/goblin_locksmith.txt | 0 .../cardsfolder/{upcoming => g}/golgari_findbroker.txt | 0 .../res/cardsfolder/{upcoming => g}/golgari_locket.txt | 0 .../res/cardsfolder/{upcoming => g}/golgari_raiders.txt | 0 .../res/cardsfolder/{upcoming => g}/grappling_sundew.txt | 0 .../res/cardsfolder/{upcoming => g}/gravitic_punch.txt | 0 .../cardsfolder/{upcoming => g}/gruesome_menagerie.txt | 0 .../res/cardsfolder/{upcoming => g}/guild_summit.txt | 0 .../res/cardsfolder/{upcoming => g}/guildmages_forum.txt | 0 .../res/cardsfolder/{upcoming => h}/haazda_marshal.txt | 0 .../res/cardsfolder/{upcoming => h}/hammer_dropper.txt | 0 .../res/cardsfolder/{upcoming => h}/hatchery_spider.txt | 0 .../res/cardsfolder/{upcoming => h}/healers_hawk.txt | 0 .../res/cardsfolder/{upcoming => h}/hellkite_whelp.txt | 0 .../res/cardsfolder/{upcoming => h}/hired_poisoner.txt | 0 forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt | 7 ------- .../res/cardsfolder/{upcoming => h}/house_guildmage.txt | 0 .../res/cardsfolder/{upcoming => h}/hunted_witness.txt | 0 .../res/cardsfolder/{upcoming => h}/hypothesizzle.txt | 0 .../cardsfolder/{upcoming => i}/impervious_greatwurm.txt | 0 .../res/cardsfolder/{upcoming => i}/inescapable_blaze.txt | 0 .../res/cardsfolder/{upcoming => i}/inspiring_unicorn.txt | 0 .../{upcoming => i}/integrity_intervention.txt | 0 .../cardsfolder/{upcoming => i}/intrusive_packbeast.txt | 0 .../res/cardsfolder/{upcoming => i}/invert_invent.txt | 0 forge-gui/res/cardsfolder/{upcoming => i}/ionize.txt | 0 forge-gui/res/cardsfolder/i/ironshell_beetle.txt | 8 -------- .../cardsfolder/{upcoming => i}/izoni_thousand_eyed.txt | 0 .../res/cardsfolder/{upcoming => i}/izzet_locket.txt | 0 .../res/cardsfolder/{upcoming => j}/join_shields.txt | 0 .../res/cardsfolder/{upcoming => j}/justice_strike.txt | 0 .../res/cardsfolder/{upcoming => k}/knight_of_autumn.txt | 0 .../res/cardsfolder/{upcoming => k}/kraul_foragers.txt | 0 .../res/cardsfolder/{upcoming => k}/kraul_harpooner.txt | 0 .../res/cardsfolder/{upcoming => k}/kraul_raider.txt | 0 forge-gui/res/cardsfolder/{upcoming => k}/kraul_swarm.txt | 0 forge-gui/res/cardsfolder/{upcoming => l}/lava_coil.txt | 0 .../res/cardsfolder/{upcoming => l}/league_guildmage.txt | 0 forge-gui/res/cardsfolder/{upcoming => l}/leapfrog.txt | 0 .../res/cardsfolder/{upcoming => l}/ledev_champion.txt | 0 .../res/cardsfolder/{upcoming => l}/ledev_guardian.txt | 0 .../res/cardsfolder/{upcoming => l}/legion_guildmage.txt | 0 .../res/cardsfolder/{upcoming => l}/legion_warboss.txt | 0 .../cardsfolder/{upcoming => l}/light_of_the_legion.txt | 0 .../res/cardsfolder/{upcoming => l}/lotleth_giant.txt | 0 .../res/cardsfolder/{upcoming => l}/loxodon_restorer.txt | 0 .../{upcoming => m}/march_of_the_multitudes.txt | 0 .../res/cardsfolder/{upcoming => m}/mausoleum_secrets.txt | 0 .../res/cardsfolder/{upcoming => m}/maximize_altitude.txt | 0 .../res/cardsfolder/{upcoming => m}/maximize_velocity.txt | 0 .../res/cardsfolder/{upcoming => m}/mephitic_vapors.txt | 0 .../res/cardsfolder/{upcoming => m}/midnight_reaper.txt | 0 forge-gui/res/cardsfolder/m/might_of_the_masses.txt | 7 ------- forge-gui/res/cardsfolder/{upcoming => m}/molderhulk.txt | 0 .../res/cardsfolder/{upcoming => m}/moodmark_painter.txt | 0 .../res/cardsfolder/{upcoming => m}/murmuring_mystic.txt | 0 forge-gui/res/cardsfolder/{upcoming => m}/muse_drake.txt | 0 .../res/cardsfolder/{upcoming => n}/necrotic_wound.txt | 0 .../res/cardsfolder/{upcoming => n}/never_happened.txt | 0 .../cardsfolder/{upcoming => n}/nightveil_predator.txt | 0 .../res/cardsfolder/{upcoming => n}/nightveil_sprite.txt | 0 .../res/cardsfolder/{upcoming => n}/niv_mizzet_parun.txt | 0 forge-gui/res/cardsfolder/{upcoming => n}/notion_rain.txt | 0 .../res/cardsfolder/{upcoming => n}/nullhide_ferox.txt | 0 .../res/cardsfolder/{upcoming => o}/ochran_assassin.txt | 0 .../res/cardsfolder/{upcoming => o}/omnispell_adept.txt | 0 .../res/cardsfolder/{upcoming => o}/ornery_goblin.txt | 0 forge-gui/res/cardsfolder/{upcoming => p}/packs_favor.txt | 0 .../res/cardsfolder/{upcoming => p}/parhelion_patrol.txt | 0 .../res/cardsfolder/{upcoming => p}/passwall_adept.txt | 0 .../cardsfolder/{upcoming => p}/pause_for_reflection.txt | 0 .../res/cardsfolder/{upcoming => p}/pelt_collector.txt | 0 .../res/cardsfolder/{upcoming => p}/pilfering_imp.txt | 0 .../cardsfolder/{upcoming => p}/piston_fist_cyclops.txt | 0 .../res/cardsfolder/{upcoming => p}/pitiless_gorgon.txt | 0 .../res/cardsfolder/{upcoming => p}/portcullis_vine.txt | 0 .../res/cardsfolder/{upcoming => p}/precision_bolt.txt | 0 .../res/cardsfolder/{upcoming => p}/price_of_fame.txt | 0 .../res/cardsfolder/{upcoming => q}/quasiduplicate.txt | 0 .../res/cardsfolder/{upcoming => r}/radical_idea.txt | 0 .../cardsfolder/{upcoming => r}/ral_caller_of_storms.txt | 0 .../res/cardsfolder/{upcoming => r}/ral_izzet_viceroy.txt | 0 .../res/cardsfolder/{upcoming => r}/rals_dispersal.txt | 0 .../res/cardsfolder/{upcoming => r}/rals_staticaster.txt | 0 .../cardsfolder/{upcoming => r}/rampaging_monument.txt | 0 .../cardsfolder/{upcoming => r}/response_resurgence.txt | 0 .../res/cardsfolder/{upcoming => r}/rhizome_lurcher.txt | 0 forge-gui/res/cardsfolder/{upcoming => r}/risk_factor.txt | 0 .../res/cardsfolder/{upcoming => r}/ritual_of_soot.txt | 0 forge-gui/res/cardsfolder/{upcoming => r}/roc_charger.txt | 0 .../res/cardsfolder/{upcoming => r}/rosemane_centaur.txt | 0 .../res/cardsfolder/{upcoming => r}/rubblebelt_boar.txt | 0 .../res/cardsfolder/{upcoming => r}/runaway_steam_kin.txt | 0 .../res/cardsfolder/{upcoming => s}/selesnya_locket.txt | 0 .../res/cardsfolder/{upcoming => s}/severed_strands.txt | 0 forge-gui/res/cardsfolder/{upcoming => s}/silent_dart.txt | 0 .../res/cardsfolder/{upcoming => s}/sinister_sabotage.txt | 0 .../res/cardsfolder/{upcoming => s}/skyline_scout.txt | 0 .../cardsfolder/{upcoming => s}/smelt_ward_minotaur.txt | 0 .../res/cardsfolder/{upcoming => s}/sonic_assault.txt | 0 .../res/cardsfolder/{upcoming => s}/spinal_centipede.txt | 0 .../res/cardsfolder/{upcoming => s}/sprouting_renewal.txt | 0 .../res/cardsfolder/{upcoming => s}/status_statue.txt | 0 forge-gui/res/cardsfolder/{upcoming => s}/street_riot.txt | 0 .../res/cardsfolder/{upcoming => s}/sumala_woodshaper.txt | 0 .../res/cardsfolder/{upcoming => s}/sunhome_stalwart.txt | 0 .../res/cardsfolder/{upcoming => s}/swarm_guildmage.txt | 0 .../res/cardsfolder/{upcoming => s}/swathcutter_giant.txt | 0 .../cardsfolder/{upcoming => s}/swiftblade_vindicator.txt | 0 .../res/cardsfolder/{upcoming => s}/sworn_companions.txt | 0 .../cardsfolder/{upcoming => t}/tajic_legions_edge.txt | 0 forge-gui/res/cardsfolder/{upcoming => t}/take_heart.txt | 0 .../cardsfolder/{upcoming => t}/tenth_district_guard.txt | 0 .../res/cardsfolder/{upcoming => t}/thought_erasure.txt | 0 .../cardsfolder/{upcoming => t}/thoughtbound_phantasm.txt | 0 .../res/cardsfolder/{upcoming => t}/torch_courier.txt | 0 .../cardsfolder/{upcoming => t}/trostani_discordant.txt | 0 .../res/cardsfolder/{upcoming => t}/truefire_captain.txt | 0 .../cardsfolder/{upcoming => u}/undercity_necrolisk.txt | 0 .../cardsfolder/{upcoming => u}/undercity_uprising.txt | 0 .../res/cardsfolder/{upcoming => u}/underrealm_lich.txt | 0 .../{upcoming => u}/unexplained_disappearance.txt | 0 .../res/cardsfolder/{upcoming => u}/urban_utopia.txt | 0 .../cardsfolder/{upcoming => v}/vedalken_mesmerist.txt | 0 .../res/cardsfolder/{upcoming => v}/veiled_shade.txt | 0 .../cardsfolder/{upcoming => v}/vernadi_shieldmate.txt | 0 .../res/cardsfolder/{upcoming => v}/vicious_rumors.txt | 0 .../res/cardsfolder/{upcoming => v}/vigorspore_wurm.txt | 0 .../res/cardsfolder/{upcoming => v}/vivid_revival.txt | 0 .../cardsfolder/{upcoming => v}/vraska_regal_gorgon.txt | 0 .../cardsfolder/{upcoming => v}/vraskas_stoneglare.txt | 0 .../res/cardsfolder/{upcoming => w}/wand_of_vertebrae.txt | 0 forge-gui/res/cardsfolder/{upcoming => w}/wary_okapi.txt | 0 .../cardsfolder/{upcoming => w}/watcher_in_the_mist.txt | 0 .../res/cardsfolder/{upcoming => w}/whisper_agent.txt | 0 .../res/cardsfolder/{upcoming => w}/whispering_snitch.txt | 0 .../res/cardsfolder/{upcoming => w}/wild_ceratok.txt | 0 .../res/cardsfolder/{upcoming => w}/wishcoin_crab.txt | 0 .../res/cardsfolder/{upcoming => w}/wojek_bodyguard.txt | 0 .../cardsfolder/{upcoming => w}/worldsoul_colossus.txt | 0 224 files changed, 22 deletions(-) rename forge-gui/res/cardsfolder/{upcoming => a}/affectionate_indrik.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/arboretum_elemental.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/arclight_phoenix.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/artful_takedown.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/assassins_trophy.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/assure_assemble.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/attendant_of_vraska.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => a}/aurelia_exemplar_of_justice.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/barging_sergeant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/barrier_of_bones.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/bartizan_bats.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/beacon_bolt.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/beast_whisperer.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/blade_instructor.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/blood_operative.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/book_devourer.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/boros_challenger.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/boros_locket.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/bounty_agent.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/bounty_of_might.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => b}/burglar_rat.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/camaraderie.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/candlelight_vigil.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/capture_sphere.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/centaur_peacemaker.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/chamber_sentry.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/chance_for_glory.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/chemisters_insight.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/circuitous_route.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/citywatch_sphinx.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/citywide_bust.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/collar_the_culprit.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/command_the_storm.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/conclave_cavalier.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/conclave_guildmage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/conclave_tribunal.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/connive_concoct.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/cosmotronic_wave.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/crackling_drake.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/creeping_chill.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => c}/crush_contraband.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/darkblade_agent.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dawn_of_hope.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dazzling_lights.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/deadly_visit.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/deafening_clarion.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/demotion.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/devious_cover_up.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/devkarin_dissident.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dimir_informant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dimir_locket.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dimir_spybug.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/direct_current.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/disinformation_campaign.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/district_guide.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/divine_visitation.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/doom_whisperer.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/douser_of_lights.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/dream_eater.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => d}/drowned_secrets.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/electrostatic_field.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/emmara_soul_of_the_accord.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/enhanced_surveillance.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/erratic_cyclops.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/erstwhile_trooper.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/etrata_the_silencer.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/expansion_explosion.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => e}/experimental_frenzy.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/fearless_halberdier.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/find_finality.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/fire_urchin.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/fireminds_research.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/flight_of_equenauts.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/flower_flourish.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => f}/fresh_faced_recruit.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/garrison_sergeant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/gatekeeper_gargoyle.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/gateway_plaza.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/generous_stray.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/gird_for_battle.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/glaive_of_the_guildpact.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/glowspore_shaman.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/goblin_banneret.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/goblin_cratermaker.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/goblin_locksmith.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/golgari_findbroker.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/golgari_locket.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/golgari_raiders.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/grappling_sundew.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/gravitic_punch.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/gruesome_menagerie.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/guild_summit.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => g}/guildmages_forum.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/haazda_marshal.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hammer_dropper.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hatchery_spider.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/healers_hawk.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hellkite_whelp.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hired_poisoner.txt (100%) delete mode 100644 forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt rename forge-gui/res/cardsfolder/{upcoming => h}/house_guildmage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hunted_witness.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => h}/hypothesizzle.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/impervious_greatwurm.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/inescapable_blaze.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/inspiring_unicorn.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/integrity_intervention.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/intrusive_packbeast.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/invert_invent.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/ionize.txt (100%) delete mode 100644 forge-gui/res/cardsfolder/i/ironshell_beetle.txt rename forge-gui/res/cardsfolder/{upcoming => i}/izoni_thousand_eyed.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => i}/izzet_locket.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => j}/join_shields.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => j}/justice_strike.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => k}/knight_of_autumn.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => k}/kraul_foragers.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => k}/kraul_harpooner.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => k}/kraul_raider.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => k}/kraul_swarm.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/lava_coil.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/league_guildmage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/leapfrog.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/ledev_champion.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/ledev_guardian.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/legion_guildmage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/legion_warboss.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/light_of_the_legion.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/lotleth_giant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => l}/loxodon_restorer.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/march_of_the_multitudes.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/mausoleum_secrets.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/maximize_altitude.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/maximize_velocity.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/mephitic_vapors.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/midnight_reaper.txt (100%) delete mode 100644 forge-gui/res/cardsfolder/m/might_of_the_masses.txt rename forge-gui/res/cardsfolder/{upcoming => m}/molderhulk.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/moodmark_painter.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/murmuring_mystic.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => m}/muse_drake.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/necrotic_wound.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/never_happened.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/nightveil_predator.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/nightveil_sprite.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/niv_mizzet_parun.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/notion_rain.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => n}/nullhide_ferox.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => o}/ochran_assassin.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => o}/omnispell_adept.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => o}/ornery_goblin.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/packs_favor.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/parhelion_patrol.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/passwall_adept.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/pause_for_reflection.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/pelt_collector.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/pilfering_imp.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/piston_fist_cyclops.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/pitiless_gorgon.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/portcullis_vine.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/precision_bolt.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => p}/price_of_fame.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => q}/quasiduplicate.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/radical_idea.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/ral_caller_of_storms.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/ral_izzet_viceroy.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rals_dispersal.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rals_staticaster.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rampaging_monument.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/response_resurgence.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rhizome_lurcher.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/risk_factor.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/ritual_of_soot.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/roc_charger.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rosemane_centaur.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/rubblebelt_boar.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => r}/runaway_steam_kin.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/selesnya_locket.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/severed_strands.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/silent_dart.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sinister_sabotage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/skyline_scout.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/smelt_ward_minotaur.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sonic_assault.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/spinal_centipede.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sprouting_renewal.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/status_statue.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/street_riot.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sumala_woodshaper.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sunhome_stalwart.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/swarm_guildmage.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/swathcutter_giant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/swiftblade_vindicator.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => s}/sworn_companions.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/tajic_legions_edge.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/take_heart.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/tenth_district_guard.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/thought_erasure.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/thoughtbound_phantasm.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/torch_courier.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/trostani_discordant.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => t}/truefire_captain.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => u}/undercity_necrolisk.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => u}/undercity_uprising.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => u}/underrealm_lich.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => u}/unexplained_disappearance.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => u}/urban_utopia.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vedalken_mesmerist.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/veiled_shade.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vernadi_shieldmate.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vicious_rumors.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vigorspore_wurm.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vivid_revival.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vraska_regal_gorgon.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => v}/vraskas_stoneglare.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/wand_of_vertebrae.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/wary_okapi.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/watcher_in_the_mist.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/whisper_agent.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/whispering_snitch.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/wild_ceratok.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/wishcoin_crab.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/wojek_bodyguard.txt (100%) rename forge-gui/res/cardsfolder/{upcoming => w}/worldsoul_colossus.txt (100%) diff --git a/forge-gui/res/cardsfolder/upcoming/affectionate_indrik.txt b/forge-gui/res/cardsfolder/a/affectionate_indrik.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/affectionate_indrik.txt rename to forge-gui/res/cardsfolder/a/affectionate_indrik.txt diff --git a/forge-gui/res/cardsfolder/upcoming/arboretum_elemental.txt b/forge-gui/res/cardsfolder/a/arboretum_elemental.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/arboretum_elemental.txt rename to forge-gui/res/cardsfolder/a/arboretum_elemental.txt diff --git a/forge-gui/res/cardsfolder/upcoming/arclight_phoenix.txt b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/arclight_phoenix.txt rename to forge-gui/res/cardsfolder/a/arclight_phoenix.txt diff --git a/forge-gui/res/cardsfolder/upcoming/artful_takedown.txt b/forge-gui/res/cardsfolder/a/artful_takedown.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/artful_takedown.txt rename to forge-gui/res/cardsfolder/a/artful_takedown.txt diff --git a/forge-gui/res/cardsfolder/upcoming/assassins_trophy.txt b/forge-gui/res/cardsfolder/a/assassins_trophy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/assassins_trophy.txt rename to forge-gui/res/cardsfolder/a/assassins_trophy.txt diff --git a/forge-gui/res/cardsfolder/upcoming/assure_assemble.txt b/forge-gui/res/cardsfolder/a/assure_assemble.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/assure_assemble.txt rename to forge-gui/res/cardsfolder/a/assure_assemble.txt diff --git a/forge-gui/res/cardsfolder/upcoming/attendant_of_vraska.txt b/forge-gui/res/cardsfolder/a/attendant_of_vraska.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/attendant_of_vraska.txt rename to forge-gui/res/cardsfolder/a/attendant_of_vraska.txt diff --git a/forge-gui/res/cardsfolder/upcoming/aurelia_exemplar_of_justice.txt b/forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/aurelia_exemplar_of_justice.txt rename to forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt diff --git a/forge-gui/res/cardsfolder/upcoming/barging_sergeant.txt b/forge-gui/res/cardsfolder/b/barging_sergeant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/barging_sergeant.txt rename to forge-gui/res/cardsfolder/b/barging_sergeant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/barrier_of_bones.txt b/forge-gui/res/cardsfolder/b/barrier_of_bones.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/barrier_of_bones.txt rename to forge-gui/res/cardsfolder/b/barrier_of_bones.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bartizan_bats.txt b/forge-gui/res/cardsfolder/b/bartizan_bats.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bartizan_bats.txt rename to forge-gui/res/cardsfolder/b/bartizan_bats.txt diff --git a/forge-gui/res/cardsfolder/upcoming/beacon_bolt.txt b/forge-gui/res/cardsfolder/b/beacon_bolt.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/beacon_bolt.txt rename to forge-gui/res/cardsfolder/b/beacon_bolt.txt diff --git a/forge-gui/res/cardsfolder/upcoming/beast_whisperer.txt b/forge-gui/res/cardsfolder/b/beast_whisperer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/beast_whisperer.txt rename to forge-gui/res/cardsfolder/b/beast_whisperer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blade_instructor.txt b/forge-gui/res/cardsfolder/b/blade_instructor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/blade_instructor.txt rename to forge-gui/res/cardsfolder/b/blade_instructor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/blood_operative.txt b/forge-gui/res/cardsfolder/b/blood_operative.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/blood_operative.txt rename to forge-gui/res/cardsfolder/b/blood_operative.txt diff --git a/forge-gui/res/cardsfolder/upcoming/book_devourer.txt b/forge-gui/res/cardsfolder/b/book_devourer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/book_devourer.txt rename to forge-gui/res/cardsfolder/b/book_devourer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/boros_challenger.txt b/forge-gui/res/cardsfolder/b/boros_challenger.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/boros_challenger.txt rename to forge-gui/res/cardsfolder/b/boros_challenger.txt diff --git a/forge-gui/res/cardsfolder/upcoming/boros_locket.txt b/forge-gui/res/cardsfolder/b/boros_locket.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/boros_locket.txt rename to forge-gui/res/cardsfolder/b/boros_locket.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bounty_agent.txt b/forge-gui/res/cardsfolder/b/bounty_agent.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bounty_agent.txt rename to forge-gui/res/cardsfolder/b/bounty_agent.txt diff --git a/forge-gui/res/cardsfolder/upcoming/bounty_of_might.txt b/forge-gui/res/cardsfolder/b/bounty_of_might.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/bounty_of_might.txt rename to forge-gui/res/cardsfolder/b/bounty_of_might.txt diff --git a/forge-gui/res/cardsfolder/upcoming/burglar_rat.txt b/forge-gui/res/cardsfolder/b/burglar_rat.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/burglar_rat.txt rename to forge-gui/res/cardsfolder/b/burglar_rat.txt diff --git a/forge-gui/res/cardsfolder/upcoming/camaraderie.txt b/forge-gui/res/cardsfolder/c/camaraderie.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/camaraderie.txt rename to forge-gui/res/cardsfolder/c/camaraderie.txt diff --git a/forge-gui/res/cardsfolder/upcoming/candlelight_vigil.txt b/forge-gui/res/cardsfolder/c/candlelight_vigil.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/candlelight_vigil.txt rename to forge-gui/res/cardsfolder/c/candlelight_vigil.txt diff --git a/forge-gui/res/cardsfolder/upcoming/capture_sphere.txt b/forge-gui/res/cardsfolder/c/capture_sphere.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/capture_sphere.txt rename to forge-gui/res/cardsfolder/c/capture_sphere.txt diff --git a/forge-gui/res/cardsfolder/upcoming/centaur_peacemaker.txt b/forge-gui/res/cardsfolder/c/centaur_peacemaker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/centaur_peacemaker.txt rename to forge-gui/res/cardsfolder/c/centaur_peacemaker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt b/forge-gui/res/cardsfolder/c/chamber_sentry.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt rename to forge-gui/res/cardsfolder/c/chamber_sentry.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chance_for_glory.txt b/forge-gui/res/cardsfolder/c/chance_for_glory.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chance_for_glory.txt rename to forge-gui/res/cardsfolder/c/chance_for_glory.txt diff --git a/forge-gui/res/cardsfolder/upcoming/chemisters_insight.txt b/forge-gui/res/cardsfolder/c/chemisters_insight.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/chemisters_insight.txt rename to forge-gui/res/cardsfolder/c/chemisters_insight.txt diff --git a/forge-gui/res/cardsfolder/upcoming/circuitous_route.txt b/forge-gui/res/cardsfolder/c/circuitous_route.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/circuitous_route.txt rename to forge-gui/res/cardsfolder/c/circuitous_route.txt diff --git a/forge-gui/res/cardsfolder/upcoming/citywatch_sphinx.txt b/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/citywatch_sphinx.txt rename to forge-gui/res/cardsfolder/c/citywatch_sphinx.txt diff --git a/forge-gui/res/cardsfolder/upcoming/citywide_bust.txt b/forge-gui/res/cardsfolder/c/citywide_bust.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/citywide_bust.txt rename to forge-gui/res/cardsfolder/c/citywide_bust.txt diff --git a/forge-gui/res/cardsfolder/upcoming/collar_the_culprit.txt b/forge-gui/res/cardsfolder/c/collar_the_culprit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/collar_the_culprit.txt rename to forge-gui/res/cardsfolder/c/collar_the_culprit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/command_the_storm.txt b/forge-gui/res/cardsfolder/c/command_the_storm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/command_the_storm.txt rename to forge-gui/res/cardsfolder/c/command_the_storm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/conclave_cavalier.txt b/forge-gui/res/cardsfolder/c/conclave_cavalier.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/conclave_cavalier.txt rename to forge-gui/res/cardsfolder/c/conclave_cavalier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/conclave_guildmage.txt b/forge-gui/res/cardsfolder/c/conclave_guildmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/conclave_guildmage.txt rename to forge-gui/res/cardsfolder/c/conclave_guildmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/conclave_tribunal.txt b/forge-gui/res/cardsfolder/c/conclave_tribunal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/conclave_tribunal.txt rename to forge-gui/res/cardsfolder/c/conclave_tribunal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/connive_concoct.txt b/forge-gui/res/cardsfolder/c/connive_concoct.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/connive_concoct.txt rename to forge-gui/res/cardsfolder/c/connive_concoct.txt diff --git a/forge-gui/res/cardsfolder/upcoming/cosmotronic_wave.txt b/forge-gui/res/cardsfolder/c/cosmotronic_wave.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/cosmotronic_wave.txt rename to forge-gui/res/cardsfolder/c/cosmotronic_wave.txt diff --git a/forge-gui/res/cardsfolder/upcoming/crackling_drake.txt b/forge-gui/res/cardsfolder/c/crackling_drake.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/crackling_drake.txt rename to forge-gui/res/cardsfolder/c/crackling_drake.txt diff --git a/forge-gui/res/cardsfolder/upcoming/creeping_chill.txt b/forge-gui/res/cardsfolder/c/creeping_chill.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/creeping_chill.txt rename to forge-gui/res/cardsfolder/c/creeping_chill.txt diff --git a/forge-gui/res/cardsfolder/upcoming/crush_contraband.txt b/forge-gui/res/cardsfolder/c/crush_contraband.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/crush_contraband.txt rename to forge-gui/res/cardsfolder/c/crush_contraband.txt diff --git a/forge-gui/res/cardsfolder/upcoming/darkblade_agent.txt b/forge-gui/res/cardsfolder/d/darkblade_agent.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/darkblade_agent.txt rename to forge-gui/res/cardsfolder/d/darkblade_agent.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dawn_of_hope.txt b/forge-gui/res/cardsfolder/d/dawn_of_hope.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dawn_of_hope.txt rename to forge-gui/res/cardsfolder/d/dawn_of_hope.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dazzling_lights.txt b/forge-gui/res/cardsfolder/d/dazzling_lights.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dazzling_lights.txt rename to forge-gui/res/cardsfolder/d/dazzling_lights.txt diff --git a/forge-gui/res/cardsfolder/upcoming/deadly_visit.txt b/forge-gui/res/cardsfolder/d/deadly_visit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/deadly_visit.txt rename to forge-gui/res/cardsfolder/d/deadly_visit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/deafening_clarion.txt b/forge-gui/res/cardsfolder/d/deafening_clarion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/deafening_clarion.txt rename to forge-gui/res/cardsfolder/d/deafening_clarion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/demotion.txt b/forge-gui/res/cardsfolder/d/demotion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/demotion.txt rename to forge-gui/res/cardsfolder/d/demotion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/devious_cover_up.txt b/forge-gui/res/cardsfolder/d/devious_cover_up.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/devious_cover_up.txt rename to forge-gui/res/cardsfolder/d/devious_cover_up.txt diff --git a/forge-gui/res/cardsfolder/upcoming/devkarin_dissident.txt b/forge-gui/res/cardsfolder/d/devkarin_dissident.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/devkarin_dissident.txt rename to forge-gui/res/cardsfolder/d/devkarin_dissident.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dimir_informant.txt b/forge-gui/res/cardsfolder/d/dimir_informant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dimir_informant.txt rename to forge-gui/res/cardsfolder/d/dimir_informant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dimir_locket.txt b/forge-gui/res/cardsfolder/d/dimir_locket.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dimir_locket.txt rename to forge-gui/res/cardsfolder/d/dimir_locket.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dimir_spybug.txt b/forge-gui/res/cardsfolder/d/dimir_spybug.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dimir_spybug.txt rename to forge-gui/res/cardsfolder/d/dimir_spybug.txt diff --git a/forge-gui/res/cardsfolder/upcoming/direct_current.txt b/forge-gui/res/cardsfolder/d/direct_current.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/direct_current.txt rename to forge-gui/res/cardsfolder/d/direct_current.txt diff --git a/forge-gui/res/cardsfolder/upcoming/disinformation_campaign.txt b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/disinformation_campaign.txt rename to forge-gui/res/cardsfolder/d/disinformation_campaign.txt diff --git a/forge-gui/res/cardsfolder/upcoming/district_guide.txt b/forge-gui/res/cardsfolder/d/district_guide.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/district_guide.txt rename to forge-gui/res/cardsfolder/d/district_guide.txt diff --git a/forge-gui/res/cardsfolder/upcoming/divine_visitation.txt b/forge-gui/res/cardsfolder/d/divine_visitation.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/divine_visitation.txt rename to forge-gui/res/cardsfolder/d/divine_visitation.txt diff --git a/forge-gui/res/cardsfolder/upcoming/doom_whisperer.txt b/forge-gui/res/cardsfolder/d/doom_whisperer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/doom_whisperer.txt rename to forge-gui/res/cardsfolder/d/doom_whisperer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/douser_of_lights.txt b/forge-gui/res/cardsfolder/d/douser_of_lights.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/douser_of_lights.txt rename to forge-gui/res/cardsfolder/d/douser_of_lights.txt diff --git a/forge-gui/res/cardsfolder/upcoming/dream_eater.txt b/forge-gui/res/cardsfolder/d/dream_eater.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/dream_eater.txt rename to forge-gui/res/cardsfolder/d/dream_eater.txt diff --git a/forge-gui/res/cardsfolder/upcoming/drowned_secrets.txt b/forge-gui/res/cardsfolder/d/drowned_secrets.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/drowned_secrets.txt rename to forge-gui/res/cardsfolder/d/drowned_secrets.txt diff --git a/forge-gui/res/cardsfolder/upcoming/electrostatic_field.txt b/forge-gui/res/cardsfolder/e/electrostatic_field.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/electrostatic_field.txt rename to forge-gui/res/cardsfolder/e/electrostatic_field.txt diff --git a/forge-gui/res/cardsfolder/upcoming/emmara_soul_of_the_accord.txt b/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/emmara_soul_of_the_accord.txt rename to forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt diff --git a/forge-gui/res/cardsfolder/upcoming/enhanced_surveillance.txt b/forge-gui/res/cardsfolder/e/enhanced_surveillance.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/enhanced_surveillance.txt rename to forge-gui/res/cardsfolder/e/enhanced_surveillance.txt diff --git a/forge-gui/res/cardsfolder/upcoming/erratic_cyclops.txt b/forge-gui/res/cardsfolder/e/erratic_cyclops.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/erratic_cyclops.txt rename to forge-gui/res/cardsfolder/e/erratic_cyclops.txt diff --git a/forge-gui/res/cardsfolder/upcoming/erstwhile_trooper.txt b/forge-gui/res/cardsfolder/e/erstwhile_trooper.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/erstwhile_trooper.txt rename to forge-gui/res/cardsfolder/e/erstwhile_trooper.txt diff --git a/forge-gui/res/cardsfolder/upcoming/etrata_the_silencer.txt b/forge-gui/res/cardsfolder/e/etrata_the_silencer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/etrata_the_silencer.txt rename to forge-gui/res/cardsfolder/e/etrata_the_silencer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/expansion_explosion.txt b/forge-gui/res/cardsfolder/e/expansion_explosion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/expansion_explosion.txt rename to forge-gui/res/cardsfolder/e/expansion_explosion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt b/forge-gui/res/cardsfolder/e/experimental_frenzy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/experimental_frenzy.txt rename to forge-gui/res/cardsfolder/e/experimental_frenzy.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fearless_halberdier.txt b/forge-gui/res/cardsfolder/f/fearless_halberdier.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fearless_halberdier.txt rename to forge-gui/res/cardsfolder/f/fearless_halberdier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/find_finality.txt b/forge-gui/res/cardsfolder/f/find_finality.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/find_finality.txt rename to forge-gui/res/cardsfolder/f/find_finality.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fire_urchin.txt b/forge-gui/res/cardsfolder/f/fire_urchin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fire_urchin.txt rename to forge-gui/res/cardsfolder/f/fire_urchin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fireminds_research.txt b/forge-gui/res/cardsfolder/f/fireminds_research.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fireminds_research.txt rename to forge-gui/res/cardsfolder/f/fireminds_research.txt diff --git a/forge-gui/res/cardsfolder/upcoming/flight_of_equenauts.txt b/forge-gui/res/cardsfolder/f/flight_of_equenauts.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/flight_of_equenauts.txt rename to forge-gui/res/cardsfolder/f/flight_of_equenauts.txt diff --git a/forge-gui/res/cardsfolder/upcoming/flower_flourish.txt b/forge-gui/res/cardsfolder/f/flower_flourish.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/flower_flourish.txt rename to forge-gui/res/cardsfolder/f/flower_flourish.txt diff --git a/forge-gui/res/cardsfolder/upcoming/fresh_faced_recruit.txt b/forge-gui/res/cardsfolder/f/fresh_faced_recruit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/fresh_faced_recruit.txt rename to forge-gui/res/cardsfolder/f/fresh_faced_recruit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/garrison_sergeant.txt b/forge-gui/res/cardsfolder/g/garrison_sergeant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/garrison_sergeant.txt rename to forge-gui/res/cardsfolder/g/garrison_sergeant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gatekeeper_gargoyle.txt b/forge-gui/res/cardsfolder/g/gatekeeper_gargoyle.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gatekeeper_gargoyle.txt rename to forge-gui/res/cardsfolder/g/gatekeeper_gargoyle.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gateway_plaza.txt b/forge-gui/res/cardsfolder/g/gateway_plaza.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gateway_plaza.txt rename to forge-gui/res/cardsfolder/g/gateway_plaza.txt diff --git a/forge-gui/res/cardsfolder/upcoming/generous_stray.txt b/forge-gui/res/cardsfolder/g/generous_stray.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/generous_stray.txt rename to forge-gui/res/cardsfolder/g/generous_stray.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gird_for_battle.txt b/forge-gui/res/cardsfolder/g/gird_for_battle.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gird_for_battle.txt rename to forge-gui/res/cardsfolder/g/gird_for_battle.txt diff --git a/forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt b/forge-gui/res/cardsfolder/g/glaive_of_the_guildpact.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt rename to forge-gui/res/cardsfolder/g/glaive_of_the_guildpact.txt diff --git a/forge-gui/res/cardsfolder/upcoming/glowspore_shaman.txt b/forge-gui/res/cardsfolder/g/glowspore_shaman.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/glowspore_shaman.txt rename to forge-gui/res/cardsfolder/g/glowspore_shaman.txt diff --git a/forge-gui/res/cardsfolder/upcoming/goblin_banneret.txt b/forge-gui/res/cardsfolder/g/goblin_banneret.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/goblin_banneret.txt rename to forge-gui/res/cardsfolder/g/goblin_banneret.txt diff --git a/forge-gui/res/cardsfolder/upcoming/goblin_cratermaker.txt b/forge-gui/res/cardsfolder/g/goblin_cratermaker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/goblin_cratermaker.txt rename to forge-gui/res/cardsfolder/g/goblin_cratermaker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/goblin_locksmith.txt b/forge-gui/res/cardsfolder/g/goblin_locksmith.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/goblin_locksmith.txt rename to forge-gui/res/cardsfolder/g/goblin_locksmith.txt diff --git a/forge-gui/res/cardsfolder/upcoming/golgari_findbroker.txt b/forge-gui/res/cardsfolder/g/golgari_findbroker.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/golgari_findbroker.txt rename to forge-gui/res/cardsfolder/g/golgari_findbroker.txt diff --git a/forge-gui/res/cardsfolder/upcoming/golgari_locket.txt b/forge-gui/res/cardsfolder/g/golgari_locket.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/golgari_locket.txt rename to forge-gui/res/cardsfolder/g/golgari_locket.txt diff --git a/forge-gui/res/cardsfolder/upcoming/golgari_raiders.txt b/forge-gui/res/cardsfolder/g/golgari_raiders.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/golgari_raiders.txt rename to forge-gui/res/cardsfolder/g/golgari_raiders.txt diff --git a/forge-gui/res/cardsfolder/upcoming/grappling_sundew.txt b/forge-gui/res/cardsfolder/g/grappling_sundew.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/grappling_sundew.txt rename to forge-gui/res/cardsfolder/g/grappling_sundew.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gravitic_punch.txt b/forge-gui/res/cardsfolder/g/gravitic_punch.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gravitic_punch.txt rename to forge-gui/res/cardsfolder/g/gravitic_punch.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gruesome_menagerie.txt b/forge-gui/res/cardsfolder/g/gruesome_menagerie.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/gruesome_menagerie.txt rename to forge-gui/res/cardsfolder/g/gruesome_menagerie.txt diff --git a/forge-gui/res/cardsfolder/upcoming/guild_summit.txt b/forge-gui/res/cardsfolder/g/guild_summit.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guild_summit.txt rename to forge-gui/res/cardsfolder/g/guild_summit.txt diff --git a/forge-gui/res/cardsfolder/upcoming/guildmages_forum.txt b/forge-gui/res/cardsfolder/g/guildmages_forum.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/guildmages_forum.txt rename to forge-gui/res/cardsfolder/g/guildmages_forum.txt diff --git a/forge-gui/res/cardsfolder/upcoming/haazda_marshal.txt b/forge-gui/res/cardsfolder/h/haazda_marshal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/haazda_marshal.txt rename to forge-gui/res/cardsfolder/h/haazda_marshal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hammer_dropper.txt b/forge-gui/res/cardsfolder/h/hammer_dropper.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hammer_dropper.txt rename to forge-gui/res/cardsfolder/h/hammer_dropper.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hatchery_spider.txt b/forge-gui/res/cardsfolder/h/hatchery_spider.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hatchery_spider.txt rename to forge-gui/res/cardsfolder/h/hatchery_spider.txt diff --git a/forge-gui/res/cardsfolder/upcoming/healers_hawk.txt b/forge-gui/res/cardsfolder/h/healers_hawk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/healers_hawk.txt rename to forge-gui/res/cardsfolder/h/healers_hawk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hellkite_whelp.txt b/forge-gui/res/cardsfolder/h/hellkite_whelp.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hellkite_whelp.txt rename to forge-gui/res/cardsfolder/h/hellkite_whelp.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hired_poisoner.txt b/forge-gui/res/cardsfolder/h/hired_poisoner.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hired_poisoner.txt rename to forge-gui/res/cardsfolder/h/hired_poisoner.txt diff --git a/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt b/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt deleted file mode 100644 index f3e9511ddc8..00000000000 --- a/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt +++ /dev/null @@ -1,7 +0,0 @@ -Name:Hitchclaw Recluse -ManaCost:2 G -Types:Creature Spider -PT:1/4 -K:Reach -SVar:Picture:http://www.wizards.com/global/images/magic/general/hitchclaw_recluse.jpg -Oracle:Reach (This creature can block creatures with flying.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/house_guildmage.txt b/forge-gui/res/cardsfolder/h/house_guildmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/house_guildmage.txt rename to forge-gui/res/cardsfolder/h/house_guildmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hunted_witness.txt b/forge-gui/res/cardsfolder/h/hunted_witness.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hunted_witness.txt rename to forge-gui/res/cardsfolder/h/hunted_witness.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hypothesizzle.txt b/forge-gui/res/cardsfolder/h/hypothesizzle.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/hypothesizzle.txt rename to forge-gui/res/cardsfolder/h/hypothesizzle.txt diff --git a/forge-gui/res/cardsfolder/upcoming/impervious_greatwurm.txt b/forge-gui/res/cardsfolder/i/impervious_greatwurm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/impervious_greatwurm.txt rename to forge-gui/res/cardsfolder/i/impervious_greatwurm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inescapable_blaze.txt b/forge-gui/res/cardsfolder/i/inescapable_blaze.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/inescapable_blaze.txt rename to forge-gui/res/cardsfolder/i/inescapable_blaze.txt diff --git a/forge-gui/res/cardsfolder/upcoming/inspiring_unicorn.txt b/forge-gui/res/cardsfolder/i/inspiring_unicorn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/inspiring_unicorn.txt rename to forge-gui/res/cardsfolder/i/inspiring_unicorn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/integrity_intervention.txt b/forge-gui/res/cardsfolder/i/integrity_intervention.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/integrity_intervention.txt rename to forge-gui/res/cardsfolder/i/integrity_intervention.txt diff --git a/forge-gui/res/cardsfolder/upcoming/intrusive_packbeast.txt b/forge-gui/res/cardsfolder/i/intrusive_packbeast.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/intrusive_packbeast.txt rename to forge-gui/res/cardsfolder/i/intrusive_packbeast.txt diff --git a/forge-gui/res/cardsfolder/upcoming/invert_invent.txt b/forge-gui/res/cardsfolder/i/invert_invent.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/invert_invent.txt rename to forge-gui/res/cardsfolder/i/invert_invent.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ionize.txt b/forge-gui/res/cardsfolder/i/ionize.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ionize.txt rename to forge-gui/res/cardsfolder/i/ionize.txt diff --git a/forge-gui/res/cardsfolder/i/ironshell_beetle.txt b/forge-gui/res/cardsfolder/i/ironshell_beetle.txt deleted file mode 100644 index 39ad66852ba..00000000000 --- a/forge-gui/res/cardsfolder/i/ironshell_beetle.txt +++ /dev/null @@ -1,8 +0,0 @@ -Name:Ironshell Beetle -ManaCost:1 G -Types:Creature Insect -PT:1/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature. -SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 -SVar:Picture:http://www.wizards.com/global/images/magic/general/ironshell_beetle.jpg -Oracle:When Ironshell Beetle enters the battlefield, put a +1/+1 counter on target creature. diff --git a/forge-gui/res/cardsfolder/upcoming/izoni_thousand_eyed.txt b/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/izoni_thousand_eyed.txt rename to forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt diff --git a/forge-gui/res/cardsfolder/upcoming/izzet_locket.txt b/forge-gui/res/cardsfolder/i/izzet_locket.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/izzet_locket.txt rename to forge-gui/res/cardsfolder/i/izzet_locket.txt diff --git a/forge-gui/res/cardsfolder/upcoming/join_shields.txt b/forge-gui/res/cardsfolder/j/join_shields.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/join_shields.txt rename to forge-gui/res/cardsfolder/j/join_shields.txt diff --git a/forge-gui/res/cardsfolder/upcoming/justice_strike.txt b/forge-gui/res/cardsfolder/j/justice_strike.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/justice_strike.txt rename to forge-gui/res/cardsfolder/j/justice_strike.txt diff --git a/forge-gui/res/cardsfolder/upcoming/knight_of_autumn.txt b/forge-gui/res/cardsfolder/k/knight_of_autumn.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/knight_of_autumn.txt rename to forge-gui/res/cardsfolder/k/knight_of_autumn.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kraul_foragers.txt b/forge-gui/res/cardsfolder/k/kraul_foragers.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kraul_foragers.txt rename to forge-gui/res/cardsfolder/k/kraul_foragers.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kraul_harpooner.txt b/forge-gui/res/cardsfolder/k/kraul_harpooner.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kraul_harpooner.txt rename to forge-gui/res/cardsfolder/k/kraul_harpooner.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kraul_raider.txt b/forge-gui/res/cardsfolder/k/kraul_raider.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kraul_raider.txt rename to forge-gui/res/cardsfolder/k/kraul_raider.txt diff --git a/forge-gui/res/cardsfolder/upcoming/kraul_swarm.txt b/forge-gui/res/cardsfolder/k/kraul_swarm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/kraul_swarm.txt rename to forge-gui/res/cardsfolder/k/kraul_swarm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lava_coil.txt b/forge-gui/res/cardsfolder/l/lava_coil.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lava_coil.txt rename to forge-gui/res/cardsfolder/l/lava_coil.txt diff --git a/forge-gui/res/cardsfolder/upcoming/league_guildmage.txt b/forge-gui/res/cardsfolder/l/league_guildmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/league_guildmage.txt rename to forge-gui/res/cardsfolder/l/league_guildmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/leapfrog.txt b/forge-gui/res/cardsfolder/l/leapfrog.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/leapfrog.txt rename to forge-gui/res/cardsfolder/l/leapfrog.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ledev_champion.txt b/forge-gui/res/cardsfolder/l/ledev_champion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ledev_champion.txt rename to forge-gui/res/cardsfolder/l/ledev_champion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ledev_guardian.txt b/forge-gui/res/cardsfolder/l/ledev_guardian.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ledev_guardian.txt rename to forge-gui/res/cardsfolder/l/ledev_guardian.txt diff --git a/forge-gui/res/cardsfolder/upcoming/legion_guildmage.txt b/forge-gui/res/cardsfolder/l/legion_guildmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/legion_guildmage.txt rename to forge-gui/res/cardsfolder/l/legion_guildmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/legion_warboss.txt b/forge-gui/res/cardsfolder/l/legion_warboss.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/legion_warboss.txt rename to forge-gui/res/cardsfolder/l/legion_warboss.txt diff --git a/forge-gui/res/cardsfolder/upcoming/light_of_the_legion.txt b/forge-gui/res/cardsfolder/l/light_of_the_legion.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/light_of_the_legion.txt rename to forge-gui/res/cardsfolder/l/light_of_the_legion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/lotleth_giant.txt b/forge-gui/res/cardsfolder/l/lotleth_giant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/lotleth_giant.txt rename to forge-gui/res/cardsfolder/l/lotleth_giant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/loxodon_restorer.txt b/forge-gui/res/cardsfolder/l/loxodon_restorer.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/loxodon_restorer.txt rename to forge-gui/res/cardsfolder/l/loxodon_restorer.txt diff --git a/forge-gui/res/cardsfolder/upcoming/march_of_the_multitudes.txt b/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/march_of_the_multitudes.txt rename to forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mausoleum_secrets.txt b/forge-gui/res/cardsfolder/m/mausoleum_secrets.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mausoleum_secrets.txt rename to forge-gui/res/cardsfolder/m/mausoleum_secrets.txt diff --git a/forge-gui/res/cardsfolder/upcoming/maximize_altitude.txt b/forge-gui/res/cardsfolder/m/maximize_altitude.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/maximize_altitude.txt rename to forge-gui/res/cardsfolder/m/maximize_altitude.txt diff --git a/forge-gui/res/cardsfolder/upcoming/maximize_velocity.txt b/forge-gui/res/cardsfolder/m/maximize_velocity.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/maximize_velocity.txt rename to forge-gui/res/cardsfolder/m/maximize_velocity.txt diff --git a/forge-gui/res/cardsfolder/upcoming/mephitic_vapors.txt b/forge-gui/res/cardsfolder/m/mephitic_vapors.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/mephitic_vapors.txt rename to forge-gui/res/cardsfolder/m/mephitic_vapors.txt diff --git a/forge-gui/res/cardsfolder/upcoming/midnight_reaper.txt b/forge-gui/res/cardsfolder/m/midnight_reaper.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/midnight_reaper.txt rename to forge-gui/res/cardsfolder/m/midnight_reaper.txt diff --git a/forge-gui/res/cardsfolder/m/might_of_the_masses.txt b/forge-gui/res/cardsfolder/m/might_of_the_masses.txt deleted file mode 100644 index 1a5655ff746..00000000000 --- a/forge-gui/res/cardsfolder/m/might_of_the_masses.txt +++ /dev/null @@ -1,7 +0,0 @@ -Name:Might of the Masses -ManaCost:G -Types:Instant -A:SP$ Pump | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | References$ X | SpellDescription$ Target creature gets +1/+1 until end of turn for each creature you control. -SVar:X:Count$TypeYouCtrl.Creature -SVar:Picture:http://www.wizards.com/global/images/magic/general/might_of_the_masses.jpg -Oracle:Target creature gets +1/+1 until end of turn for each creature you control. diff --git a/forge-gui/res/cardsfolder/upcoming/molderhulk.txt b/forge-gui/res/cardsfolder/m/molderhulk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/molderhulk.txt rename to forge-gui/res/cardsfolder/m/molderhulk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/moodmark_painter.txt b/forge-gui/res/cardsfolder/m/moodmark_painter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/moodmark_painter.txt rename to forge-gui/res/cardsfolder/m/moodmark_painter.txt diff --git a/forge-gui/res/cardsfolder/upcoming/murmuring_mystic.txt b/forge-gui/res/cardsfolder/m/murmuring_mystic.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/murmuring_mystic.txt rename to forge-gui/res/cardsfolder/m/murmuring_mystic.txt diff --git a/forge-gui/res/cardsfolder/upcoming/muse_drake.txt b/forge-gui/res/cardsfolder/m/muse_drake.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/muse_drake.txt rename to forge-gui/res/cardsfolder/m/muse_drake.txt diff --git a/forge-gui/res/cardsfolder/upcoming/necrotic_wound.txt b/forge-gui/res/cardsfolder/n/necrotic_wound.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/necrotic_wound.txt rename to forge-gui/res/cardsfolder/n/necrotic_wound.txt diff --git a/forge-gui/res/cardsfolder/upcoming/never_happened.txt b/forge-gui/res/cardsfolder/n/never_happened.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/never_happened.txt rename to forge-gui/res/cardsfolder/n/never_happened.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nightveil_predator.txt b/forge-gui/res/cardsfolder/n/nightveil_predator.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nightveil_predator.txt rename to forge-gui/res/cardsfolder/n/nightveil_predator.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nightveil_sprite.txt b/forge-gui/res/cardsfolder/n/nightveil_sprite.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nightveil_sprite.txt rename to forge-gui/res/cardsfolder/n/nightveil_sprite.txt diff --git a/forge-gui/res/cardsfolder/upcoming/niv_mizzet_parun.txt b/forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/niv_mizzet_parun.txt rename to forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt diff --git a/forge-gui/res/cardsfolder/upcoming/notion_rain.txt b/forge-gui/res/cardsfolder/n/notion_rain.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/notion_rain.txt rename to forge-gui/res/cardsfolder/n/notion_rain.txt diff --git a/forge-gui/res/cardsfolder/upcoming/nullhide_ferox.txt b/forge-gui/res/cardsfolder/n/nullhide_ferox.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/nullhide_ferox.txt rename to forge-gui/res/cardsfolder/n/nullhide_ferox.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ochran_assassin.txt b/forge-gui/res/cardsfolder/o/ochran_assassin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ochran_assassin.txt rename to forge-gui/res/cardsfolder/o/ochran_assassin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/omnispell_adept.txt b/forge-gui/res/cardsfolder/o/omnispell_adept.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/omnispell_adept.txt rename to forge-gui/res/cardsfolder/o/omnispell_adept.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ornery_goblin.txt b/forge-gui/res/cardsfolder/o/ornery_goblin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ornery_goblin.txt rename to forge-gui/res/cardsfolder/o/ornery_goblin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/packs_favor.txt b/forge-gui/res/cardsfolder/p/packs_favor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/packs_favor.txt rename to forge-gui/res/cardsfolder/p/packs_favor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/parhelion_patrol.txt b/forge-gui/res/cardsfolder/p/parhelion_patrol.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/parhelion_patrol.txt rename to forge-gui/res/cardsfolder/p/parhelion_patrol.txt diff --git a/forge-gui/res/cardsfolder/upcoming/passwall_adept.txt b/forge-gui/res/cardsfolder/p/passwall_adept.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/passwall_adept.txt rename to forge-gui/res/cardsfolder/p/passwall_adept.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pause_for_reflection.txt b/forge-gui/res/cardsfolder/p/pause_for_reflection.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pause_for_reflection.txt rename to forge-gui/res/cardsfolder/p/pause_for_reflection.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pelt_collector.txt b/forge-gui/res/cardsfolder/p/pelt_collector.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pelt_collector.txt rename to forge-gui/res/cardsfolder/p/pelt_collector.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pilfering_imp.txt b/forge-gui/res/cardsfolder/p/pilfering_imp.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pilfering_imp.txt rename to forge-gui/res/cardsfolder/p/pilfering_imp.txt diff --git a/forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt b/forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt rename to forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt diff --git a/forge-gui/res/cardsfolder/upcoming/pitiless_gorgon.txt b/forge-gui/res/cardsfolder/p/pitiless_gorgon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/pitiless_gorgon.txt rename to forge-gui/res/cardsfolder/p/pitiless_gorgon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/portcullis_vine.txt b/forge-gui/res/cardsfolder/p/portcullis_vine.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/portcullis_vine.txt rename to forge-gui/res/cardsfolder/p/portcullis_vine.txt diff --git a/forge-gui/res/cardsfolder/upcoming/precision_bolt.txt b/forge-gui/res/cardsfolder/p/precision_bolt.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/precision_bolt.txt rename to forge-gui/res/cardsfolder/p/precision_bolt.txt diff --git a/forge-gui/res/cardsfolder/upcoming/price_of_fame.txt b/forge-gui/res/cardsfolder/p/price_of_fame.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/price_of_fame.txt rename to forge-gui/res/cardsfolder/p/price_of_fame.txt diff --git a/forge-gui/res/cardsfolder/upcoming/quasiduplicate.txt b/forge-gui/res/cardsfolder/q/quasiduplicate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/quasiduplicate.txt rename to forge-gui/res/cardsfolder/q/quasiduplicate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/radical_idea.txt b/forge-gui/res/cardsfolder/r/radical_idea.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/radical_idea.txt rename to forge-gui/res/cardsfolder/r/radical_idea.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ral_caller_of_storms.txt b/forge-gui/res/cardsfolder/r/ral_caller_of_storms.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ral_caller_of_storms.txt rename to forge-gui/res/cardsfolder/r/ral_caller_of_storms.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ral_izzet_viceroy.txt b/forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ral_izzet_viceroy.txt rename to forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rals_dispersal.txt b/forge-gui/res/cardsfolder/r/rals_dispersal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rals_dispersal.txt rename to forge-gui/res/cardsfolder/r/rals_dispersal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rals_staticaster.txt b/forge-gui/res/cardsfolder/r/rals_staticaster.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rals_staticaster.txt rename to forge-gui/res/cardsfolder/r/rals_staticaster.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rampaging_monument.txt b/forge-gui/res/cardsfolder/r/rampaging_monument.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rampaging_monument.txt rename to forge-gui/res/cardsfolder/r/rampaging_monument.txt diff --git a/forge-gui/res/cardsfolder/upcoming/response_resurgence.txt b/forge-gui/res/cardsfolder/r/response_resurgence.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/response_resurgence.txt rename to forge-gui/res/cardsfolder/r/response_resurgence.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rhizome_lurcher.txt b/forge-gui/res/cardsfolder/r/rhizome_lurcher.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rhizome_lurcher.txt rename to forge-gui/res/cardsfolder/r/rhizome_lurcher.txt diff --git a/forge-gui/res/cardsfolder/upcoming/risk_factor.txt b/forge-gui/res/cardsfolder/r/risk_factor.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/risk_factor.txt rename to forge-gui/res/cardsfolder/r/risk_factor.txt diff --git a/forge-gui/res/cardsfolder/upcoming/ritual_of_soot.txt b/forge-gui/res/cardsfolder/r/ritual_of_soot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/ritual_of_soot.txt rename to forge-gui/res/cardsfolder/r/ritual_of_soot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/roc_charger.txt b/forge-gui/res/cardsfolder/r/roc_charger.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/roc_charger.txt rename to forge-gui/res/cardsfolder/r/roc_charger.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rosemane_centaur.txt b/forge-gui/res/cardsfolder/r/rosemane_centaur.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rosemane_centaur.txt rename to forge-gui/res/cardsfolder/r/rosemane_centaur.txt diff --git a/forge-gui/res/cardsfolder/upcoming/rubblebelt_boar.txt b/forge-gui/res/cardsfolder/r/rubblebelt_boar.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/rubblebelt_boar.txt rename to forge-gui/res/cardsfolder/r/rubblebelt_boar.txt diff --git a/forge-gui/res/cardsfolder/upcoming/runaway_steam_kin.txt b/forge-gui/res/cardsfolder/r/runaway_steam_kin.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/runaway_steam_kin.txt rename to forge-gui/res/cardsfolder/r/runaway_steam_kin.txt diff --git a/forge-gui/res/cardsfolder/upcoming/selesnya_locket.txt b/forge-gui/res/cardsfolder/s/selesnya_locket.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/selesnya_locket.txt rename to forge-gui/res/cardsfolder/s/selesnya_locket.txt diff --git a/forge-gui/res/cardsfolder/upcoming/severed_strands.txt b/forge-gui/res/cardsfolder/s/severed_strands.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/severed_strands.txt rename to forge-gui/res/cardsfolder/s/severed_strands.txt diff --git a/forge-gui/res/cardsfolder/upcoming/silent_dart.txt b/forge-gui/res/cardsfolder/s/silent_dart.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/silent_dart.txt rename to forge-gui/res/cardsfolder/s/silent_dart.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sinister_sabotage.txt b/forge-gui/res/cardsfolder/s/sinister_sabotage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sinister_sabotage.txt rename to forge-gui/res/cardsfolder/s/sinister_sabotage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/skyline_scout.txt b/forge-gui/res/cardsfolder/s/skyline_scout.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/skyline_scout.txt rename to forge-gui/res/cardsfolder/s/skyline_scout.txt diff --git a/forge-gui/res/cardsfolder/upcoming/smelt_ward_minotaur.txt b/forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/smelt_ward_minotaur.txt rename to forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sonic_assault.txt b/forge-gui/res/cardsfolder/s/sonic_assault.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sonic_assault.txt rename to forge-gui/res/cardsfolder/s/sonic_assault.txt diff --git a/forge-gui/res/cardsfolder/upcoming/spinal_centipede.txt b/forge-gui/res/cardsfolder/s/spinal_centipede.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/spinal_centipede.txt rename to forge-gui/res/cardsfolder/s/spinal_centipede.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sprouting_renewal.txt b/forge-gui/res/cardsfolder/s/sprouting_renewal.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sprouting_renewal.txt rename to forge-gui/res/cardsfolder/s/sprouting_renewal.txt diff --git a/forge-gui/res/cardsfolder/upcoming/status_statue.txt b/forge-gui/res/cardsfolder/s/status_statue.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/status_statue.txt rename to forge-gui/res/cardsfolder/s/status_statue.txt diff --git a/forge-gui/res/cardsfolder/upcoming/street_riot.txt b/forge-gui/res/cardsfolder/s/street_riot.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/street_riot.txt rename to forge-gui/res/cardsfolder/s/street_riot.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sumala_woodshaper.txt b/forge-gui/res/cardsfolder/s/sumala_woodshaper.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sumala_woodshaper.txt rename to forge-gui/res/cardsfolder/s/sumala_woodshaper.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sunhome_stalwart.txt b/forge-gui/res/cardsfolder/s/sunhome_stalwart.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sunhome_stalwart.txt rename to forge-gui/res/cardsfolder/s/sunhome_stalwart.txt diff --git a/forge-gui/res/cardsfolder/upcoming/swarm_guildmage.txt b/forge-gui/res/cardsfolder/s/swarm_guildmage.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/swarm_guildmage.txt rename to forge-gui/res/cardsfolder/s/swarm_guildmage.txt diff --git a/forge-gui/res/cardsfolder/upcoming/swathcutter_giant.txt b/forge-gui/res/cardsfolder/s/swathcutter_giant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/swathcutter_giant.txt rename to forge-gui/res/cardsfolder/s/swathcutter_giant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/swiftblade_vindicator.txt b/forge-gui/res/cardsfolder/s/swiftblade_vindicator.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/swiftblade_vindicator.txt rename to forge-gui/res/cardsfolder/s/swiftblade_vindicator.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_companions.txt b/forge-gui/res/cardsfolder/s/sworn_companions.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/sworn_companions.txt rename to forge-gui/res/cardsfolder/s/sworn_companions.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tajic_legions_edge.txt b/forge-gui/res/cardsfolder/t/tajic_legions_edge.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tajic_legions_edge.txt rename to forge-gui/res/cardsfolder/t/tajic_legions_edge.txt diff --git a/forge-gui/res/cardsfolder/upcoming/take_heart.txt b/forge-gui/res/cardsfolder/t/take_heart.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/take_heart.txt rename to forge-gui/res/cardsfolder/t/take_heart.txt diff --git a/forge-gui/res/cardsfolder/upcoming/tenth_district_guard.txt b/forge-gui/res/cardsfolder/t/tenth_district_guard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/tenth_district_guard.txt rename to forge-gui/res/cardsfolder/t/tenth_district_guard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/thought_erasure.txt b/forge-gui/res/cardsfolder/t/thought_erasure.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/thought_erasure.txt rename to forge-gui/res/cardsfolder/t/thought_erasure.txt diff --git a/forge-gui/res/cardsfolder/upcoming/thoughtbound_phantasm.txt b/forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/thoughtbound_phantasm.txt rename to forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/torch_courier.txt b/forge-gui/res/cardsfolder/t/torch_courier.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/torch_courier.txt rename to forge-gui/res/cardsfolder/t/torch_courier.txt diff --git a/forge-gui/res/cardsfolder/upcoming/trostani_discordant.txt b/forge-gui/res/cardsfolder/t/trostani_discordant.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/trostani_discordant.txt rename to forge-gui/res/cardsfolder/t/trostani_discordant.txt diff --git a/forge-gui/res/cardsfolder/upcoming/truefire_captain.txt b/forge-gui/res/cardsfolder/t/truefire_captain.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/truefire_captain.txt rename to forge-gui/res/cardsfolder/t/truefire_captain.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undercity_necrolisk.txt b/forge-gui/res/cardsfolder/u/undercity_necrolisk.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undercity_necrolisk.txt rename to forge-gui/res/cardsfolder/u/undercity_necrolisk.txt diff --git a/forge-gui/res/cardsfolder/upcoming/undercity_uprising.txt b/forge-gui/res/cardsfolder/u/undercity_uprising.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/undercity_uprising.txt rename to forge-gui/res/cardsfolder/u/undercity_uprising.txt diff --git a/forge-gui/res/cardsfolder/upcoming/underrealm_lich.txt b/forge-gui/res/cardsfolder/u/underrealm_lich.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/underrealm_lich.txt rename to forge-gui/res/cardsfolder/u/underrealm_lich.txt diff --git a/forge-gui/res/cardsfolder/upcoming/unexplained_disappearance.txt b/forge-gui/res/cardsfolder/u/unexplained_disappearance.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/unexplained_disappearance.txt rename to forge-gui/res/cardsfolder/u/unexplained_disappearance.txt diff --git a/forge-gui/res/cardsfolder/upcoming/urban_utopia.txt b/forge-gui/res/cardsfolder/u/urban_utopia.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/urban_utopia.txt rename to forge-gui/res/cardsfolder/u/urban_utopia.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vedalken_mesmerist.txt b/forge-gui/res/cardsfolder/v/vedalken_mesmerist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vedalken_mesmerist.txt rename to forge-gui/res/cardsfolder/v/vedalken_mesmerist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/veiled_shade.txt b/forge-gui/res/cardsfolder/v/veiled_shade.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/veiled_shade.txt rename to forge-gui/res/cardsfolder/v/veiled_shade.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vernadi_shieldmate.txt b/forge-gui/res/cardsfolder/v/vernadi_shieldmate.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vernadi_shieldmate.txt rename to forge-gui/res/cardsfolder/v/vernadi_shieldmate.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vicious_rumors.txt b/forge-gui/res/cardsfolder/v/vicious_rumors.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vicious_rumors.txt rename to forge-gui/res/cardsfolder/v/vicious_rumors.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt b/forge-gui/res/cardsfolder/v/vigorspore_wurm.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt rename to forge-gui/res/cardsfolder/v/vigorspore_wurm.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vivid_revival.txt b/forge-gui/res/cardsfolder/v/vivid_revival.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vivid_revival.txt rename to forge-gui/res/cardsfolder/v/vivid_revival.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vraska_regal_gorgon.txt b/forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vraska_regal_gorgon.txt rename to forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt diff --git a/forge-gui/res/cardsfolder/upcoming/vraskas_stoneglare.txt b/forge-gui/res/cardsfolder/v/vraskas_stoneglare.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/vraskas_stoneglare.txt rename to forge-gui/res/cardsfolder/v/vraskas_stoneglare.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wand_of_vertebrae.txt b/forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wand_of_vertebrae.txt rename to forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wary_okapi.txt b/forge-gui/res/cardsfolder/w/wary_okapi.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wary_okapi.txt rename to forge-gui/res/cardsfolder/w/wary_okapi.txt diff --git a/forge-gui/res/cardsfolder/upcoming/watcher_in_the_mist.txt b/forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/watcher_in_the_mist.txt rename to forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt diff --git a/forge-gui/res/cardsfolder/upcoming/whisper_agent.txt b/forge-gui/res/cardsfolder/w/whisper_agent.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/whisper_agent.txt rename to forge-gui/res/cardsfolder/w/whisper_agent.txt diff --git a/forge-gui/res/cardsfolder/upcoming/whispering_snitch.txt b/forge-gui/res/cardsfolder/w/whispering_snitch.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/whispering_snitch.txt rename to forge-gui/res/cardsfolder/w/whispering_snitch.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wild_ceratok.txt b/forge-gui/res/cardsfolder/w/wild_ceratok.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wild_ceratok.txt rename to forge-gui/res/cardsfolder/w/wild_ceratok.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wishcoin_crab.txt b/forge-gui/res/cardsfolder/w/wishcoin_crab.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wishcoin_crab.txt rename to forge-gui/res/cardsfolder/w/wishcoin_crab.txt diff --git a/forge-gui/res/cardsfolder/upcoming/wojek_bodyguard.txt b/forge-gui/res/cardsfolder/w/wojek_bodyguard.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/wojek_bodyguard.txt rename to forge-gui/res/cardsfolder/w/wojek_bodyguard.txt diff --git a/forge-gui/res/cardsfolder/upcoming/worldsoul_colossus.txt b/forge-gui/res/cardsfolder/w/worldsoul_colossus.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/worldsoul_colossus.txt rename to forge-gui/res/cardsfolder/w/worldsoul_colossus.txt From 17062eecdb1f7cf652d2e07fda7db21667725d3e Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sat, 29 Sep 2018 14:03:22 -0400 Subject: [PATCH 034/143] Not sure why these reprints got deleted by migrate script? --- forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt | 7 +++++++ forge-gui/res/cardsfolder/i/ironshell_beetle.txt | 8 ++++++++ forge-gui/res/cardsfolder/m/might_of_the_masses.txt | 7 +++++++ 3 files changed, 22 insertions(+) create mode 100644 forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt create mode 100644 forge-gui/res/cardsfolder/i/ironshell_beetle.txt create mode 100644 forge-gui/res/cardsfolder/m/might_of_the_masses.txt diff --git a/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt b/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt new file mode 100644 index 00000000000..f3e9511ddc8 --- /dev/null +++ b/forge-gui/res/cardsfolder/h/hitchclaw_recluse.txt @@ -0,0 +1,7 @@ +Name:Hitchclaw Recluse +ManaCost:2 G +Types:Creature Spider +PT:1/4 +K:Reach +SVar:Picture:http://www.wizards.com/global/images/magic/general/hitchclaw_recluse.jpg +Oracle:Reach (This creature can block creatures with flying.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/i/ironshell_beetle.txt b/forge-gui/res/cardsfolder/i/ironshell_beetle.txt new file mode 100644 index 00000000000..39ad66852ba --- /dev/null +++ b/forge-gui/res/cardsfolder/i/ironshell_beetle.txt @@ -0,0 +1,8 @@ +Name:Ironshell Beetle +ManaCost:1 G +Types:Creature Insect +PT:1/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature. +SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 +SVar:Picture:http://www.wizards.com/global/images/magic/general/ironshell_beetle.jpg +Oracle:When Ironshell Beetle enters the battlefield, put a +1/+1 counter on target creature. diff --git a/forge-gui/res/cardsfolder/m/might_of_the_masses.txt b/forge-gui/res/cardsfolder/m/might_of_the_masses.txt new file mode 100644 index 00000000000..1a5655ff746 --- /dev/null +++ b/forge-gui/res/cardsfolder/m/might_of_the_masses.txt @@ -0,0 +1,7 @@ +Name:Might of the Masses +ManaCost:G +Types:Instant +A:SP$ Pump | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | References$ X | SpellDescription$ Target creature gets +1/+1 until end of turn for each creature you control. +SVar:X:Count$TypeYouCtrl.Creature +SVar:Picture:http://www.wizards.com/global/images/magic/general/might_of_the_masses.jpg +Oracle:Target creature gets +1/+1 until end of turn for each creature you control. From be5c3a040198d5448cc5bd16aca352a49eef162c Mon Sep 17 00:00:00 2001 From: KrazyTheFox Date: Sat, 29 Sep 2018 14:03:44 -0400 Subject: [PATCH 035/143] Add GRN and token changes to CHANGES.txt --- forge-gui/release-files/CHANGES.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge-gui/release-files/CHANGES.txt b/forge-gui/release-files/CHANGES.txt index 2b5571c599e..2040ced2470 100644 --- a/forge-gui/release-files/CHANGES.txt +++ b/forge-gui/release-files/CHANGES.txt @@ -1,3 +1,9 @@ +- Guilds of Ravnica - +Most of Guilds of Ravnica has been implemented and is available in this release. We're working hard on getting the last few cards added. + +- Token Changes - +Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. + - Random Quest World - Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. From 5f5bcc35ad40c6c04f2f51cb626b478799dda273 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sat, 29 Sep 2018 14:06:29 -0400 Subject: [PATCH 036/143] Fix migrateupcoming script and remove scripted reprints --- forge-gui/res/cardsfolder/upcoming/hitchclaw_recluse.txt | 6 ------ forge-gui/res/cardsfolder/upcoming/ironshell_beetle.txt | 7 ------- forge-gui/res/cardsfolder/upcoming/might_of_the_masses.txt | 6 ------ forge-gui/tools/migrateUpcoming.py | 2 +- 4 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 forge-gui/res/cardsfolder/upcoming/hitchclaw_recluse.txt delete mode 100644 forge-gui/res/cardsfolder/upcoming/ironshell_beetle.txt delete mode 100644 forge-gui/res/cardsfolder/upcoming/might_of_the_masses.txt diff --git a/forge-gui/res/cardsfolder/upcoming/hitchclaw_recluse.txt b/forge-gui/res/cardsfolder/upcoming/hitchclaw_recluse.txt deleted file mode 100644 index 96575340242..00000000000 --- a/forge-gui/res/cardsfolder/upcoming/hitchclaw_recluse.txt +++ /dev/null @@ -1,6 +0,0 @@ -Name:Hitchclaw Recluse -ManaCost:2 G -Types:Creature Spider -PT:1/4 -K:Reach -Oracle:Reach (This creature can block creatures with flying.) diff --git a/forge-gui/res/cardsfolder/upcoming/ironshell_beetle.txt b/forge-gui/res/cardsfolder/upcoming/ironshell_beetle.txt deleted file mode 100644 index 61ddcf70609..00000000000 --- a/forge-gui/res/cardsfolder/upcoming/ironshell_beetle.txt +++ /dev/null @@ -1,7 +0,0 @@ -Name:Ironshell Beetle -ManaCost:1 G -Types:Creature Insect -PT:1/1 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature. -SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 -Oracle:When Ironshell Beetle enters the battlefield, put a +1/+1 counter on target creature. diff --git a/forge-gui/res/cardsfolder/upcoming/might_of_the_masses.txt b/forge-gui/res/cardsfolder/upcoming/might_of_the_masses.txt deleted file mode 100644 index 055663bcfc4..00000000000 --- a/forge-gui/res/cardsfolder/upcoming/might_of_the_masses.txt +++ /dev/null @@ -1,6 +0,0 @@ -Name:Might of the Masses -ManaCost:G -Types:Instant -A:SP$ Pump | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ +X | References$ X | SpellDescription$ Target creature gets +1/+1 until end of turn for each creature you control. -SVar:X:Count$TypeYouCtrl.Creature -Oracle:Target creature gets +1/+1 until end of turn for each creature you control. diff --git a/forge-gui/tools/migrateUpcoming.py b/forge-gui/tools/migrateUpcoming.py index 9303b7a2544..27eee53eb3b 100644 --- a/forge-gui/tools/migrateUpcoming.py +++ b/forge-gui/tools/migrateUpcoming.py @@ -12,6 +12,6 @@ for dirName, subdirList, fileList in os.walk(upcoming): newFile = os.path.join(cardsfolder, filename[0], filename) if os.path.exists(newFile): - subprocess.call('git rm %s' % (newFile), shell=True) + subprocess.call('git rm %s' % (curLocation), shell=True) else: subprocess.call('git mv %s %s' % (curLocation, newFile), shell=True) \ No newline at end of file From efca55083c520644a24c0847b13a60b36ce72431 Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Sat, 29 Sep 2018 19:51:13 +0000 Subject: [PATCH 037/143] Update README.txt for release --- forge-gui/README.txt | 94 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/forge-gui/README.txt b/forge-gui/README.txt index 11b369846f2..9bfcd4e83ef 100644 --- a/forge-gui/README.txt +++ b/forge-gui/README.txt @@ -1 +1,93 @@ -This file is automatically updated by our release bot on Discord, Blacksmith. It is created from the files present in the 'release-files' directory. Please do not hand-edit this file if using the bot to perform a release, as your changes will be overwritten. \ No newline at end of file +Forge: 09/29/2018 ver 1.6.16 + +18176 cards in total. + + +-------------- +Release Notes: +-------------- + +- New Cards - +Vigorspore Wurm; Vedalken Mesmerist; Vernadi Shieldmate; Vraska, Regal Gorgon; Vivid Revival; Vraska's Stoneglare; Vicious Rumors; Veiled Shade; Knight of Autumn; Kraul Foragers; Kraul Raider; Kraul Harpooner; Kraul Swarm; Tajic, Legion's Edge; Take Heart; Torch Courier; Truefire Captain; Thoughtbound Phantasm; Tenth District Guard; Thought Erasure; Trostani Discordant; Circuitous Route; Citywatch Sphinx; Citywide Bust; Conclave Tribunal; Collar the Culprit; Connive; Conclave Guildmage; Crackling Drake; Creeping Chill; Centaur Peacemaker; Camaraderie; Capture Sphere; Cosmotronic Wave; Chance for Glory; Command the Storm; Conclave Cavalier; Chamber Sentry; Crush Contraband; Chemister's Insight; Candlelight Vigil; Guildmages' Forum; Gateway Plaza; Golgari Raiders; Gatekeeper Gargoyle; Golgari Locket; Goblin Banneret; Grappling Sundew; Guild Summit; Garrison Sergeant; Gruesome Menagerie; Golgari Findbroker; Glowspore Shaman; Gird for Battle; Goblin Cratermaker; Glaive of the Guildpact; Generous Stray; Gravitic Punch; Goblin Locksmith; Worldsoul Colossus; Wary Okapi; Watcher in the Mist; Wand of Vertebrae; Wild Ceratok; Wojek Bodyguard; Wishcoin Crab; Whisper Agent; Whispering Snitch; Impervious Greatwurm; Izzet Locket; Ionize; Inescapable Blaze; Invert; Integrity; Inspiring Unicorn; Izoni, Thousand-Eyed; Intrusive Packbeast; Douser of Lights; Dawn of Hope; Demotion; Deafening Clarion; Dimir Spybug; Dimir Informant; Doom Whisperer; District Guide; Dream Eater; Divine Visitation; Deadly Visit; Dazzling Lights; Disinformation Campaign; Darkblade Agent; Drowned Secrets; Devkarin Dissident; Direct Current; Devious Cover-Up; Dimir Locket; Justice Strike; Join Shields; Attendant of Vraska; Assure; Affectionate Indrik; Artful Takedown; Assassin's Trophy; Arboretum Elemental; Aurelia, Exemplar of Justice; Arclight Phoenix; Pelt Collector; Precision Bolt; Passwall Adept; Pitiless Gorgon; Price of Fame; Pause for Reflection; Pack's Favor; Parhelion Patrol; Pilfering Imp; Portcullis Vine; Piston-Fist Cyclops; Ral, Caller of Storms; Rhizome Lurcher; Ral's Dispersal; Roc Charger; Ral's Staticaster; Rosemane Centaur; Ral, Izzet Viceroy; Radical Idea; Ritual of Soot; Risk Factor; Runaway Steam-Kin; Rampaging Monument; Response; Rubblebelt Boar; Light of the Legion; Ledev Champion; Lava Coil; Leapfrog; Lotleth Giant; Loxodon Restorer; Ledev Guardian; Legion Warboss; League Guildmage; Legion Guildmage; Heavenly Blademaster; Hired Poisoner; Haazda Marshal; Hatchery Spider; Hunted Witness; House Guildmage; Healer's Hawk; Hammer Dropper; Hypothesizzle; Hellkite Whelp; Niv-Mizzet, Parun; Never Happened; Notion Rain; Necrotic Wound; Nightveil Sprite; Najeela, the Blade-Blossom ; Nullhide Ferox; Nightveil Predator; Smelt-Ward Minotaur; Swarm Guildmage; Sumala Woodshaper; Sonic Assault; Spinal Centipede; Severed Strands; Sunhome Stalwart; Skyline Scout; Swathcutter Giant; Selesnya Locket; Swiftblade Vindicator; Sprouting Renewal; Status; Silent Dart; Sinister Sabotage; Sworn Companions; Street Riot; Blade Instructor; Book Devourer; Barrier of Bones; Blood Operative; Boros Challenger; Burglar Rat; Barging Sergeant; Bartizan Bats; Bounty Agent; Boros Locket; Beast Whisperer; Bounty of Might; Beacon Bolt; Expansion; Electrostatic Field; Etrata, the Silencer; Experimental Frenzy; Erstwhile Trooper; Emmara, Soul of the Accord; Enhanced Surveillance; Erratic Cyclops; Underrealm Lich; Unexplained Disappearance; Urban Utopia; Undercity Uprising; Undercity Necrolisk; Ornery Goblin; Omnispell Adept; Ochran Assassin; Find; Fire Urchin; Flight of Equenauts; Fearless Halberdier; Fresh-Faced Recruit; Firemind's Research; Flower; Molderhulk; Mausoleum Secrets; Moodmark Painter; Maximize Altitude; Murmuring Mystic; March of the Multitudes; Muse Drake; Mephitic Vapors; Maximize Velocity; Midnight Reaper; Quasiduplicate + +- Guilds of Ravnica - +Most of Guilds of Ravnica has been implemented and is available in this release. We're working hard on getting the last few cards added. + +- Token Changes - +Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. + +- Random Quest World - +Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. +In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. + +- Bug fixes - +As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. + +------------- +Known Issues: +------------- + +Online multiplayer functionality has been restored, but is still a Work in Progress. We do have a dedicated developer actively working on the online multiplayer feature. + +"When you pay a cost" trigger for M19 cards don't work 100% correctly yet. We're still working on it. + +Other known issues are here: https://git.cardforge.org/core-developers/forge/issues + +Feel free to report your own there if you have any. + +------------- +Installation: +------------- + +The Forge archive includes a MANUAL.txt file and we ask that you spend a few minutes reading this file as it contains some information that may prove useful. We do tend to update this file at times and you should quickly read this file and look for new information for each and every new release. Thank you. + +The archive format used for the Forge distribution is ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to extract/decompress these ".tar.bz2" archives. We recommend that you extract/decompress the Forge archive into a new and unused folder. + +Some people use the Windows application 7zip. This utility can be found at http://www.7-zip.org/download.html. Mac users can double click on the archive and the application Archive Utility will launch and extract the archive. Mac users do not need to download a separate utility. + +Once the Forge archive has been decompressed you should then be able to launch Forge by using the included launcher. Launching Forge by double clicking on the forge jar file in the past caused a java heap space error. Forge's memory requirements have increased over time and the launchers increase the java heap space available to Forge. Currently you can launch Forge by double clicking on the forge jar file without a java heap space error but this is likely to change as we add in more sounds, icons, etc. + +- The Mac OS application version - +We haven't been able to distribute the OS X Application version of Forge in sometime. We've recently automated our release tools, and will continue to look in the viability of creating this file now that things are autoamted. + + +- Online Multiplayer - +For local network play you should only need two systems running Forge. One to host and one to join and play. For remote (over the Internet) play you will need to ensure that the port used (36743 by default) is forwarded to the hosting machine. + +-------------------- +Active Contributors: +-------------------- + +Agetian +Austinio7116 +Churrufli +DrDev +excessum +Gos +Hanmac +Indigo Dragon +Jamin Collins +KrazyTheFox +Luke +Marek14 +mcrawford620 +Meerkov +Myrd +nefigah +OgreBattlecruiser +pfps +Seravy +Sirspud +Sloth +slyfox7777777 +Sol +Swordshine +tjtillman +tojammot +torridus +Xyx +Zuchinni + +(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com) +(Thanks to the XMage team for permission to use their targeting arrows.) +(Thanks to http://www.freesound.org/browse/ for providing some sound files.) \ No newline at end of file From 5192fc3f5981f04c783cf74da7b56dbea2eacb78 Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Sat, 29 Sep 2018 19:53:10 +0000 Subject: [PATCH 038/143] [maven-release-plugin] prepare release forge-1.6.16 --- forge-ai/pom.xml | 2 +- forge-core/pom.xml | 2 +- forge-game/pom.xml | 2 +- forge-gui-android/pom.xml | 2 +- forge-gui-desktop/pom.xml | 2 +- forge-gui-ios/pom.xml | 2 +- forge-gui-mobile-dev/pom.xml | 2 +- forge-gui-mobile/pom.xml | 2 +- forge-gui/pom.xml | 2 +- pom.xml | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml index 999ab0f07ce..cea7f8f630d 100644 --- a/forge-ai/pom.xml +++ b/forge-ai/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-ai diff --git a/forge-core/pom.xml b/forge-core/pom.xml index 75670239273..969bef4c5cf 100644 --- a/forge-core/pom.xml +++ b/forge-core/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-core diff --git a/forge-game/pom.xml b/forge-game/pom.xml index 363022a7855..cc2640343ef 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-game diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 1ad4f1c6e54..457f4f77769 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -19,7 +19,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui-android diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index 4b3fd81e123..c8333486518 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui-desktop diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index a2d025b3e56..a0de74e199c 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -12,7 +12,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui-ios diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 3e186468f97..92518e820ff 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui-mobile-dev diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 04ec8084755..2d5b1825a72 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui-mobile diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 47375e80764..08477a47f09 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16-SNAPSHOT + 1.6.16 forge-gui diff --git a/pom.xml b/pom.xml index 9f5856c47b6..3211c4ee2b7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ forge pom Forge Parent - 1.6.16-SNAPSHOT + 1.6.16 Forge lets you play the card game Magic: The Gathering against a computer opponent @@ -176,7 +176,7 @@ scm:git:ssh://git@git.cardforge.org/core-developers/forge.git scm:git:ssh://git@git.cardforge.org/core-developers/forge.git - HEAD + forge-1.6.16 From 1e46f88ef56cc94548961447cd969cae871db16f Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Sat, 29 Sep 2018 19:53:15 +0000 Subject: [PATCH 039/143] [maven-release-plugin] prepare for next development iteration --- forge-ai/pom.xml | 2 +- forge-core/pom.xml | 2 +- forge-game/pom.xml | 2 +- forge-gui-android/pom.xml | 2 +- forge-gui-desktop/pom.xml | 2 +- forge-gui-ios/pom.xml | 2 +- forge-gui-mobile-dev/pom.xml | 2 +- forge-gui-mobile/pom.xml | 2 +- forge-gui/pom.xml | 2 +- pom.xml | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml index cea7f8f630d..02f7bd48cfd 100644 --- a/forge-ai/pom.xml +++ b/forge-ai/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-ai diff --git a/forge-core/pom.xml b/forge-core/pom.xml index 969bef4c5cf..f1b3f15a0c3 100644 --- a/forge-core/pom.xml +++ b/forge-core/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-core diff --git a/forge-game/pom.xml b/forge-game/pom.xml index cc2640343ef..f599d471127 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-game diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 457f4f77769..86c680a80c2 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -19,7 +19,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui-android diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index c8333486518..7b85530a3fa 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui-desktop diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index a0de74e199c..2af358bf7f4 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -12,7 +12,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui-ios diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 92518e820ff..ec31825b43a 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui-mobile-dev diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 2d5b1825a72..3d09b0bb694 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui-mobile diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 08477a47f09..93f5e17a793 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.16 + 1.6.17-SNAPSHOT forge-gui diff --git a/pom.xml b/pom.xml index 3211c4ee2b7..ef2e482312c 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ forge pom Forge Parent - 1.6.16 + 1.6.17-SNAPSHOT Forge lets you play the card game Magic: The Gathering against a computer opponent @@ -176,7 +176,7 @@ scm:git:ssh://git@git.cardforge.org/core-developers/forge.git scm:git:ssh://git@git.cardforge.org/core-developers/forge.git - forge-1.6.16 + HEAD From f0c2cf857757cf8ac4d426461e104bc5eb78a8c0 Mon Sep 17 00:00:00 2001 From: KrazyTheFox Date: Sat, 29 Sep 2018 15:44:54 -0400 Subject: [PATCH 040/143] Fix up pom files --- forge-ai/pom.xml | 29 +- forge-core/pom.xml | 29 +- forge-game/pom.xml | 29 +- forge-gui-android/pom.xml | 78 +- forge-gui-desktop/pom.xml | 1551 +++++++++-------- forge-gui-ios/pom.xml | 3 +- forge-gui-mobile-dev/pom.xml | 163 +- forge-gui-mobile/pom.xml | 119 +- .../src/forge/toolbox/FFileChooser.java | 15 +- .../src/forge/toolbox/ListChooser.java | 10 +- forge-gui/pom.xml | 61 +- pom.xml | 263 +-- 12 files changed, 1117 insertions(+), 1233 deletions(-) diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml index 02f7bd48cfd..5c2e49733c3 100644 --- a/forge-ai/pom.xml +++ b/forge-ai/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 @@ -30,30 +31,4 @@ - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - diff --git a/forge-core/pom.xml b/forge-core/pom.xml index f1b3f15a0c3..43ca41a1bbc 100644 --- a/forge-core/pom.xml +++ b/forge-core/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 @@ -25,30 +26,4 @@ - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - diff --git a/forge-game/pom.xml b/forge-game/pom.xml index f599d471127..e432898b34c 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 @@ -37,30 +38,4 @@ - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 86c680a80c2..332d3a1be0a 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 @@ -36,28 +37,6 @@ 1.8 - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - @@ -236,7 +215,7 @@ true true - + ${project.build.directory}/${project.build.finalName}.apk @@ -299,22 +278,29 @@ - - - - - - - + + + + + + + - - + + - - - - + + + + @@ -360,16 +346,22 @@ package - - + + - - + + - + - + diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index 7b85530a3fa..c0d6f955b9c 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -1,5 +1,6 @@ - - 4.0.0 + + 4.0.0 forge @@ -7,789 +8,791 @@ 1.6.17-SNAPSHOT - forge-gui-desktop - jar - Forge + forge-gui-desktop + jar + Forge - - - - com.google.code.maven-svn-revision-number-plugin - svn-revision-number-maven-plugin - - - - revision - - - - - false - - - forge - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - build-version-string - process-resources - - run - - - true - - - - - - - - - + + 0 + 0 + 0 + - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - - true - true - - - ${fullversionstring} - - - - - - com.google.code.maven-replacer-plugin - replacer - 1.5.2 - - - package - - replace - - - - - ${basedir}/${configSourceDirectory} - forge.sh, forge.command - ${project.build.directory} - . - false - - - $project.build.finalName$ - ${project.build.finalName}-jar-with-dependencies.jar - - - - - - maven-assembly-plugin - - false - - jar-with-dependencies - - - - forge.view.Main - true - - - ${fullversionstring} - - - - - - make-assembly - - package - - - single - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - + + - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + + true + true + + + + + + com.google.code.maven-replacer-plugin + replacer + 1.5.2 + + + package + + replace + + + + + ${basedir}/${configSourceDirectory} + forge.sh, forge.command + ${project.build.directory} + . + false + + + $project.build.finalName$ + ${project.build.finalName}-jar-with-dependencies.jar + + + + + + maven-assembly-plugin + + false + + jar-with-dependencies + + + + forge.view.Main + true + + + + + + make-assembly + + package + + + single + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + released-version + validate + + released-version + + + + parse-version + + parse-version + + + + + + - - - forge - forge-core - ${project.version} - - - forge - forge-game - ${project.version} - - - forge - forge-ai - ${project.version} - - - forge - forge-gui - ${project.version} - - - com.miglayout - miglayout - 3.7.4 - - - com.mortennobel - java-image-scaling - 0.8.5 - - - com.google.guava - guava - 24.1-android - - - com.thoughtworks.xstream - xstream - 1.4.10 - - - org.testng - testng - 6.8.7 - test - - - org.powermock - powermock-module-testng - 1.5.4 - test - - - org.powermock - powermock-api-mockito - 1.5.4 - test - - - log4j - log4j - 1.2.17 - - - com.googlecode - minlog - 1.2 - - - org.apache.commons - commons-lang3 - 3.7 - - - org.freemarker - freemarker - 2.3.20 - - - com.googlecode.soundlibs - jlayer - 1.0.1-1 - - - com.beust - jcommander - 1.27 - jar - - + + + forge + forge-core + ${project.version} + + + forge + forge-game + ${project.version} + + + forge + forge-ai + ${project.version} + + + forge + forge-gui + ${project.version} + + + com.miglayout + miglayout + 3.7.4 + + + com.mortennobel + java-image-scaling + 0.8.5 + + + com.google.guava + guava + 24.1-android + + + com.thoughtworks.xstream + xstream + 1.4.10 + + + org.testng + testng + 6.8.7 + test + + + org.powermock + powermock-module-testng + 1.5.4 + test + + + org.powermock + powermock-api-mockito + 1.5.4 + test + + + log4j + log4j + 1.2.17 + + + com.googlecode + minlog + 1.2 + + + org.apache.commons + commons-lang3 + 3.7 + + + org.freemarker + freemarker + 2.3.20 + + + com.googlecode.soundlibs + jlayer + 1.0.1-1 + + + com.beust + jcommander + 1.27 + jar + + - - - windows-linux-release - - - - com.akathist.maven.plugins.launch4j - launch4j-maven-plugin - 1.5.2 - - - l4j-gui - package - - launch4j - - - gui - ${project.build.directory}/forge.exe - ${project.build.finalName}-jar-with-dependencies.jar - true - forge - src/main/config/forge.ico - - forge.view.Main - false - anything - - - 1.8.0 - 1024 - - - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - Forge - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - forge - forge.exe - - - - - + + + windows-linux-release + + + + com.akathist.maven.plugins.launch4j + launch4j-maven-plugin + 1.5.2 + + + l4j-gui + package + + launch4j + + + gui + ${project.build.directory}/forge.exe + ${project.build.finalName}-jar-with-dependencies.jar + true + forge + src/main/config/forge.ico + + forge.view.Main + false + anything + + + 1.8.0 + 1024 + + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + Forge + Forge + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + Forge + forge + forge.exe + + + + + - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - win-linux-app-bundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}.tar.bz2 - tar.bz2 - - - - - - - - - + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + win-linux-app-bundle + pre-integration-test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + run + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + released-version + validate + + released-version + + + + parse-version + + parse-version + + + + attach-distribution + post-integration-test + + attach-artifact + + + + + ${project.build.directory}/${project.build.finalName}.tar.bz2 + tar.bz2 + + + + + + + + + - - windows-linux - - - - com.akathist.maven.plugins.launch4j - launch4j-maven-plugin - 1.5.2 - - - l4j-gui - package - - launch4j - - - gui - ${project.build.directory}/forge.exe - ${project.build.finalName}-jar-with-dependencies.jar - true - forge - src/main/config/forge.ico - - forge.view.Main - false - anything - - - 1.8.0 - 1024 - - - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - Forge - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - forge - forge.exe - - - - - + + windows-linux + + + + com.akathist.maven.plugins.launch4j + launch4j-maven-plugin + 1.5.2 + + + l4j-gui + package + + launch4j + + + gui + ${project.build.directory}/forge.exe + ${project.build.finalName}-jar-with-dependencies.jar + true + forge + src/main/config/forge.ico + + forge.view.Main + false + anything + + + 1.8.0 + 1024 + + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + Forge + Forge + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + + ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 + + Forge + forge + forge.exe + + + + + - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - win-linux-app-bundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}.tar.bz2 - tar.bz2 - - - - - - - - - + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + win-linux-app-bundle + pre-integration-test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + run + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + released-version + validate + + released-version + + + + parse-version + + parse-version + + + + attach-distribution + post-integration-test + + attach-artifact + + + + + ${project.build.directory}/${project.build.finalName}.tar.bz2 + tar.bz2 + + + + + + + + + - - - "LICENSE.txt" - "CHANGES.txt" - "MANUAL.txt" - "Forge" - "Applications" - - osx - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - osx-appbundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution-osx - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}-osx.tar.bz2 - - tar.bz2 - osx - - - - - - + + + "LICENSE.txt" + "CHANGES.txt" + "MANUAL.txt" + "Forge" + "Applications" + + osx + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + osx-appbundle + pre-integration-test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + run + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + released-version + validate + + released-version + + + + parse-version + + parse-version + + + + attach-distribution-osx + post-integration-test + + attach-artifact + + + + + ${project.build.directory}/${project.build.finalName}-osx.tar.bz2 + + tar.bz2 + osx + + + + + + - - - + + + - - - "LICENSE.txt" - "README.txt" - "MANUAL.txt" - "Forge" - "Applications" - - osx-release - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - osx-appbundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution-osx - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}-osx.tar.bz2 - - tar.bz2 - osx - - - - - - + + + "LICENSE.txt" + "README.txt" + "MANUAL.txt" + "Forge" + "Applications" + + osx-release + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + osx-appbundle + pre-integration-test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + run + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.8 + + + released-version + validate + + released-version + + + + parse-version + + parse-version + + + + attach-distribution-osx + post-integration-test + + attach-artifact + + + + + ${project.build.directory}/${project.build.finalName}-osx.tar.bz2 + + tar.bz2 + osx + + + + + + - - - - + + + + diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index 2af358bf7f4..e5517baee77 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index ec31825b43a..4c6a43115c8 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -1,5 +1,6 @@ - - 4.0.0 + + 4.0.0 forge @@ -7,104 +8,78 @@ 1.6.17-SNAPSHOT - forge-gui-mobile-dev - jar - Forge Mobile Dev + forge-gui-mobile-dev + jar + Forge Mobile Dev - - src - - - maven-compiler-plugin - - 1.8 - 1.8 - - + + src + + + maven-compiler-plugin + + 1.8 + 1.8 + + - - maven-assembly-plugin - - false - - jar-with-dependencies - - - - forge.app.Main - true - - - ${fullversionstring} - - - - - - make-assembly - - package - - - single - - - - + + maven-assembly-plugin + + false + + jar-with-dependencies + + + + forge.app.Main + true + + + + + + make-assembly + + package + + + single + + + + + + - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - - - - - forge - forge-gui-mobile - ${project.version} - + + + forge + forge-gui-mobile + ${project.version} + com.badlogicgames.gdx gdx-backend-lwjgl 1.5.5 - - com.badlogicgames.gdx - gdx-platform - 1.2.0 - natives-desktop - - - com.badlogicgames.gdx - gdx-freetype-platform - 1.5.5 - natives-desktop - - - - commons-cli - commons-cli - 1.4 - - + + com.badlogicgames.gdx + gdx-platform + 1.2.0 + natives-desktop + + + com.badlogicgames.gdx + gdx-freetype-platform + 1.5.5 + natives-desktop + + + + commons-cli + commons-cli + 1.4 + + diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 3d09b0bb694..7880adfd083 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -1,65 +1,66 @@ - - 4.0.0 + + 4.0.0 - - forge - forge - 1.6.17-SNAPSHOT - + + forge + forge + 1.6.17-SNAPSHOT + - forge-gui-mobile - jar - Forge Mobile + forge-gui-mobile + jar + Forge Mobile - - src - - - maven-compiler-plugin - - 1.8 - 1.8 - - - - + + src + + + maven-compiler-plugin + + 1.8 + 1.8 + + + + - - - forge - forge-core - ${project.version} - - - forge - forge-game - ${project.version} - - - forge - forge-ai - ${project.version} - - - forge - forge-gui - ${project.version} - - - com.google.guava - guava - 24.1-android - - - com.thoughtworks.xstream - xstream - 1.4.7 - - - org.apache.commons - commons-lang3 - 3.7 - + + + forge + forge-core + ${project.version} + + + forge + forge-game + ${project.version} + + + forge + forge-ai + ${project.version} + + + forge + forge-gui + ${project.version} + + + com.google.guava + guava + 24.1-android + + + com.thoughtworks.xstream + xstream + 1.4.7 + + + org.apache.commons + commons-lang3 + 3.7 + com.badlogicgames.gdx gdx @@ -70,6 +71,6 @@ gdx-freetype 1.5.5 - + diff --git a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java index 23f36530c0b..dadb04e2d9d 100644 --- a/forge-gui-mobile/src/forge/toolbox/FFileChooser.java +++ b/forge-gui-mobile/src/forge/toolbox/FFileChooser.java @@ -1,13 +1,7 @@ package forge.toolbox; -import java.io.File; -import java.io.FilenameFilter; - -import org.apache.commons.lang3.StringUtils; - import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; - import forge.Forge; import forge.Graphics; import forge.assets.FSkinColor; @@ -15,11 +9,14 @@ import forge.assets.FSkinFont; import forge.assets.FSkinImage; import forge.menu.FMenuItem; import forge.menu.FPopupMenu; -import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; import forge.util.Callback; import forge.util.FileUtil; import forge.util.Utils; +import org.apache.commons.lang3.StringUtils; + +import java.io.File; +import java.io.FilenameFilter; public class FFileChooser extends FDialog { private static final float BACK_ICON_THICKNESS = Utils.scale(2); @@ -321,7 +318,7 @@ public class FFileChooser extends FDialog { //draw back icon float w = getHeight(); float h = w; - float x = w * 0.35f; + float x = w * 0.35f; float y = h / 2; float offsetX = w / 8; float offsetY = h / 6; @@ -395,7 +392,7 @@ public class FFileChooser extends FDialog { if (value.isDirectory()) { float iconSize = h; g.drawImage(FSkinImage.FOLDER, x, y + (h - iconSize) / 2, iconSize, iconSize); - x += iconSize + FList.PADDING; + x += iconSize + FList.PADDING; } g.drawText(value.getName(), font, foreColor, x, y, w, h, false, HAlignment.LEFT, true); } diff --git a/forge-gui-mobile/src/forge/toolbox/ListChooser.java b/forge-gui-mobile/src/forge/toolbox/ListChooser.java index 070913984f8..9fd472230ed 100644 --- a/forge-gui-mobile/src/forge/toolbox/ListChooser.java +++ b/forge-gui-mobile/src/forge/toolbox/ListChooser.java @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -34,9 +34,7 @@ import forge.itemmanager.filters.ItemFilter; import forge.itemmanager.filters.ListLabelFilter; import forge.menu.FMenuItem; import forge.menu.FPopupMenu; -import forge.toolbox.FEvent; import forge.toolbox.FEvent.FEventHandler; -import forge.toolbox.FOptionPane; import forge.util.Callback; import forge.util.Utils; @@ -62,7 +60,7 @@ import java.util.List; *

  • If the dialog was canceled, the selection will be empty.
  • *
  • * - * + * * @param * the generic type * @author Forge @@ -228,7 +226,7 @@ public class ListChooser extends FContainer { /** * Shows the dialog and returns after the dialog was closed. - * + * * @param index0 index to select when shown * @return a boolean. */ diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 93f5e17a793..3b9d8055d54 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 @@ -36,19 +37,19 @@ forge-ai ${project.version} - - com.google.guava - guava - 24.1-android - - - com.thoughtworks.xstream - xstream - 1.4.10 - - - org.apache.commons - commons-lang3 + + com.google.guava + guava + 24.1-android + + + com.thoughtworks.xstream + xstream + 1.4.10 + + + org.apache.commons + commons-lang3 3.7 @@ -63,9 +64,9 @@ 1.2.17 - org.fourthline.cling - cling-support - 2.0.1 + org.fourthline.cling + cling-support + 2.0.1 org.slf4j @@ -74,30 +75,4 @@ - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.0.0 - - - checkstyle-validation - validate - - ../checkstyle.xml - true - UTF-8 - true - true - true - - - check - - - - - - diff --git a/pom.xml b/pom.xml index ef2e482312c..0c0da905a9d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 forge @@ -8,8 +9,7 @@ 1.6.17-SNAPSHOT - Forge lets you play the card game Magic: The Gathering against a computer opponent - using all of the rules. + Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules. https://www.cardforge.org/ @@ -179,10 +179,6 @@ HEAD - - 3.1.1 - - Forge Forum @@ -224,6 +220,7 @@ + org.apache.maven.wagon @@ -236,18 +233,27 @@ org.apache.maven.plugins - maven-site-plugin - 3.3 - - 8081 - - - - org.apache.maven.wagon - wagon-ftp - 2.6 - - + maven-enforcer-plugin + 3.0.0-M2 + + + enforce-versions + validate + + enforce + + + + + [3.5.9,) + + + [1.8,) + + + + + @@ -276,93 +282,82 @@ org.apache.maven.plugins maven-surefire-plugin 2.16 + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.1 + + + org.apache.maven.wagon + wagon-ftp + 2.6 + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.7 + + + + maven-assembly-plugin + 2.4 + + + + maven-install-plugin + 2.5.1 + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.8 + + + + maven-release-plugin + 2.5 - - - + true + + - - org.apache.maven.plugins - maven-deploy-plugin - 2.8.1 - - - org.apache.maven.wagon - wagon-ftp - 2.6 - - - + + maven-resources-plugin + 2.6 + - - com.google.code.maven-svn-revision-number-plugin - svn-revision-number-maven-plugin - 1.13 - + + org.apache.maven.plugins + maven-clean-plugin + 2.5 + - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + - - maven-assembly-plugin - 2.4 - + + org.apache.maven.plugins + maven-scm-plugin + 1.9 + - - maven-install-plugin - 2.5.1 - + + org.apache.maven.wagon + wagon-ftp + 2.6 + - - org.apache.maven.plugins - maven-dependency-plugin - 2.8 - - - - maven-release-plugin - 2.5 - - true - - - - - maven-resources-plugin - 2.6 - - - - org.apache.maven.plugins - maven-clean-plugin - 2.5 - - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - - org.apache.maven.plugins - maven-scm-plugin - 1.9 - - - - org.apache.maven.wagon - wagon-ftp - 2.6 - - - + org.eclipse.m2e lifecycle-mapping @@ -381,7 +376,7 @@ - + @@ -395,20 +390,7 @@ - - - - - - com.google.code.maven-svn-revision-number-plugin - svn-revision-number-maven-plugin - [1.0.0,) - - revision - - - - + @@ -421,7 +403,7 @@ - + @@ -434,14 +416,49 @@ org.apache.maven.plugins - maven-deploy-plugin - - - org.apache.maven.wagon - wagon-ftp - 2.6 - - + maven-enforcer-plugin + 3.0.0-M2 + + + enforce-versions + validate + + enforce + + + + + [3.1.1,) + + + [1.8,) + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.0.0 + + + checkstyle-validation + validate + + checkstyle.xml + true + UTF-8 + true + true + true + + + check + + + From a298dcf3bccb5d8647dbd1b7b5ba4f4381f96b03 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sat, 29 Sep 2018 11:22:17 +0200 Subject: [PATCH 041/143] TokenScript: make CardTextChange working again SpellAbility: changeTextIntrinsic to sub abilities --- .../src/main/java/forge/card/CardType.java | 15 +++ .../main/java/forge/game/CardTraitBase.java | 67 +++++++++- .../java/forge/game/ability/AbilityUtils.java | 10 +- .../src/main/java/forge/game/card/Card.java | 6 + .../forge/game/card/CardChangedWords.java | 9 +- .../main/java/forge/game/card/CardState.java | 20 ++- .../main/java/forge/game/card/CardUtil.java | 2 + .../java/forge/game/card/token/TokenInfo.java | 120 +++++++++++++++++- .../forge/game/keyword/KeywordCollection.java | 4 + .../forge/game/spellability/SpellAbility.java | 25 ++++ .../main/java/forge/game/trigger/Trigger.java | 50 +++++++- 11 files changed, 308 insertions(+), 20 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardType.java b/forge-core/src/main/java/forge/card/CardType.java index e3713cf1f1b..ebc12e29266 100644 --- a/forge-core/src/main/java/forge/card/CardType.java +++ b/forge-core/src/main/java/forge/card/CardType.java @@ -188,6 +188,21 @@ public final class CardType implements Comparable, CardTypeView { return supertypes.remove(st); } + public boolean remove(final String str) { + boolean changed = false; + if (CardType.isASupertype(str) && supertypes.remove(stringToSupertype.get(str))) { + changed = true; + } else if (CardType.isACardType(str) && coreTypes.remove(stringToCoreType.get(str))) { + changed = true; + } else if (subtypes.remove(str)) { + changed = true; + } + if (changed) { + calculatedType = null; + } + return changed; + } + public boolean setCreatureTypes(Collection ctypes) { // if it isn't a creature then this has no effect if (!isCreature() && !isTribal()) { diff --git a/forge-game/src/main/java/forge/game/CardTraitBase.java b/forge-game/src/main/java/forge/game/CardTraitBase.java index b59c994a80c..59c47275a5d 100644 --- a/forge-game/src/main/java/forge/game/CardTraitBase.java +++ b/forge-game/src/main/java/forge/game/CardTraitBase.java @@ -46,6 +46,11 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { protected Map sVars = Maps.newHashMap(); + protected Map intrinsicChangedTextColors = Maps.newHashMap(); + protected Map intrinsicChangedTextTypes = Maps.newHashMap(); + protected Map changedTextColors = Maps.newHashMap(); + protected Map changedTextTypes = Maps.newHashMap(); + /** Keys of descriptive (text) parameters. */ private static final ImmutableList descriptiveKeys = ImmutableList.builder() .add("Description", "SpellDescription", "StackDescription", "TriggerDescription").build(); @@ -53,6 +58,11 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { private static final ImmutableList mutableKeys = ImmutableList.builder() .add("AddAbility").build(); + /** + * Keys that should not changed + */ + private static final ImmutableList noChangeKeys = ImmutableList.builder() + .add("TokenScript", "LegacyImage", "TokenImage").build(); /** * Sets the temporary. * @@ -449,9 +459,15 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { } public void changeText() { + // copy changed text words into card trait there + this.changedTextColors = getHostCard().getChangedTextColorWords(); + this.changedTextTypes = getHostCard().getChangedTextTypeWords(); + for (final String key : this.mapParams.keySet()) { final String value = this.originalMapParams.get(key), newValue; - if (descriptiveKeys.contains(key)) { + if (noChangeKeys.contains(key)) { + continue; + } else if (descriptiveKeys.contains(key)) { // change descriptions differently newValue = AbilityUtils.applyDescriptionTextChangeEffects(value, this); } else if (mutableKeys.contains(key)) { @@ -515,4 +531,53 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { public Set getSVars() { return sVars.keySet(); } + + public Map getChangedTextColors() { + return _combineChangedMap(intrinsicChangedTextColors, changedTextColors); + } + public Map getChangedTextTypes() { + return _combineChangedMap(intrinsicChangedTextTypes, changedTextTypes); + } + + private Map _combineChangedMap(Map input, Map output) { + // no need to do something, just return hash + if (input.isEmpty()) { + return output; + } + if (output.isEmpty()) { + return input; + } + // magic combine them + Map result = Maps.newHashMap(output); + for (Map.Entry e : input.entrySet()) { + String value = e.getValue(); + result.put(e.getKey(), output.containsKey(value) ? output.get(value) : value); + } + return result; + } + + public void changeTextIntrinsic(Map colorMap, Map typeMap) { + intrinsicChangedTextColors = colorMap; + intrinsicChangedTextTypes = typeMap; + for (final String key : this.mapParams.keySet()) { + final String value = this.originalMapParams.get(key), newValue; + if (noChangeKeys.contains(key)) { + continue; + } else if (descriptiveKeys.contains(key)) { + // change descriptions differently + newValue = AbilityUtils.applyTextChangeEffects(value, true, colorMap, typeMap); + }else if (this.getHostCard().hasSVar(value)) { + // don't change literal SVar names! + continue; + } else { + newValue = AbilityUtils.applyTextChangeEffects(value, false, colorMap, typeMap); + } + + if (newValue != null) { + this.mapParams.put(key, newValue); + } + } + // this does overwrite the original MapParams + this.originalMapParams = Maps.newHashMap(this.mapParams); + } } 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 3401a5d6a80..ab4032c090a 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1724,12 +1724,18 @@ public class AbilityUtils { } private static final String applyTextChangeEffects(final String def, final Card card, final boolean isDescriptive) { + return applyTextChangeEffects(def, isDescriptive, + card.getChangedTextColorWords(), card.getChangedTextTypeWords()); + } + + public static final String applyTextChangeEffects(final String def, final boolean isDescriptive, + Map colorMap, Map typeMap) { if (StringUtils.isEmpty(def)) { return def; } String replaced = def; - for (final Entry e : card.getChangedTextColorWords().entrySet()) { + for (final Entry e : colorMap.entrySet()) { final String key = e.getKey(); String value; if (key.equals("Any")) { @@ -1750,7 +1756,7 @@ public class AbilityUtils { replaced = replaced.replaceAll("(?)" + key, value); } } - for (final Entry e : card.getChangedTextTypeWords().entrySet()) { + for (final Entry e : typeMap.entrySet()) { final String key = e.getKey(); final String pkey = CardType.getPluralType(key); final String pvalue = getReplacedText(pkey, CardType.getPluralType(e.getValue()), isDescriptive); 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 6fc7ffde41c..f56315a4a29 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -3640,6 +3640,12 @@ public class Card extends GameEntity implements Comparable { } } + public final void removeIntrinsicKeyword(final KeywordInterface s) { + if (currentState.removeIntrinsicKeyword(s)) { + currentState.getView().updateKeywords(this, currentState); + } + } + public Collection getExtrinsicKeyword() { return extrinsicKeyword.getValues(); } diff --git a/forge-game/src/main/java/forge/game/card/CardChangedWords.java b/forge-game/src/main/java/forge/game/card/CardChangedWords.java index d62f15dde32..ae8719dee69 100644 --- a/forge-game/src/main/java/forge/game/card/CardChangedWords.java +++ b/forge-game/src/main/java/forge/game/card/CardChangedWords.java @@ -7,8 +7,6 @@ import java.util.SortedMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; -import forge.card.CardType; - public final class CardChangedWords { private final SortedMap map = Maps.newTreeMap(); @@ -68,14 +66,9 @@ public final class CardChangedWords { // the actual change (b->c) resultCache.put(ccw.getOriginalWord(), ccw.getNewWord()); - - // possible plural form - final String singular = CardType.getPluralType(ccw.getOriginalWord()); - if (!singular.equals(ccw.getOriginalWord())) { - resultCache.put(singular, ccw.getNewWord()); - } } + // TODO should that be removed? for (final String key : ImmutableList.copyOf(resultCache.keySet())) { if (!key.equals("Any")) { resultCache.put(key.toLowerCase(), resultCache.get(key).toLowerCase()); diff --git a/forge-game/src/main/java/forge/game/card/CardState.java b/forge-game/src/main/java/forge/game/card/CardState.java index 483077cae84..5372ddfa18e 100644 --- a/forge-game/src/main/java/forge/game/card/CardState.java +++ b/forge-game/src/main/java/forge/game/card/CardState.java @@ -231,6 +231,9 @@ public class CardState extends GameObject { public final boolean removeIntrinsicKeyword(final String s) { return intrinsicKeywords.remove(s); } + public final boolean removeIntrinsicKeyword(final KeywordInterface s) { + return intrinsicKeywords.remove(s); + } public final FCollectionView getSpellAbilities() { FCollection newCol = new FCollection(manaAbilities); @@ -539,7 +542,7 @@ public class CardState extends GameObject { intrinsicKeywords.insert(inst); } } - + public void updateChangedText() { final List allAbs = ImmutableList.builder() .addAll(manaAbilities) @@ -554,4 +557,19 @@ public class CardState extends GameObject { } } } + + public void changeTextIntrinsic(Map colorMap, Map typeMap) { + final List allAbs = ImmutableList.builder() + .addAll(manaAbilities) + .addAll(nonManaAbilities) + .addAll(triggers) + .addAll(replacementEffects) + .addAll(staticAbilities) + .build(); + for (final CardTraitBase ctb : allAbs) { + if (ctb.isIntrinsic()) { + ctb.changeTextIntrinsic(colorMap, typeMap); + } + } + } } diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 0f959f598d5..8db0b965455 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -281,6 +281,8 @@ public final class CardUtil { newCopy.setChangedCardKeywords(in.getChangedCardKeywords()); newCopy.setChangedCardTypes(in.getChangedCardTypesMap()); + newCopy.copyChangedTextFrom(in); + newCopy.setMeldedWith(in.getMeldedWith()); newCopy.setTimestamp(in.getTimestamp()); diff --git a/forge-game/src/main/java/forge/game/card/token/TokenInfo.java b/forge-game/src/main/java/forge/game/card/token/TokenInfo.java index d54b7b4256f..86f319baf80 100644 --- a/forge-game/src/main/java/forge/game/card/token/TokenInfo.java +++ b/forge-game/src/main/java/forge/game/card/token/TokenInfo.java @@ -12,6 +12,7 @@ import forge.game.Game; import forge.game.card.Card; import forge.game.card.CardFactory; import forge.game.card.CardFactoryUtil; +import forge.game.card.CardUtil; import forge.game.keyword.KeywordInterface; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -20,6 +21,8 @@ import forge.item.PaperToken; import java.util.List; import java.util.Map; +import org.apache.commons.lang3.StringUtils; + public class TokenInfo { final String name; final String imageName; @@ -229,10 +232,121 @@ public class TokenInfo { String edition = host.getSetCode(); PaperToken token = StaticData.instance().getAllTokens().getToken(script, edition); - // TODO add Card Text Change from SpellAbility - if (token != null) { - return Card.fromPaperCard(token, null, game); + final Card result = Card.fromPaperCard(token, null, game); + + // update Token with CardTextChanges + Map colorMap = sa.getChangedTextColors(); + Map typeMap = sa.getChangedTextTypes(); + if (!colorMap.isEmpty()) { + if (!result.isColorless()) { + // change Token Colors + byte color = CardUtil.getColors(result).getColor(); + + for (final Map.Entry e : colorMap.entrySet()) { + byte v = MagicColor.fromName(e.getValue()); + // Any used by Swirl the Mists + if ("Any".equals(e.getKey())) { + for (final byte c : MagicColor.WUBRG) { + // try to replace color flips + if ((color & c) != 0) { + color &= ~c; + color |= v; + } + } + } else { + byte c = MagicColor.fromName(e.getKey()); + // try to replace color flips + if ((color & c) != 0) { + color &= ~c; + color |= v; + } + } + } + + result.setColor(color); + } + } + if (!typeMap.isEmpty()) { + String oldName = result.getName(); + + CardType type = new CardType(result.getType()); + String joinedName = StringUtils.join(type.getSubtypes(), " "); + final boolean nameGenerated = oldName.equals(joinedName); + boolean typeChanged = false; + + if (!Iterables.isEmpty(type.getSubtypes())) { + for (final Map.Entry e : typeMap.entrySet()) { + if (type.hasSubtype(e.getKey())) { + type.remove(e.getKey()); + type.add(e.getValue()); + typeChanged = true; + } + } + } + + if (typeChanged) { + result.setType(type); + + // update generated Name + if (nameGenerated) { + result.setName(StringUtils.join(type.getSubtypes(), " ")); + } + } + } + + // replace Intrinsic Keyword + List toRemove = Lists.newArrayList(); + List toAdd = Lists.newArrayList(); + for (final KeywordInterface k : result.getCurrentState().getIntrinsicKeywords()) { + final String o = k.getOriginal(); + // only Modifiable should go there + if (!CardUtil.isKeywordModifiable(o)) { + continue; + } + String r = new String(o); + // replace types + for (final Map.Entry e : typeMap.entrySet()) { + final String key = e.getKey(); + final String pkey = CardType.getPluralType(key); + final String value = e.getValue(); + final String pvalue = CardType.getPluralType(e.getValue()); + r = r.replaceAll(pkey, pvalue); + r = r.replaceAll(key, value); + } + // replace color words + for (final Map.Entry e : colorMap.entrySet()) { + final String vName = e.getValue(); + final String vCaps = StringUtils.capitalize(vName); + final String vLow = vName.toLowerCase(); + if ("Any".equals(e.getKey())) { + for (final byte c : MagicColor.WUBRG) { + final String cName = MagicColor.toLongString(c); + final String cNameCaps = StringUtils.capitalize(cName); + final String cNameLow = cName.toLowerCase(); + r = r.replaceAll(cNameCaps, vCaps); + r = r.replaceAll(cNameLow, vLow); + } + } else { + final String cName = e.getKey(); + final String cNameCaps = StringUtils.capitalize(cName); + final String cNameLow = cName.toLowerCase(); + r = r.replaceAll(cNameCaps, vCaps); + r = r.replaceAll(cNameLow, vLow); + } + } + if (!r.equals(o)) { + toRemove.add(k); + toAdd.add(r); + } + } + for (final KeywordInterface k : toRemove) { + result.getCurrentState().removeIntrinsicKeyword(k); + } + result.addIntrinsicKeywords(toAdd); + + result.getCurrentState().changeTextIntrinsic(colorMap, typeMap); + return result; } return null; diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java b/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java index f00b65cf76d..98623cf6d72 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordCollection.java @@ -96,6 +96,10 @@ public class KeywordCollection implements Iterable, Serializable { return result; } + public boolean remove(KeywordInterface keyword) { + return map.remove(keyword.getKeyword(), keyword); + } + public boolean removeAll(Iterable keywords) { boolean result = false; for (String k : keywords) { diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index afa679d269d..9eddd745b4a 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -1709,6 +1709,31 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit } } + /* (non-Javadoc) + * @see forge.game.CardTraitBase#changeTextIntrinsic(java.util.Map, java.util.Map) + */ + @Override + public void changeTextIntrinsic(Map colorMap, Map typeMap) { + super.changeTextIntrinsic(colorMap, typeMap); + + if (subAbility != null) { + // if the parent of the subability is not this, + // then there might be a loop + if (subAbility.getParent() == this) { + subAbility.changeTextIntrinsic(colorMap, typeMap); + } + } + for (AbilitySub sa : additionalAbilities.values()) { + sa.changeTextIntrinsic(colorMap, typeMap); + } + + for (List list : additionalAbilityLists.values()) { + for (AbilitySub sa : list) { + sa.changeTextIntrinsic(colorMap, typeMap); + } + } + } + @Override public void setIntrinsic(boolean i) { super.setIntrinsic(i); diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index 8b39080b26f..a3dd3f3fa93 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -169,11 +169,7 @@ public abstract class Trigger extends TriggerReplacementBase { if (!desc.contains("ABILITY")) { return desc; } - SpellAbility sa = getOverridingAbility(); - if (sa == null && this.mapParams.containsKey("Execute")) { - sa = AbilityFactory.getAbility(state, this.mapParams.get("Execute")); - setOverridingAbility(sa); - } + SpellAbility sa = ensureAbility(); return replaceAbilityText(desc, sa); @@ -583,4 +579,48 @@ public abstract class Trigger extends TriggerReplacementBase { throw new RuntimeException("Trigger : clone() error, " + ex); } } + + + /* (non-Javadoc) + * @see forge.game.CardTraitBase#changeText() + */ + @Override + public void changeText() { + if (!isIntrinsic()) { + return; + } + super.changeText(); + + ensureAbility(); + + if (getOverridingAbility() != null) { + getOverridingAbility().changeText(); + } + } + + /* (non-Javadoc) + * @see forge.game.CardTraitBase#changeTextIntrinsic(java.util.Map, java.util.Map) + */ + @Override + public void changeTextIntrinsic(Map colorMap, Map typeMap) { + if (!isIntrinsic()) { + return; + } + super.changeTextIntrinsic(colorMap, typeMap); + + ensureAbility(); + + if (getOverridingAbility() != null) { + getOverridingAbility().changeTextIntrinsic(colorMap, typeMap); + } + } + + private SpellAbility ensureAbility() { + SpellAbility sa = getOverridingAbility(); + if (sa == null && hasParam("Execute")) { + sa = AbilityFactory.getAbility(getHostCard(), getParam("Execute")); + setOverridingAbility(sa); + } + return sa; + } } From 12eabc6ce44757a7e40418e27b80e221d6e65596 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sat, 29 Sep 2018 11:24:13 +0200 Subject: [PATCH 042/143] cards: updated cards with tokenscripts --- forge-gui/res/cardsfolder/b/brood_keeper.txt | 3 +-- forge-gui/res/cardsfolder/d/dragon_egg.txt | 3 +-- forge-gui/res/cardsfolder/h/hunted_horror.txt | 4 ++-- forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt | 2 +- forge-gui/res/cardsfolder/k/kalonian_twingrove.txt | 3 +-- forge-gui/res/cardsfolder/l/lord_windgrace.txt | 2 +- forge-gui/res/cardsfolder/m/mitotic_slime.txt | 4 +--- forge-gui/res/cardsfolder/n/nesting_dragon.txt | 7 ++----- forge-gui/res/cardsfolder/r/reef_worm.txt | 10 +++------- forge-gui/res/cardsfolder/r/riftmarked_knight.txt | 2 +- .../b_2_2_knight_flanking_pro_white_haste.txt | 9 +++++++++ forge-gui/res/tokenscripts/g_1_1_ooze.txt | 6 ++++++ .../res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt | 7 +++++++ forge-gui/res/tokenscripts/g_2_2_ooze_mitotic.txt | 8 ++++++++ forge-gui/res/tokenscripts/g_3_3_centaur_pro_black.txt | 7 +++++++ forge-gui/res/tokenscripts/g_x_x_treefolk_warrior.txt | 9 +++++++++ .../r_0_2_dragon_egg_defender_hatches_dragon.txt | 10 ++++++++++ .../tokenscripts/r_2_2_dragon_flying_firebreathing.txt | 8 ++++++++ .../res/tokenscripts/u_3_3_fish_hatches_whale.txt | 8 ++++++++ .../res/tokenscripts/u_6_6_whale_hatches_kraken.txt | 8 ++++++++ forge-gui/res/tokenscripts/u_9_9_kraken.txt | 6 ++++++ 21 files changed, 100 insertions(+), 26 deletions(-) create mode 100644 forge-gui/res/tokenscripts/b_2_2_knight_flanking_pro_white_haste.txt create mode 100644 forge-gui/res/tokenscripts/g_1_1_ooze.txt create mode 100644 forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt create mode 100644 forge-gui/res/tokenscripts/g_2_2_ooze_mitotic.txt create mode 100644 forge-gui/res/tokenscripts/g_3_3_centaur_pro_black.txt create mode 100644 forge-gui/res/tokenscripts/g_x_x_treefolk_warrior.txt create mode 100644 forge-gui/res/tokenscripts/r_0_2_dragon_egg_defender_hatches_dragon.txt create mode 100644 forge-gui/res/tokenscripts/r_2_2_dragon_flying_firebreathing.txt create mode 100644 forge-gui/res/tokenscripts/u_3_3_fish_hatches_whale.txt create mode 100644 forge-gui/res/tokenscripts/u_6_6_whale_hatches_kraken.txt create mode 100644 forge-gui/res/tokenscripts/u_9_9_kraken.txt diff --git a/forge-gui/res/cardsfolder/b/brood_keeper.txt b/forge-gui/res/cardsfolder/b/brood_keeper.txt index 6a8fbb1b53f..d2a5d38bd28 100644 --- a/forge-gui/res/cardsfolder/b/brood_keeper.txt +++ b/forge-gui/res/cardsfolder/b/brood_keeper.txt @@ -3,8 +3,7 @@ ManaCost:3 R Types:Creature Human Shaman PT:2/3 T:Mode$ Attached | ValidSource$ Aura | ValidTarget$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever an Aura becomes attached to CARDNAME, create a 2/2 red Dragon creature token with flying. It has "{R}: This creature gets +1/+0 until end of turn." -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenOwner$ You | TokenColors$ Red | TokenPower$ 2 | TokenToughness$ 2 | TokenImage$ r 2 2 dragon M15 | TokenKeywords$ Flying | TokenAbilities$ BroodPump -SVar:BroodPump:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenOwner$ You | LegacyImage$ r 2 2 dragon M15 | TokenScript$ r_2_2_dragon_flying_firebreathing SVar:EnchantMe:Multiple SVar:Picture:http://www.wizards.com/global/images/magic/general/brood_keeper.jpg Oracle:Whenever an Aura becomes attached to Brood Keeper, create a 2/2 red Dragon creature token with flying. It has "{R}: This creature gets +1/+0 until end of turn." diff --git a/forge-gui/res/cardsfolder/d/dragon_egg.txt b/forge-gui/res/cardsfolder/d/dragon_egg.txt index d863c2e64c3..547e764ae7c 100644 --- a/forge-gui/res/cardsfolder/d/dragon_egg.txt +++ b/forge-gui/res/cardsfolder/d/dragon_egg.txt @@ -4,8 +4,7 @@ Types:Creature Dragon Egg PT:0/2 K:Defender T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create a 2/2 red Dragon creature token with flying. It has "{R}: This creature gets +1/+0 until end of turn". -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenOwner$ You | TokenColors$ Red | TokenPower$ 2 | TokenToughness$ 2 | TokenImage$ r 2 2 dragon M14 | TokenKeywords$ Flying | TokenAbilities$ DragonPump -SVar:DragonPump:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenOwner$ You | LegacyImage$ r 2 2 dragon M14 | TokenScript$ r_2_2_dragon_flying_firebreathing SVar:SacMe:4 DeckHas:Ability$Token SVar:Picture:http://www.wizards.com/global/images/magic/general/dragon_egg.jpg diff --git a/forge-gui/res/cardsfolder/h/hunted_horror.txt b/forge-gui/res/cardsfolder/h/hunted_horror.txt index e6dbae0909c..91e6970860d 100644 --- a/forge-gui/res/cardsfolder/h/hunted_horror.txt +++ b/forge-gui/res/cardsfolder/h/hunted_horror.txt @@ -4,6 +4,6 @@ Types:Creature Horror PT:7/7 K:Trample T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, target opponent creates two 3/3 green Centaur creature tokens with protection from black. -SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenName$ Centaur | TokenImage$ g 3 3 centaur pro black | TokenTypes$ Creature,Centaur | ValidTgts$ Opponent | TokenOwner$ Targeted | TokenColors$ Green | TokenPower$ 3 | TokenToughness$ 3 | TokenKeywords$ Protection from black +SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ g_3_3_centaur_pro_black | ValidTgts$ Opponent | TokenOwner$ Targeted | LegacyImage$ g 3 3 centaur pro black SVar:Picture:http://www.wizards.com/global/images/magic/general/hunted_horror.jpg -Oracle:Trample\nWhen Hunted Horror enters the battlefield, target opponent creates two 3/3 green Centaur creature tokens with protection from black. \ No newline at end of file +Oracle:Trample\nWhen Hunted Horror enters the battlefield, target opponent creates two 3/3 green Centaur creature tokens with protection from black. diff --git a/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt b/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt index b101c2d6aac..401d85ea186 100644 --- a/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt +++ b/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt @@ -5,7 +5,7 @@ PT:5/5 K:Forestwalk T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. -SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Cat Warrior | TokenTypes$ Creature,Cat,Warrior | TokenOwner$ You | TokenColors$ Green | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Forestwalk +SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenOwner$ You | TokenScript$ g_2_2_cat_warrior_forestwalk SVar:HasAttackEffect:TRUE SVar:HasBlockEffect:TRUE SVar:Picture:http://www.wizards.com/global/images/magic/general/jedit_ojanen_of_efrava.jpg diff --git a/forge-gui/res/cardsfolder/k/kalonian_twingrove.txt b/forge-gui/res/cardsfolder/k/kalonian_twingrove.txt index d8431f601fe..09459f1ef24 100644 --- a/forge-gui/res/cardsfolder/k/kalonian_twingrove.txt +++ b/forge-gui/res/cardsfolder/k/kalonian_twingrove.txt @@ -5,8 +5,7 @@ PT:*/* S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAMEs power and toughness are each equal to the number of Forests you control. SVar:X:Count$Valid Forest.YouCtrl T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME enters the battlefield, create a green Treefolk Warrior creature token with "This creature's power and toughness are each equal to the number of Forests you control." -SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Treefolk Warrior | TokenTypes$ Creature,Treefolk,Warrior | TokenOwner$ You | TokenColors$ Green | TokenPower$ X | TokenToughness$ X | TokenStaticAbilities$ TokenPT | TokenSVars$ X | References$ X | TokenImage$ g x x treefolk warrior -SVar:TokenPT:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of Forests you control. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_x_x_treefolk_warrior | LegacyImage$ g x x treefolk warrior SVar:BuffedBy:Forest SVar:NeedsToPlayVar:X GE3 SVar:Picture:http://www.wizards.com/global/images/magic/general/kalonian_twingrove.jpg diff --git a/forge-gui/res/cardsfolder/l/lord_windgrace.txt b/forge-gui/res/cardsfolder/l/lord_windgrace.txt index d6223fe7aed..c6521a3129f 100644 --- a/forge-gui/res/cardsfolder/l/lord_windgrace.txt +++ b/forge-gui/res/cardsfolder/l/lord_windgrace.txt @@ -8,6 +8,6 @@ SVar:DBDraw2:DB$ Draw | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPr SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | Origin$ Graveyard | Destination$ Battlefield | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Choose target land card in your graveyard | ValidTgts$ Land.YouCtrl | SpellDescription$ Return up to two target land cards from your graveyard to the battlefield. A:AB$ Destroy | Cost$ SubCounter<11/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | TargetMin$ 0 | TargetMax$ 6 | SubAbility$ DBToken | SpellDescription$ Destroy up to six target nonland permanents, then create six 2/2 green Cat Warrior creature tokens with forestwalk. -SVar:DBToken:DB$ Token | TokenAmount$ 6 | TokenName$ Cat Warrior | TokenTypes$ Creature,Cat,Warrior | TokenOwner$ You | TokenColors$ Green | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Forestwalk | TokenImage$ g 2 2 cat warrior c18 +SVar:DBToken:DB$ Token | TokenAmount$ 6 | TokenOwner$ You | TokenScript$ g_2_2_cat_warrior_forestwalk | LegacyImage$ g 2 2 cat warrior c18 K:CARDNAME can be your commander. Oracle:[+2]: Discard a card, then draw a card. If a land card is discarded this way, draw an additional card.\n[-3]: Return up to two target land cards from your graveyard to the battlefield.\n[-11]: Destroy up to six target nonland permanents, then create six 2/2 green Cat Warrior creature tokens with forestwalk.\nLord Windgrace can be your commander. diff --git a/forge-gui/res/cardsfolder/m/mitotic_slime.txt b/forge-gui/res/cardsfolder/m/mitotic_slime.txt index 74bc80efade..74bb2ec3300 100644 --- a/forge-gui/res/cardsfolder/m/mitotic_slime.txt +++ b/forge-gui/res/cardsfolder/m/mitotic_slime.txt @@ -3,8 +3,6 @@ ManaCost:4 G Types:Creature Ooze PT:4/4 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenSenior | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create two 2/2 green Ooze creature tokens. They have "When this creature dies, create two 1/1 green Ooze creature tokens." -SVar:TrigTokenSenior:DB$Token | TokenImage$ g 2 2 ooze | TokenName$ Ooze | TokenTypes$ Creature,Ooze | TokenColors$ Green | TokenOwner$ You | TokenPower$ 2 | TokenToughness$ 2 | TokenAmount$ 2 | TokenTriggers$ TriggerJunior | TokenSVars$ TrigTokenJunior -SVar:TriggerJunior:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenJunior | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create two 1/1 green Ooze creature tokens. -SVar:TrigTokenJunior:DB$Token | TokenImage$ g 1 1 ooze | TokenName$ Ooze | TokenTypes$ Creature,Ooze | TokenColors$ Green | TokenOwner$ You | TokenPower$ 1 | TokenToughness$ 1 | TokenAmount$ 2 +SVar:TrigTokenSenior:DB$Token | LegacyImage$ g 2 2 ooze | TokenScript$ g_2_2_ooze_mitotic | TokenOwner$ You | TokenAmount$ 2 SVar:Picture:http://www.wizards.com/global/images/magic/general/mitotic_slime.jpg Oracle:When Mitotic Slime dies, create two 2/2 green Ooze creature tokens. They have "When this creature dies, create two 1/1 green Ooze creature tokens." diff --git a/forge-gui/res/cardsfolder/n/nesting_dragon.txt b/forge-gui/res/cardsfolder/n/nesting_dragon.txt index c72018dc457..9b079008b9d 100644 --- a/forge-gui/res/cardsfolder/n/nesting_dragon.txt +++ b/forge-gui/res/cardsfolder/n/nesting_dragon.txt @@ -4,8 +4,5 @@ Types:Creature Dragon PT:5/4 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Landfall Whenever a land enters the battlefield under your control, create a 0/2 red Dragon creature token with defender and "When this creature dies, create a 2/2 red Dragon creature token with flying and '{R}: This creature gets +1/+0 until end of turn.'" -SVar:TrigToken:DB$ Token | TokenImage$ r 0 2 dragon egg | TokenAmount$ 1 | TokenName$ Dragon Egg | TokenTypes$ Creature,Dragon,Egg | TokenOwner$ You | TokenColors$ Red | TokenPower$ 0 | TokenToughness$ 2 | TokenKeywords$ Defender | TokenTriggers$ TriggerDies | TokenSVars$ TrigToken2,DragonPump -SVar:TriggerDies:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken2 | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create a 2/2 red Dragon creature token with flying and "{R}: This creature gets +1/+0 until end of turn." -SVar:TrigToken2:DB$Token | TokenImage$ r 2 2 dragon c18 | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenOwner$ You | TokenColors$ Red | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flying | TokenAbilities$ DragonPump -SVar:DragonPump:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. -Oracle:Flying\nLandfall — Whenever a land enters the battlefield under your control, create a 0/2 red Dragon Egg creature token with defender and "When this creature dies, create a 2/2 red Dragon creature token with flying and '{R}: This creature gets +1/+0 until end of turn.'" \ No newline at end of file +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenOwner$ You | LegacyImage$ r 0 2 dragon egg | TokenScript$ r_0_2_dragon_egg_defender_hatches_dragon +Oracle:Flying\nLandfall — Whenever a land enters the battlefield under your control, create a 0/2 red Dragon Egg creature token with defender and "When this creature dies, create a 2/2 red Dragon creature token with flying and '{R}: This creature gets +1/+0 until end of turn.'" diff --git a/forge-gui/res/cardsfolder/r/reef_worm.txt b/forge-gui/res/cardsfolder/r/reef_worm.txt index 02a9657a8c4..bf72bb1a6ed 100644 --- a/forge-gui/res/cardsfolder/r/reef_worm.txt +++ b/forge-gui/res/cardsfolder/r/reef_worm.txt @@ -2,11 +2,7 @@ Name:Reef Worm ManaCost:3 U Types:Creature Worm PT:0/1 -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenFish | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create a 3/3 blue Fish creature token with "When this creature dies, create a 6/6 blue Whale creature token with 'When this creature dies, create a 9/9 blue Kraken creature token.'" -SVar:TrigTokenFish:DB$Token | TokenImage$ u 3 3 fish | TokenName$ Fish | TokenTypes$ Creature,Fish | TokenColors$ Blue | TokenOwner$ You | TokenPower$ 3 | TokenToughness$ 3 | TokenAmount$ 1 | TokenTriggers$ TriggerWhale | TokenSVars$ TrigTokenWhale,TriggerKraken,TrigTokenKraken -SVar:TriggerWhale:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenWhale | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create a 6/6 blue Whale creature token with "When this creature dies, create a 9/9 blue Kraken creature token." -SVar:TrigTokenWhale:DB$Token | TokenImage$ u 6 6 whale | TokenName$ Whale | TokenTypes$ Creature,Whale | TokenColors$ Blue | TokenOwner$ You | TokenPower$ 6 | TokenToughness$ 6 | TokenAmount$ 1 | TokenTriggers$ TriggerKraken | TokenSVars$ TrigTokenKraken -SVar:TriggerKraken:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenKraken | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create a 9/9 blue Kraken creature token. -SVar:TrigTokenKraken:DB$Token | TokenImage$ u 9 9 kraken c14 | TokenName$ Kraken | TokenTypes$ Creature,Kraken | TokenColors$ Blue | TokenOwner$ You | TokenPower$ 9 | TokenToughness$ 9 | TokenAmount$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create a 3/3 blue Fish creature token with "When this creature dies, create a 6/6 blue Whale creature token with 'When this creature dies, create a 9/9 blue Kraken creature token.'" +SVar:TrigToken:DB$Token | LegacyImage$ u 3 3 fish | TokenScript$ u_3_3_fish_hatches_whale | TokenOwner$ You | TokenAmount$ 1 SVar:Picture:http://www.wizards.com/global/images/magic/general/reef_worm.jpg -Oracle:When Reef Worm dies, create a 3/3 blue Fish creature token with "When this creature dies, create a 6/6 blue Whale creature token with 'When this creature dies, create a 9/9 blue Kraken creature token.'" \ No newline at end of file +Oracle:When Reef Worm dies, create a 3/3 blue Fish creature token with "When this creature dies, create a 6/6 blue Whale creature token with 'When this creature dies, create a 9/9 blue Kraken creature token.'" diff --git a/forge-gui/res/cardsfolder/r/riftmarked_knight.txt b/forge-gui/res/cardsfolder/r/riftmarked_knight.txt index ea73c94620e..b924807b1b8 100644 --- a/forge-gui/res/cardsfolder/r/riftmarked_knight.txt +++ b/forge-gui/res/cardsfolder/r/riftmarked_knight.txt @@ -6,6 +6,6 @@ K:Flanking K:Protection from black K:Suspend:3:1 W W T:Mode$ CounterRemoved | ValidCard$ Card.Self | TriggerZones$ Exile | CounterType$ TIME | Execute$ TrigToken | IsPresent$ Card.Self+counters_GE1_TIME | PresentZone$ Exile | PresentCompare$ EQ0 | TriggerDescription$ When the last time counter is removed from CARDNAME while it's exiled, create a 2/2 black Knight creature token with flanking, protection from white, and haste. -SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Knight | TokenTypes$ Creature,Knight | TokenOwner$ You | TokenColors$ Black | TokenPower$ 2 | TokenToughness$ 2 | TokenKeywords$ Flanking<>Protection from white<>Haste +SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenOwner$ You | TokenScript$ b_2_2_knight_flanking_pro_white_haste SVar:Picture:http://www.wizards.com/global/images/magic/general/riftmarked_knight.jpg Oracle:Protection from black, flanking (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)\nSuspend 3—{1}{W}{W} (Rather than cast this card from your hand, you may pay {1}{W}{W} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhen the last time counter is removed from Riftmarked Knight while it's exiled, create a 2/2 black Knight creature token with flanking, protection from white, and haste. diff --git a/forge-gui/res/tokenscripts/b_2_2_knight_flanking_pro_white_haste.txt b/forge-gui/res/tokenscripts/b_2_2_knight_flanking_pro_white_haste.txt new file mode 100644 index 00000000000..14e11cae9df --- /dev/null +++ b/forge-gui/res/tokenscripts/b_2_2_knight_flanking_pro_white_haste.txt @@ -0,0 +1,9 @@ +Name:Knight +ManaCost:no cost +Types:Creature Knight +Colors:black +PT:2/2 +K:Flanking +K:Protection from white +K:Haste +Oracle:Flanking\nProtection from white\nHaste diff --git a/forge-gui/res/tokenscripts/g_1_1_ooze.txt b/forge-gui/res/tokenscripts/g_1_1_ooze.txt new file mode 100644 index 00000000000..86dc06b7011 --- /dev/null +++ b/forge-gui/res/tokenscripts/g_1_1_ooze.txt @@ -0,0 +1,6 @@ +Name:Ooze +ManaCost:no cost +Types:Creature Ooze +Colors:green +PT:1/1 +Oracle: diff --git a/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt b/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt new file mode 100644 index 00000000000..9db0d4debe9 --- /dev/null +++ b/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt @@ -0,0 +1,7 @@ +Name:Cat Warrior +ManaCost:no cost +Types:Creature Cat Warrior +Colors:green +PT:2/2 +K:Forestwalk +Oracle:Forestwalk diff --git a/forge-gui/res/tokenscripts/g_2_2_ooze_mitotic.txt b/forge-gui/res/tokenscripts/g_2_2_ooze_mitotic.txt new file mode 100644 index 00000000000..f4c5e1023a2 --- /dev/null +++ b/forge-gui/res/tokenscripts/g_2_2_ooze_mitotic.txt @@ -0,0 +1,8 @@ +Name:Ooze +ManaCost:no cost +Types:Creature Ooze +Colors:green +PT:2/2 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTokenJunior | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create two 1/1 green Ooze creature tokens. +SVar:TrigTokenJunior:DB$Token | LegacyImage$ g 1 1 ooze | TokenScript$ g_1_1_ooze | TokenOwner$ You | TokenAmount$ 2 +Oracle:When this creature dies, create two 1/1 green Ooze creature tokens. diff --git a/forge-gui/res/tokenscripts/g_3_3_centaur_pro_black.txt b/forge-gui/res/tokenscripts/g_3_3_centaur_pro_black.txt new file mode 100644 index 00000000000..d2788e73c36 --- /dev/null +++ b/forge-gui/res/tokenscripts/g_3_3_centaur_pro_black.txt @@ -0,0 +1,7 @@ +Name:Centaur +ManaCost:no cost +Types:Creature Centaur +Colors:green +PT:3/3 +K:Protection from black +Oracle:Protection from black diff --git a/forge-gui/res/tokenscripts/g_x_x_treefolk_warrior.txt b/forge-gui/res/tokenscripts/g_x_x_treefolk_warrior.txt new file mode 100644 index 00000000000..0332f619efd --- /dev/null +++ b/forge-gui/res/tokenscripts/g_x_x_treefolk_warrior.txt @@ -0,0 +1,9 @@ +Name:Treefolk Warrior +ManaCost:no cost +Types:Creature Treefolk Warrior +Colors:green +PT:*/* +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAMEs power and toughness are each equal to the number of Forests you control. +SVar:X:Count$Valid Forest.YouCtrl +SVar:BuffedBy:Forest +Oracle:CARDNAMEs power and toughness are each equal to the number of Forests you control. diff --git a/forge-gui/res/tokenscripts/r_0_2_dragon_egg_defender_hatches_dragon.txt b/forge-gui/res/tokenscripts/r_0_2_dragon_egg_defender_hatches_dragon.txt new file mode 100644 index 00000000000..d07b22f0e4f --- /dev/null +++ b/forge-gui/res/tokenscripts/r_0_2_dragon_egg_defender_hatches_dragon.txt @@ -0,0 +1,10 @@ +Name:Dragon Egg +ManaCost:no cost +Types:Creature Dragon Egg +Colors:red +PT:0/2 +K:Defender +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create a 2/2 red Dragon creature token with flying. It has "{R}: This creature gets +1/+0 until end of turn". +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenOwner$ You | LegacyImage$ r 2 2 dragon c18 | TokenScript$ r_2_2_dragon_flying_firebreathing +SVar:SacMe:4 +Oracle:Defender\nWhen Dragon Egg dies, create a 2/2 red Dragon creature token with flying. It has "{R}: This creature gets +1/+0 until end of turn." diff --git a/forge-gui/res/tokenscripts/r_2_2_dragon_flying_firebreathing.txt b/forge-gui/res/tokenscripts/r_2_2_dragon_flying_firebreathing.txt new file mode 100644 index 00000000000..b3f28088d16 --- /dev/null +++ b/forge-gui/res/tokenscripts/r_2_2_dragon_flying_firebreathing.txt @@ -0,0 +1,8 @@ +Name:Dragon +ManaCost:no cost +Types:Creature Dragon +Colors:red +PT:2/2 +K:Flying +A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. +Oracle:Flying\n{R}: This creature gets +1/+0 until end of turn. diff --git a/forge-gui/res/tokenscripts/u_3_3_fish_hatches_whale.txt b/forge-gui/res/tokenscripts/u_3_3_fish_hatches_whale.txt new file mode 100644 index 00000000000..b3cee428e2b --- /dev/null +++ b/forge-gui/res/tokenscripts/u_3_3_fish_hatches_whale.txt @@ -0,0 +1,8 @@ +Name:Fish +ManaCost:no cost +Types:Creature Fish +Colors:blue +PT:3/3 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create a 6/6 blue Whale creature token with "When this creature dies, create a 9/9 blue Kraken creature token." +SVar:TrigToken:DB$Token | LegacyImage$ u 6 6 whale | TokenScript$ u_6_6_whale_hatches_kraken | TokenOwner$ You | TokenAmount$ 1 +Oracle:When this creature dies, create a 6/6 blue Whale creature token with "When this creature dies, create a 9/9 blue Kraken creature token.". diff --git a/forge-gui/res/tokenscripts/u_6_6_whale_hatches_kraken.txt b/forge-gui/res/tokenscripts/u_6_6_whale_hatches_kraken.txt new file mode 100644 index 00000000000..fb642b54f94 --- /dev/null +++ b/forge-gui/res/tokenscripts/u_6_6_whale_hatches_kraken.txt @@ -0,0 +1,8 @@ +Name:Whale +ManaCost:no cost +Types:Creature Whale +Colors:blue +PT:6/6 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, create a 9/9 blue Kraken creature token. +SVar:TrigToken:DB$Token | LegacyImage$ u 9 9 kraken | TokenScript$ u_9_9_kraken | TokenOwner$ You | TokenAmount$ 1 +Oracle:When this creature dies, create a 9/9 blue Kraken creature token. diff --git a/forge-gui/res/tokenscripts/u_9_9_kraken.txt b/forge-gui/res/tokenscripts/u_9_9_kraken.txt new file mode 100644 index 00000000000..e824b538c68 --- /dev/null +++ b/forge-gui/res/tokenscripts/u_9_9_kraken.txt @@ -0,0 +1,6 @@ +Name:Kraken +ManaCost:no cost +Types:Creature Kraken +Colors:blue +PT:9/9 +Oracle: From 45ee00f10b6d78b5fb7d5985c8c7bf592fd1e5e8 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sun, 30 Sep 2018 16:41:22 +0200 Subject: [PATCH 043/143] Player: canPlayLand use the mayPlay of the Land Ability --- forge-game/src/main/java/forge/game/player/Player.java | 5 ++++- .../src/main/java/forge/game/spellability/LandAbility.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) 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 f3e15e1d872..56415c518bc 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -1751,6 +1751,9 @@ public class Player extends GameEntity implements Comparable { return canPlayLand(land, false); } public final boolean canPlayLand(final Card land, final boolean ignoreZoneAndTiming) { + return canPlayLand(land, ignoreZoneAndTiming, null); + } + public final boolean canPlayLand(final Card land, final boolean ignoreZoneAndTiming, SpellAbility landSa) { if (!ignoreZoneAndTiming && !canCastSorcery()) { return false; } @@ -1766,7 +1769,7 @@ public class Player extends GameEntity implements Comparable { } if (land != null && !ignoreZoneAndTiming) { - final boolean mayPlay = !land.mayPlay(this).isEmpty(); + final boolean mayPlay = landSa == null ? !land.mayPlay(this).isEmpty() : landSa.getMayPlay() != null; if (land.getOwner() != this && !mayPlay) { return false; } diff --git a/forge-game/src/main/java/forge/game/spellability/LandAbility.java b/forge-game/src/main/java/forge/game/spellability/LandAbility.java index a9b26dc7680..8b1ba1557ca 100644 --- a/forge-game/src/main/java/forge/game/spellability/LandAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/LandAbility.java @@ -37,7 +37,7 @@ public class LandAbility extends Ability { final Card land = this.getHostCard(); final Player p = this.getActivatingPlayer(); - return p.canPlayLand(land); + return p.canPlayLand(land, false, this); } @Override public void resolve() { From ab9df124d702ae7b7a698f1e3f48073aec961362 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sun, 30 Sep 2018 12:32:08 -0400 Subject: [PATCH 044/143] Fix reported GRN issues --- forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt | 6 +++--- .../res/cardsfolder/upcoming/glaive_of_the_guildpact.txt | 3 +-- forge-gui/res/cardsfolder/upcoming/house_guildmage.txt | 2 +- forge-gui/res/cardsfolder/upcoming/invert.txt | 2 +- forge-gui/res/cardsfolder/upcoming/league_guildmage.txt | 1 + forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt | 2 +- forge-gui/res/cardsfolder/upcoming/urban_utopia.txt | 2 +- forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt b/forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt index 69f7c2ac482..3816568e85d 100644 --- a/forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt +++ b/forge-gui/res/cardsfolder/upcoming/chamber_sentry.txt @@ -3,9 +3,9 @@ ManaCost:X Types:Artifact Creature Construct PT:0/0 K:etbCounter:P1P1:Y:no Condition:CARDNAME enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. -SVar:X:Count$Converge -A:AB$ DealDamage | Announce$ Y | Cost$ Y T SubCounter | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ Y | References$ Y | SpellDescription$ CARDNAME deals Y damage to any target. -SVar:Y:Count$xPaid +SVar:Y:Count$Converge +A:AB$ DealDamage | Announce$ X | Cost$ X T SubCounter | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to any target. +SVar:X:Count$xPaid A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | SpellDescription$ Return CARDNAME from your graveyard to your hand. SVar:DiscardMe:1 Oracle:Chamber Sentry enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.\n{X}, {T}, Remove X +1/+1 counters from Chamber Sentry: It deals X damage to any target.\n{W}{U}{B}{R}{G}: Return Chamber Sentry from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt b/forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt index e42184fb9e8..082cf91e31d 100644 --- a/forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt +++ b/forge-gui/res/cardsfolder/upcoming/glaive_of_the_guildpact.txt @@ -1,10 +1,9 @@ Name:Glaive of the Guildpact ManaCost:2 Types:Artifact Equipment +K:Equip:3 S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ X | AddKeyword$ Vigilance & Menace | Description$ Equipped creature gets +1/+0 for each Gate you control and has vigilance and menace. SVar:X:Count$Valid Gate.YouCtrl -S:Mode$ Continuous | Affected$ Gate.YouCtrl | AddPower$ X | AddKeyword$ Vigilance & Menace | Description$ Equipped creature gets +1/+0 for each Gate you control and has vigilance and menace. -SVar:X:Count$Valid Gate.YouCtrl SVar:BuffedBy:Gate DeckHints:Type$Gate Oracle:Equipped creature gets +1/+0 for each Gate you control and has vigilance and menace. (A creature with menace can't be blocked except by two or more creatures.)\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/upcoming/house_guildmage.txt b/forge-gui/res/cardsfolder/upcoming/house_guildmage.txt index ebfdeada89c..83077960509 100644 --- a/forge-gui/res/cardsfolder/upcoming/house_guildmage.txt +++ b/forge-gui/res/cardsfolder/upcoming/house_guildmage.txt @@ -3,5 +3,5 @@ ManaCost:U B Types:Creature Human Wizard PT:2/2 A:AB$ Pump | Cost$ 1 U T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step. -A:AB$ Surveil | Cost$ 2 B T | SurveilNum$ 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +A:AB$ Surveil | Cost$ 2 B T | Amount 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) Oracle:{1}{U}, {T}: Target creature doesn't untap during its controller's next untap step.\n{2}{B}, {T}: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/upcoming/invert.txt b/forge-gui/res/cardsfolder/upcoming/invert.txt index e317e2bbce3..9e5803db4e7 100644 --- a/forge-gui/res/cardsfolder/upcoming/invert.txt +++ b/forge-gui/res/cardsfolder/upcoming/invert.txt @@ -2,7 +2,7 @@ Name:Invert ManaCost:U/R Types:Instant AlternateMode: Split -A:SP$ Pump | Cost$ U/R | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME's power and toughness of each of CARDNAME. | SpellDescription$ Switch the power and toughness of each of up to two target creatures. +A:SP$ Pump | Cost$ U/R | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | KW$ HIDDEN CARDNAME's power and toughness are switched | SpellDescription$ Switch the power and toughness of each of up to two target creatures. Oracle:Switch the power and toughness of each of up to two target creatures. ALTERNATE diff --git a/forge-gui/res/cardsfolder/upcoming/league_guildmage.txt b/forge-gui/res/cardsfolder/upcoming/league_guildmage.txt index 01b6450215d..1c07ac501bf 100644 --- a/forge-gui/res/cardsfolder/upcoming/league_guildmage.txt +++ b/forge-gui/res/cardsfolder/upcoming/league_guildmage.txt @@ -4,4 +4,5 @@ Types:Creature Human Wizard PT:2/2 A:AB$ Draw | Cost$ 3 U T | NumCards$ 1 | SpellDescription$ Draw a card. A:AB$ CopySpellAbility | Cost$ X R T | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | TargetType$ Spell | SpellDescription$ Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy. +SVar:X:Targeted$CardManaCost Oracle:{3}{U}, {T}: Draw a card.\n{X}{R}, {T}: Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy. diff --git a/forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt b/forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt index e38563c5209..6382caaec7c 100644 --- a/forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt +++ b/forge-gui/res/cardsfolder/upcoming/piston_fist_cyclops.txt @@ -4,6 +4,6 @@ Types:Creature Cyclops PT:4/3 K:Defender S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME can attack as though it didn't have defender. | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've cast an instant or sorcery spell this turn, CARDNAME can attack as though it didn't have defender. -SVar:X:Count$ThisTurnCast_Instant.YouOwn +SVar:X:Count$ThisTurnCast_Instant.YouOwn,Sorcery.YouOwn SVar:BuffedBy:Instant,Sorcery Oracle:Defender\nAs long as you've cast an instant or sorcery spell this turn, Piston-Fist Cyclops can attack as though it didn't have defender. diff --git a/forge-gui/res/cardsfolder/upcoming/urban_utopia.txt b/forge-gui/res/cardsfolder/upcoming/urban_utopia.txt index a162ca7f0da..605d66f53b5 100644 --- a/forge-gui/res/cardsfolder/upcoming/urban_utopia.txt +++ b/forge-gui/res/cardsfolder/upcoming/urban_utopia.txt @@ -2,7 +2,7 @@ Name:Urban Utopia ManaCost:1 G Types:Enchantment Aura K:Enchant land -A:SP$ Attach | Cost$ G | ValidTgts$ Land | AILogic$ Pump +A:SP$ Attach | Cost$ 1 G | ValidTgts$ Land | AILogic$ Pump T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ FreeCard | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. SVar:FreeCard:DB$ Draw | Defined$ You | NumCards$ 1 S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddAbility$ AbundantGrowthTap | Description$ Enchanted land has "{T}: Add one mana of any color." diff --git a/forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt b/forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt index 35007ee63e5..da010101d99 100644 --- a/forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt +++ b/forge-gui/res/cardsfolder/upcoming/vigorspore_wurm.txt @@ -4,7 +4,7 @@ Types:Creature Wurm PT:6/4 K:CantBeBlockedByAmount GT1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Undergrowth - When CARDNAME enters the battlefield, target creature gains vigilance and gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. -SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | References$ X +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | KWs$ Vigilance | References$ X SVar:X:Count$TypeInYourYard.Creature SVar:PlayMain1:TRUE Oracle:Undergrowth — When Vigorspore Wurm enters the battlefield, target creature gains vigilance and gets +X/+X until end of turn, where X is the number of creature cards in your graveyard.\nVigorspore Wurm can't be blocked by more than one creature. From 2b6aae8a0955a7f12c94014c3d9448b006ea6092 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Sun, 30 Sep 2018 11:29:08 -0600 Subject: [PATCH 045/143] Preparing Forge for Android publish 1.6.16.001 Signed-off-by: Jamin W. Collins --- forge-gui-android/pom.xml | 2 +- forge-gui-ios/pom.xml | 2 +- forge-gui-mobile/src/forge/Forge.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 332d3a1be0a..cff63a76f66 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -7,7 +7,7 @@ jar -Xms128m -Xmx1024m - 1.6.15.003 + 1.6.16.001 keystore alias storepass diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index e5517baee77..75741f26559 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -7,7 +7,7 @@ jar -Xms128m -Xmx2048m - 1.6.15.003 + 1.6.16.001 diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 3c3d09cb743..9c56811a115 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -34,7 +34,7 @@ import java.util.List; import java.util.Stack; public class Forge implements ApplicationListener { - public static final String CURRENT_VERSION = "1.6.15.003"; + public static final String CURRENT_VERSION = "1.6.16.001"; private static final ApplicationListener app = new Forge(); private static Clipboard clipboard; From 2e46ff56679607315e8b1fe85d68e054f8060db7 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Mon, 1 Oct 2018 05:17:31 +0000 Subject: [PATCH 046/143] I'm guessing this card is broken, and that this fixes it. --- forge-gui/res/cardsfolder/h/honor_the_fallen.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/h/honor_the_fallen.txt b/forge-gui/res/cardsfolder/h/honor_the_fallen.txt index aa8e2e38f0d..e8ab7e78641 100644 --- a/forge-gui/res/cardsfolder/h/honor_the_fallen.txt +++ b/forge-gui/res/cardsfolder/h/honor_the_fallen.txt @@ -5,6 +5,6 @@ A:SP$ ChangeZoneAll | Cost$ 1 W | ChangeType$ Creature | Origin$ Graveyard | Des SVar:DBGainLife:DB$GainLife | Defined$ You | LifeAmount$ X | References$ X SVar:X:Remembered$Amount SVar:NeedsToPlayVar:Z GE2 -SVar:Count$ValidGraveyard Creature +SVar:Z:Count$ValidGraveyard Creature SVar:Picture:http://www.wizards.com/global/images/magic/general/honor_the_fallen.jpg Oracle:Exile all creature cards from all graveyards. You gain 1 life for each card exiled this way. From 8fb18d278ea1115ea37efff42880893eb1619c30 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Mon, 1 Oct 2018 05:21:04 +0000 Subject: [PATCH 047/143] Probably fixes Oni Possession. --- forge-gui/res/cardsfolder/o/oni_possession.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/o/oni_possession.txt b/forge-gui/res/cardsfolder/o/oni_possession.txt index 430fa0818be..b4a55a197cd 100644 --- a/forge-gui/res/cardsfolder/o/oni_possession.txt +++ b/forge-gui/res/cardsfolder/o/oni_possession.txt @@ -8,7 +8,7 @@ S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddType$ Demon & Spirit | T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of your upkeep, sacrifice a creature. SVar:TrigSac:DB$Sacrifice | Defined$ You | SacValid$ Creature SVar:NeedsToPlayVar:Z GE3 -SVar:Count$Valid Creature.YouCtrl +SVar:Z:Count$Valid Creature.YouCtrl SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/oni_possession.jpg Oracle:Enchant creature\nAt the beginning of your upkeep, sacrifice a creature.\nEnchanted creature gets +3/+3 and has trample.\nEnchanted creature is a Demon Spirit. From 9a81a53fe36543bbdc11094957a5a4749ecad8a0 Mon Sep 17 00:00:00 2001 From: Michael Kuenzli Date: Mon, 1 Oct 2018 09:01:02 +0200 Subject: [PATCH 048/143] Fix typo (exile -> surveil) --- forge-gui/res/cardsfolder/c/citywatch_sphinx.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt b/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt index 53008ff4d60..1e759f40719 100644 --- a/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt +++ b/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt @@ -3,6 +3,6 @@ ManaCost:5 U Types:Creature Sphinx PT:5/4 K:Flying -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME dies, exile 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME dies, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) SVar:TrigSurveil:DB$Surveil | Defined$ You | Amount$ 2 Oracle:Flying\nWhen Citywatch Sphinx dies, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) From 4c6b59e7ec0424edc087021e8f1f2ac4b65bb03f Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 1 Oct 2018 21:45:22 -0600 Subject: [PATCH 049/143] avoid NPE when right clicking during draft Signed-off-by: Jamin W. Collins --- .../forge/screens/deckeditor/controllers/ACEditorBase.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java index f9287da68da..8c35c67ec10 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/ACEditorBase.java @@ -257,7 +257,11 @@ public abstract class ACEditorBase getDeckController(); protected Deck getHumanDeck() { - return getDeckController().getModel().getHumanDeck(); + try { + return getDeckController().getModel().getHumanDeck(); + } catch (NullPointerException ex) { + return null; + } } /** From 4f004069c01c364dd84e2c10e03ce9492dde40de Mon Sep 17 00:00:00 2001 From: Hanmac Date: Tue, 2 Oct 2018 07:52:43 +0200 Subject: [PATCH 050/143] cards: update Volver to use ReplacementEffect --- forge-gui/res/cardsfolder/a/anavolver.txt | 11 ++++++----- forge-gui/res/cardsfolder/c/cetavolver.txt | 13 +++++++------ forge-gui/res/cardsfolder/d/degavolver.txt | 11 ++++++----- forge-gui/res/cardsfolder/n/necravolver.txt | 11 ++++++----- forge-gui/res/cardsfolder/r/rakavolver.txt | 11 ++++++----- 5 files changed, 31 insertions(+), 26 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/anavolver.txt b/forge-gui/res/cardsfolder/a/anavolver.txt index 47991138802..838ec0bbf3a 100644 --- a/forge-gui/res/cardsfolder/a/anavolver.txt +++ b/forge-gui/res/cardsfolder/a/anavolver.txt @@ -3,14 +3,15 @@ ManaCost:3 G Types:Creature Volver PT:3/3 K:Kicker:1 U:B -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 1 | Origin$ Any | Destination$ Battlefield | Execute$ VolverStrength | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying. -SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ VolverLaunch -SVar:VolverLaunch:DB$ Pump | Defined$ Self | KW$ Flying | Permanent$ True -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 2 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with "Pay 3 life: Regenerate CARDNAME." -SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ VolverResilience +K:ETBReplacement:Other:VolverStrength:Mandatory::Card.Self+kicked 1 +K:ETBReplacement:Other:VolverPumped:Mandatory::Card.Self+kicked 2 +SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | ETB$ True | SubAbility$ VolverLaunch | SpellDescription$ If CARDNAME was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying. +SVar:VolverLaunch:DB$ Animate | Defined$ Self | Keywords$ Flying | Permanent$ True +SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SubAbility$ VolverResilience | SpellDescription$ If CARDNAME was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with "Pay 3 life: Regenerate CARDNAME." SVar:VolverResilience:DB$ Animate | Defined$ Self | Abilities$ ABRegen | Permanent$ True SVar:ABRegen:AB$Regenerate | Cost$ PayLife<3> | SpellDescription$ Regenerate CARDNAME. SVar:RemRandomDeck:True DeckNeeds:Color$Blue|Black +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/anavolver.jpg Oracle:Kicker {1}{U} and/or {B} (You may pay an additional {1}{U} and/or {B} as you cast this spell.)\nIf Anavolver was kicked with its {1}{U} kicker, it enters the battlefield with two +1/+1 counters on it and with flying.\nIf Anavolver was kicked with its {B} kicker, it enters the battlefield with a +1/+1 counter on it and with "Pay 3 life: Regenerate Anavolver." diff --git a/forge-gui/res/cardsfolder/c/cetavolver.txt b/forge-gui/res/cardsfolder/c/cetavolver.txt index bcb10d7d046..d38439abd12 100644 --- a/forge-gui/res/cardsfolder/c/cetavolver.txt +++ b/forge-gui/res/cardsfolder/c/cetavolver.txt @@ -3,13 +3,14 @@ ManaCost:1 U Types:Creature Volver PT:1/1 K:Kicker:1 R:G -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 1 | Origin$ Any | Destination$ Battlefield | Execute$ VolverStrength | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike. -SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ VolverSpeed -SVar:VolverSpeed:DB$ Pump | Defined$ Self | KW$ First Strike | Permanent$ True -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 2 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample. -SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ VolverStomp -SVar:VolverStomp:DB$ Pump | Defined$ Self | KW$ Trample | Permanent$ True +K:ETBReplacement:Other:VolverStrength:Mandatory::Card.Self+kicked 1 +K:ETBReplacement:Other:VolverPumped:Mandatory::Card.Self+kicked 2 +SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | ETB$ True | SubAbility$ VolverSpeed | SpellDescription$ If CARDNAME was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike. +SVar:VolverSpeed:DB$ Animate | Defined$ Self | Keywords$ First Strike | Permanent$ True +SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SubAbility$ VolverStomp | SpellDescription$ If CARDNAME was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample. +SVar:VolverStomp:DB$ Animate | Defined$ Self | Keywords$ Trample | Permanent$ True SVar:RemRandomDeck:True DeckNeeds:Color$Red|Green +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/cetavolver.jpg Oracle:Kicker {1}{R} and/or {G} (You may pay an additional {1}{R} and/or {G} as you cast this spell.)\nIf Cetavolver was kicked with its {1}{R} kicker, it enters the battlefield with two +1/+1 counters on it and with first strike.\nIf Cetavolver was kicked with its {G} kicker, it enters the battlefield with a +1/+1 counter on it and with trample. diff --git a/forge-gui/res/cardsfolder/d/degavolver.txt b/forge-gui/res/cardsfolder/d/degavolver.txt index 57e5cb5e15d..90a364e97ff 100644 --- a/forge-gui/res/cardsfolder/d/degavolver.txt +++ b/forge-gui/res/cardsfolder/d/degavolver.txt @@ -3,14 +3,15 @@ ManaCost:1 W Types:Creature Volver PT:1/1 K:Kicker:1 B:R -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 1 | Origin$ Any | Destination$ Battlefield | Execute$ VolverStrength | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with "Pay 3 life: Regenerate CARDNAME." -SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ VolverResilience +K:ETBReplacement:Other:VolverStrength:Mandatory::Card.Self+kicked 1 +K:ETBReplacement:Other:VolverPumped:Mandatory::Card.Self+kicked 2 +SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | ETB$ True | SubAbility$ VolverResilience | SpellDescription$ If CARDNAME was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with "Pay 3 life: Regenerate CARDNAME." SVar:VolverResilience:DB$ Animate | Defined$ Self | Abilities$ ABRegen | Permanent$ True SVar:ABRegen:AB$Regenerate | Cost$ PayLife<3> | SpellDescription$ Regenerate CARDNAME. -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 2 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike. -SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ VolverSpeed -SVar:VolverSpeed:DB$ Pump | Defined$ Self | KW$ First Strike | Permanent$ True +SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SubAbility$ VolverSpeed | SpellDescription$ If CARDNAME was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike. +SVar:VolverSpeed:DB$ Animate | Defined$ Self | Keywords$ First Strike | Permanent$ True SVar:RemRandomDeck:True DeckNeeds:Color$Black|Red +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/degavolver.jpg Oracle:Kicker {1}{B} and/or {R} (You may pay an additional {1}{B} and/or {R} as you cast this spell.)\nIf Degavolver was kicked with its {1}{B} kicker, it enters the battlefield with two +1/+1 counters on it and with "Pay 3 life: Regenerate Degavolver."\nIf Degavolver was kicked with its {R} kicker, it enters the battlefield with a +1/+1 counter on it and with first strike. diff --git a/forge-gui/res/cardsfolder/n/necravolver.txt b/forge-gui/res/cardsfolder/n/necravolver.txt index 96b98a67fc4..a2075b1d36a 100644 --- a/forge-gui/res/cardsfolder/n/necravolver.txt +++ b/forge-gui/res/cardsfolder/n/necravolver.txt @@ -3,16 +3,17 @@ ManaCost:2 B Types:Creature Volver PT:2/2 K:Kicker:1 G:W -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 1 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {1}{G} kicker, it enters the battlefield with two +1/+1 counters on it and with trample. -SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ VolverStomp -SVar:VolverStomp:DB$ Pump | Defined$ Self | KW$ Trample | Permanent$ True -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 2 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped2 | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {W} kicker, it enters the battlefield with a +1/+1 counter on it and with "Whenever CARDNAME deals damage, you gain that much life." -SVar:VolverPumped2:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ VolverLife +K:ETBReplacement:Other:VolverStrength:Mandatory::Card.Self+kicked 1 +K:ETBReplacement:Other:VolverPumped:Mandatory::Card.Self+kicked 2 +SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | ETB$ True | SubAbility$ VolverStomp | SpellDescription$ If CARDNAME was kicked with its {1}{G} kicker, it enters the battlefield with two +1/+1 counters on it and with trample. +SVar:VolverStomp:DB$ Animate | Defined$ Self | Keywords$ Trample | Permanent$ True +SVar:VolverPumped2:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SubAbility$ VolverLife | SpellDescription$ If CARDNAME was kicked with its {W} kicker, it enters the battlefield with a +1/+1 counter on it and with "Whenever CARDNAME deals damage, you gain that much life." SVar:VolverLife:DB$ Animate | Defined$ Self | Triggers$ PseudoLifelink | sVars$ VolverTrigGain,VolverX | Permanent$ True SVar:PseudoLifelink:Mode$ DamageDealtOnce | ValidSource$ Card.Self | Execute$ VolverTrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life. SVar:VolverTrigGain:DB$ GainLife | Defined$ You | LifeAmount$ VolverX | References$ VolverX SVar:VolverX:TriggerCount$DamageAmount SVar:RemRandomDeck:True DeckNeeds:Color$Green|White +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/necravolver.jpg Oracle:Kicker {1}{G} and/or {W} (You may pay an additional {1}{G} and/or {W} as you cast this spell.)\nIf Necravolver was kicked with its {1}{G} kicker, it enters the battlefield with two +1/+1 counters on it and with trample.\nIf Necravolver was kicked with its {W} kicker, it enters the battlefield with a +1/+1 counter on it and with "Whenever Necravolver deals damage, you gain that much life." diff --git a/forge-gui/res/cardsfolder/r/rakavolver.txt b/forge-gui/res/cardsfolder/r/rakavolver.txt index 7fd60cf97c4..e4c7af30b0a 100644 --- a/forge-gui/res/cardsfolder/r/rakavolver.txt +++ b/forge-gui/res/cardsfolder/r/rakavolver.txt @@ -3,16 +3,17 @@ ManaCost:2 R Types:Creature Volver PT:2/2 K:Kicker:1 W:U -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 1 | Origin$ Any | Destination$ Battlefield | Execute$ VolverStrength | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {1}{W} kicker, it enters the battlefield with two +1/+1 counters on it and with "Whenever CARDNAME deals damage, you gain that much life." -SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ VolverLife +K:ETBReplacement:Other:VolverStrength:Mandatory::Card.Self+kicked 1 +K:ETBReplacement:Other:VolverPumped:Mandatory::Card.Self+kicked 2 +SVar:VolverStrength:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 2 | ETB$ True | SubAbility$ VolverLife | SpellDescription$ If CARDNAME was kicked with its {1}{W} kicker, it enters the battlefield with two +1/+1 counters on it and with "Whenever CARDNAME deals damage, you gain that much life." SVar:VolverLife:DB$ Animate | Defined$ Self | Triggers$ PseudoLifelink | sVars$ VolverTrigGain,VolverX | Permanent$ True SVar:PseudoLifelink:Mode$ DamageDealtOnce | ValidSource$ Card.Self | Execute$ VolverTrigGain | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage, you gain that much life. SVar:VolverTrigGain:DB$ GainLife | Defined$ You | LifeAmount$ VolverX | References$ VolverX SVar:VolverX:TriggerCount$DamageAmount -T:Mode$ ChangesZone | ValidCard$ Card.Self+kicked 2 | Origin$ Any | Destination$ Battlefield | Execute$ VolverPumped | Static$ True | TriggerDescription$ If CARDNAME was kicked with its {U} kicker, it enters the battlefield with a +1/+1 counter on it and with flying. -SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ VolverLaunch -SVar:VolverLaunch:DB$ Pump | Defined$ Self | KW$ Flying | Permanent$ True +SVar:VolverPumped:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SubAbility$ VolverLaunch | SpellDescription$ If CARDNAME was kicked with its {U} kicker, it enters the battlefield with a +1/+1 counter on it and with flying. +SVar:VolverLaunch:DB$ Animate | Defined$ Self | Keywords$ Flying | Permanent$ True SVar:RemRandomDeck:True DeckNeeds:Color$White|Blue +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/rakavolver.jpg Oracle:Kicker {1}{W} and/or {U} (You may pay an additional {1}{W} and/or {U} as you cast this spell.)\nIf Rakavolver was kicked with its {1}{W} kicker, it enters the battlefield with two +1/+1 counters on it and with "Whenever Rakavolver deals damage, you gain that much life."\nIf Rakavolver was kicked with its {U} kicker, it enters the battlefield with a +1/+1 counter on it and with flying. From 7a439fe26f5042b16eec1546a3534eda26fedd7e Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Tue, 2 Oct 2018 11:33:41 +0200 Subject: [PATCH 051/143] Fix Finality to allow casting without controlling any creatures --- forge-gui/res/cardsfolder/f/find_finality.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/f/find_finality.txt b/forge-gui/res/cardsfolder/f/find_finality.txt index 90bb97fd8c6..6f83eb90afa 100644 --- a/forge-gui/res/cardsfolder/f/find_finality.txt +++ b/forge-gui/res/cardsfolder/f/find_finality.txt @@ -10,6 +10,6 @@ ALTERNATE Name:Finality ManaCost:4 B G Types:Sorcery -A:SP$ PutCounter | Cost$ 4 B G | ValidTgts$ Creature.YouCtrl | CounterNum$ 2 | CounterType$ P1P1 | SubAbility$ DBPumpAll | SpellDescription$ You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. +A:SP$ ChooseCard | Cost$ 4 B G | Defined$ You | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.YouCtrl | CounterNum$ 2 | CounterType$ P1P1 | SubAbility$ DBPumpAll | SpellDescription$ You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -4 | NumDef$ -4 | IsCurse$ True Oracle:You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. From 8042a202a67b0b08fae81857862c27ba32580610 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Tue, 2 Oct 2018 11:35:14 +0200 Subject: [PATCH 052/143] Fix Kraul Harpooner: add pump to triggered ability --- forge-gui/res/cardsfolder/k/kraul_harpooner.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/k/kraul_harpooner.txt b/forge-gui/res/cardsfolder/k/kraul_harpooner.txt index 6d35260d1b6..539450d9419 100644 --- a/forge-gui/res/cardsfolder/k/kraul_harpooner.txt +++ b/forge-gui/res/cardsfolder/k/kraul_harpooner.txt @@ -4,6 +4,7 @@ Types:Creature Insect Warrior PT:3/2 K:Reach T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, choose up to one target creature with flying you don't control. CARDNAME gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard, then you may have CARDNAME fight that creature. -SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X | SubAbility$ DBFight +SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X | References$ X | SubAbility$ DBFight SVar:DBFight:DB$ Fight | Defined$ Self | ValidTgts$ Creature.withFlying+YouDontCtrl | TgtPrompt$ Select target creature with flying you don't control +SVar:X:Count$TypeInYourYard.Creature Oracle:Reach\nUndergrowth — When Kraul Harpooner enters the battlefield, choose up to one target creature with flying you don't control. Kraul Harpooner gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard, then you may have Kraul Harpooner fight that creature. From 09b62681c10067c78d2db0864559078e89b08c4d Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 2 Oct 2018 22:21:13 +0800 Subject: [PATCH 053/143] - Fixed Whispering Snitch --- forge-ai/src/main/java/forge/ai/SpellApiToAi.java | 1 + forge-gui/res/cardsfolder/b/bloodspore_thrinax.txt | 2 +- forge-gui/res/cardsfolder/w/whispering_snitch.txt | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java index d5b9473a39e..7bd699882e7 100644 --- a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java +++ b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java @@ -85,6 +85,7 @@ public enum SpellApiToAi { .put(ApiType.GenericChoice, ChooseGenericEffectAi.class) .put(ApiType.Goad, GoadAi.class) .put(ApiType.Haunt, HauntAi.class) + .put(ApiType.ImmediateTrigger, AlwaysPlayAi.class) .put(ApiType.LoseLife, LifeLoseAi.class) .put(ApiType.LosesGame, GameLossAi.class) .put(ApiType.Mana, ManaEffectAi.class) diff --git a/forge-gui/res/cardsfolder/b/bloodspore_thrinax.txt b/forge-gui/res/cardsfolder/b/bloodspore_thrinax.txt index d47276c7def..5873dca7ecf 100644 --- a/forge-gui/res/cardsfolder/b/bloodspore_thrinax.txt +++ b/forge-gui/res/cardsfolder/b/bloodspore_thrinax.txt @@ -4,7 +4,7 @@ Types:Creature Lizard PT:2/2 K:Devour:1 R:Event$ Moved | ActiveZones$ Battlefield | Destination$ Battlefield | ValidCard$ Creature.YouCtrl+Other | ReplaceWith$ AddExtraCounter | Description$ Each other creature you control enters the battlefield with an additional X +1/+1 counters on it, where X is the number of +1/+1 counters on CARDNAME. -SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ X | SubAbility$ MoveToBattlefield +SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ X | References$ X | SubAbility$ MoveToBattlefield SVar:MoveToBattlefield:DB$ ChangeZone | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard SVar:X:Count$CardCounters.P1P1 SVar:Picture:http://www.wizards.com/global/images/magic/general/bloodspore_thrinax.jpg diff --git a/forge-gui/res/cardsfolder/w/whispering_snitch.txt b/forge-gui/res/cardsfolder/w/whispering_snitch.txt index 68021e7e6b1..d14a81ca909 100644 --- a/forge-gui/res/cardsfolder/w/whispering_snitch.txt +++ b/forge-gui/res/cardsfolder/w/whispering_snitch.txt @@ -2,9 +2,8 @@ Name:Whispering Snitch ManaCost:1 B Types:Creature Vampire Rogue PT:1/3 -T:Mode$ Surveil | ValidCard$ You | TriggerZones$ Battlefield | OnlyFirst$ True | Execute$ TrigDamageAll | TriggerDescription$ Whenever you surveil for the first time each turn, CARDNAME deals 1 damage to each opponent and you gain 1 life. +T:Mode$ Surveil | ValidPlayer$ You | TriggerZones$ Battlefield | OnlyFirst$ True | Execute$ TrigDamageAll | TriggerDescription$ Whenever you surveil for the first time each turn, CARDNAME deals 1 damage to each opponent and you gain 1 life. SVar:TrigDamageAll:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ 1 | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 -SVar:X:Count$YouSurveilThisTurn DeckHas:Ability$LifeGain Oracle:Whenever you surveil for the first time each turn, Whispering Snitch deals 1 damage to each opponent and you gain 1 life. From e8d1cbd01d66dd98a1e0814820f1acc46ed035cc Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 2 Oct 2018 22:36:43 +0800 Subject: [PATCH 054/143] - Fixed Jade Monolith --- forge-gui/res/cardsfolder/j/jade_monolith.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/j/jade_monolith.txt b/forge-gui/res/cardsfolder/j/jade_monolith.txt index 2913752b72f..fffbf478596 100644 --- a/forge-gui/res/cardsfolder/j/jade_monolith.txt +++ b/forge-gui/res/cardsfolder/j/jade_monolith.txt @@ -2,7 +2,7 @@ Name:Jade Monolith ManaCost:4 Types:Artifact A:AB$ ChooseSource | Cost$ 1 | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to target creature this turn, that damage is dealt to you instead. -SVar:DBEffect:DB$ Effect | ValidTgts$ Creature | TgtPrompt$ Select target creature to redirect the damage from | ReplacementEffects$ SelflessDamage | Triggers$ OutOfSight | SVars$ SelflessDamage,ExileEffect | References$ SelflessDamage,OutOfSight,SelflessDamage,ExileEffect | Duration$ HostLeavesOrEOT | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem | ConditionCompare$ GE1 +SVar:DBEffect:DB$ Effect | ValidTgts$ Creature | TgtPrompt$ Select target creature to redirect the damage from | ReplacementEffects$ SelflessDamage | Triggers$ OutOfSight | SVars$ SelflessDamage,OutOfSight,SelflessDmg,ExileEffect | Duration$ HostLeavesOrEOT | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem | ConditionCompare$ GE1 SVar:SelflessDamage:Event$ DamageDone | ValidTarget$ Creature.IsRemembered | ValidSource$ Card.ChosenCard,Emblem.ChosenCard | ReplaceWith$ SelflessDmg | Description$ The next time a source of your choice would deal damage to target creature this turn, that damage is dealt to you instead. SVar:SelflessDmg:DB$ ReplaceEffect | VarName$ Affected | VarValue$ You | VarType$ Player | SubAbility$ ExileEffect #Zone Change for the source of your choice From d3d423079bb7e83c8fcafd0ed613f9507ef61354 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Tue, 2 Oct 2018 16:48:29 +0200 Subject: [PATCH 055/143] Fix Spell Blast: Add missing Reference --- forge-gui/res/cardsfolder/s/spell_blast.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/spell_blast.txt b/forge-gui/res/cardsfolder/s/spell_blast.txt index 0e57debbf72..6e768fa0a90 100644 --- a/forge-gui/res/cardsfolder/s/spell_blast.txt +++ b/forge-gui/res/cardsfolder/s/spell_blast.txt @@ -1,7 +1,7 @@ Name:Spell Blast ManaCost:X U Types:Instant -A:SP$Counter | Cost$ X U | TargetType$ Spell | ValidTgts$ Card | SpellDescription$ Counter target spell with converted mana cost X. +A:SP$Counter | Cost$ X U | TargetType$ Spell | ValidTgts$ Card | References$ X | SpellDescription$ Counter target spell with converted mana cost X. SVar:X:Targeted$CardManaCost SVar:Picture:http://www.wizards.com/global/images/magic/general/spell_blast.jpg Oracle:Counter target spell with converted mana cost X. From 3bd69a13c146c61be107b6aa5bd29f3f3400425a Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 3 Oct 2018 21:50:27 +0800 Subject: [PATCH 056/143] - Fixed Apex of Power --- forge-gui/res/cardsfolder/a/apex_of_power.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/a/apex_of_power.txt b/forge-gui/res/cardsfolder/a/apex_of_power.txt index a10faab3ab4..a9580c21af1 100644 --- a/forge-gui/res/cardsfolder/a/apex_of_power.txt +++ b/forge-gui/res/cardsfolder/a/apex_of_power.txt @@ -5,5 +5,5 @@ A:SP$ Mill | Cost$ 7 R R R | Origin$ Library | Destination$ Exile | NumCards$ 7 SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ EffSModeContinuous | SubAbility$ DBCleanup | ForgetOnMoved$ Exile SVar:EffSModeContinuous:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.nonLand+IsRemembered | AffectedZone$ Exile | Description$ You may cast nonland cards exiled this way. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBMana -SVar:DBMana:DB$ Mana | Produced$ Any | Amount$ 10 | ConditionPresent$ Card.wasCastFromHand+Self | ConditionCompare$ EQ1 +SVar:DBMana:DB$ Mana | Produced$ Any | Amount$ 10 | ConditionDefined$ Self | ConditionPresent$ Card.wasCastFromHand | ConditionCompare$ EQ1 Oracle:Exile the top seven cards of your library. Until end of turn, you may cast nonland cards exiled this way.\nIf this spell was cast from your hand, add ten mana of any one color. From 3f6c197af8d874e15328634384fdab60a93ef29b Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 3 Oct 2018 23:41:46 +0800 Subject: [PATCH 057/143] - Added Primordial Mist --- forge-gui/res/cardsfolder/p/primordial_mist.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 forge-gui/res/cardsfolder/p/primordial_mist.txt diff --git a/forge-gui/res/cardsfolder/p/primordial_mist.txt b/forge-gui/res/cardsfolder/p/primordial_mist.txt new file mode 100644 index 00000000000..3f626ac5b1d --- /dev/null +++ b/forge-gui/res/cardsfolder/p/primordial_mist.txt @@ -0,0 +1,9 @@ +Name:Primordial Mist +ManaCost:4 U +Types:Enchantment +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigManifest | OptionalDecider$ You | TriggerDescription$ At the beginning of your end step, you may manifest the top card of your library. +SVar:TrigManifest:DB$ Manifest | Amount$ 1 | Defined$ TopOfLibrary +A:AB$ Effect | Cost$ Exile<1/Permanent.faceDown>| RememberObjects$ ExiledCards | StaticAbilities$ Play | SubAbility$ DBCleanup | ExileOnMoved$ Exile | SpellDescription$ Exile a face-down permanent you control face up: You may play that card this turn. (You still pay its costs. Timing rules still apply.) +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play remembered card. +SVar:RemAIDeck:True +Oracle:At the beginning of your end step, you may manifest the top card of your library. (Put it onto the battlefield face down as a 2/2 creature. Turn it face up any time for its mana cost if it's a creature card.)\nExile a face-down permanent you control face up: You may play that card this turn. (You still pay its costs. Timing rules still apply.) From ece38aed9df5d84512e3fac0d5d87299ff530b3e Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 3 Oct 2018 23:43:32 +0800 Subject: [PATCH 058/143] - Added Treasure Nabber --- .../ability/effects/ControlGainEffect.java | 19 +++++++++++++------ .../game/ability/effects/EffectEffect.java | 7 +++++++ .../java/forge/game/phase/PhaseHandler.java | 2 ++ .../res/cardsfolder/c/commune_with_lava.txt | 10 ++-------- .../res/cardsfolder/t/treasure_nabber.txt | 7 +++++++ 5 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 forge-gui/res/cardsfolder/t/treasure_nabber.txt diff --git a/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java index 556a2157fa1..83ed95b96b8 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ControlGainEffect.java @@ -143,24 +143,31 @@ public class ControlGainEffect extends SpellAbilityEffect { } if (lose != null) { + final GameCommand loseControl = getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws); if (lose.contains("LeavesPlay")) { - sa.getHostCard().addLeavesPlayCommand(getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws)); + sa.getHostCard().addLeavesPlayCommand(loseControl); } if (lose.contains("Untap")) { - sa.getHostCard().addUntapCommand(getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws)); + sa.getHostCard().addUntapCommand(loseControl); } if (lose.contains("LoseControl")) { - sa.getHostCard().addChangeControllerCommand(getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws)); + sa.getHostCard().addChangeControllerCommand(loseControl); } if (lose.contains("EOT")) { - game.getEndOfTurn().addUntil(getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws)); + game.getEndOfTurn().addUntil(loseControl); tgtC.setSVar("SacMe", "6"); } if (lose.contains("StaticCommandCheck")) { String leftVar = sa.getSVar(sa.getParam("StaticCommandCheckSVar")); String rightVar = sa.getParam("StaticCommandSVarCompare"); - sa.getHostCard().addStaticCommandList(new Object[]{leftVar, rightVar, tgtC, - getLoseControlCommand(tgtC, tStamp, bTapOnLose, source, kws)}); + sa.getHostCard().addStaticCommandList(new Object[]{leftVar, rightVar, tgtC, loseControl}); + } + if (lose.contains("UntilTheEndOfYourNextTurn")) { + if (game.getPhaseHandler().isPlayerTurn(sa.getActivatingPlayer())) { + game.getEndOfTurn().registerUntilEnd(sa.getActivatingPlayer(), loseControl); + } else { + game.getEndOfTurn().addUntilEnd(sa.getActivatingPlayer(), loseControl); + } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/EffectEffect.java b/forge-game/src/main/java/forge/game/ability/effects/EffectEffect.java index e6c9e781eb3..bffeb0cda1e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/EffectEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/EffectEffect.java @@ -264,6 +264,13 @@ public class EffectEffect extends SpellAbilityEffect { else if (duration.equals("UntilEndOfCombat")) { game.getEndOfCombat().addUntil(endEffect); } + else if (duration.equals("UntilTheEndOfYourNextTurn")) { + if (game.getPhaseHandler().isPlayerTurn(controller)) { + game.getEndOfTurn().registerUntilEnd(controller, endEffect); + } else { + game.getEndOfTurn().addUntilEnd(controller, endEffect); + } + } else if (duration.equals("ThisTurnAndNextTurn")) { game.getUntap().addAt(new GameCommand() { private static final long serialVersionUID = -5054153666503075717L; diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 3fbde336028..815b3a8c811 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -372,6 +372,8 @@ public class PhaseHandler implements java.io.Serializable { game.getEndOfCombat().executeUntil(); //Repeat here in case Time Stop et. al. ends combat early game.getEndOfTurn().executeUntil(); + game.getEndOfTurn().executeUntilEndOfPhase(playerTurn); + game.getEndOfTurn().registerUntilEndCommand(playerTurn); for (Player player : game.getPlayers()) { player.onCleanupPhase(); diff --git a/forge-gui/res/cardsfolder/c/commune_with_lava.txt b/forge-gui/res/cardsfolder/c/commune_with_lava.txt index 091bc727b13..1e92a30b3f8 100644 --- a/forge-gui/res/cardsfolder/c/commune_with_lava.txt +++ b/forge-gui/res/cardsfolder/c/commune_with_lava.txt @@ -1,16 +1,10 @@ Name:Commune with Lava ManaCost:X R R Types:Instant -A:SP$ Mill | Cost$ X R R | Defined$ You | NumCards$ X | Destination$ Exile | RememberMilled$ True | References$ X | SubAbility$ DBStoreTurn | SpellDescription$ Exile the top X cards of your library. Until the end of your next turn, you may play those cards. -SVar:DBStoreTurn:DB$ StoreSVar | SVar$ CurrentTurn | Type$ Count | Expression$ YourTurns | SubAbility$ DBMayBePlay -SVar:DBMayBePlay:DB$ Effect | StaticAbilities$ STCommuned | Duration$ Permanent | RememberObjects$ Remembered | Triggers$ TrigDuration | SVars$ DBDuration,EndDuration,CurrentTurn | ForgetOnMoved$ Exile -# Even though the Effect is "Permanent", it's not really permanent +A:SP$ Mill | Cost$ X R R | Defined$ You | NumCards$ X | Destination$ Exile | RememberMilled$ True | References$ X | SubAbility$ DBMayBePlay | SpellDescription$ Exile the top X cards of your library. Until the end of your next turn, you may play those cards. +SVar:DBMayBePlay:DB$ Effect | StaticAbilities$ STCommuned | Duration$ UntilTheEndOfYourNextTurn | RememberObjects$ Remembered | ForgetOnMoved$ Exile SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:STCommuned:Mode$ Continuous | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Exile | MayPlay$ True | Description$ Until the end of your next turn, you may play those cards. -SVar:TrigDuration:Mode$ Phase | Phase$ Cleanup | Static$ True | TriggerZones$ Command | Execute$ DBDuration | CheckSVar$ EndDuration | SVarCompare$ GTCurrentTurn -SVar:DBDuration:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -SVar:EndDuration:Count$YourTurns -SVar:CurrentTurn:Number$0 SVar:X:Count$xPaid SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/commune_with_lava.jpg diff --git a/forge-gui/res/cardsfolder/t/treasure_nabber.txt b/forge-gui/res/cardsfolder/t/treasure_nabber.txt new file mode 100644 index 00000000000..68d2bad4a93 --- /dev/null +++ b/forge-gui/res/cardsfolder/t/treasure_nabber.txt @@ -0,0 +1,7 @@ +Name:Treasure Nabber +ManaCost:2 R +Types:Creature Goblin Rogue +PT:3/2 +T:Mode$ TapsForMana | ValidCard$ Artifact.OppCtrl | TriggerZones$ Battlefield | Execute$ TrigControl | TriggerDescription$ Whenever an opponent taps an artifact for mana, gain control of that artifact until the end of your next turn. +SVar:TrigControl:DB$ GainControl | Defined$ TriggeredCard | LoseControl$ UntilTheEndOfYourNextTurn +Oracle:Whenever an opponent taps an artifact for mana, gain control of that artifact until the end of your next turn. From b7d25ec5c8b7fb1e7163b34d2e74cfca3975ad5f Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 4 Oct 2018 11:57:00 +0800 Subject: [PATCH 059/143] - Added Nimbus Champion --- forge-gui/res/cardsfolder/n/nimbus_champion.txt | 12 ++++++++++++ forge-gui/res/cardsfolder/s/sage_eye_avengers.txt | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/n/nimbus_champion.txt diff --git a/forge-gui/res/cardsfolder/n/nimbus_champion.txt b/forge-gui/res/cardsfolder/n/nimbus_champion.txt new file mode 100644 index 00000000000..cb1a1d4771b --- /dev/null +++ b/forge-gui/res/cardsfolder/n/nimbus_champion.txt @@ -0,0 +1,12 @@ +Name:Nimbus Champion +ManaCost:5 U +Types:Creature Avatar Warrior +PT:4/4 +K:Flying +T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigBounce | TriggerDescription$ Whenever CARDNAME attacks, you may return target creature to its owner's hand if that creature's power is less than or equal to the number of Warriors your team controls. +SVar:TrigBounce:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | IsCurse$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | References$ X,Y +SVar:Y:Count$Valid Warrior.YourTeamCtrl +SVar:X:Targeted$Valid Creature.powerLEY +SVar:HasAttackEffect:TRUE +SVar:BuffedBy:Warrior +Oracle:Flying\nWhenever Nimbus Champion attacks, you may return target creature to its owner’s hand if that creature’s power is less than or equal to the number of Warriors your team controls. diff --git a/forge-gui/res/cardsfolder/s/sage_eye_avengers.txt b/forge-gui/res/cardsfolder/s/sage_eye_avengers.txt index fd8fa8dbdfa..856c1cfb880 100644 --- a/forge-gui/res/cardsfolder/s/sage_eye_avengers.txt +++ b/forge-gui/res/cardsfolder/s/sage_eye_avengers.txt @@ -4,7 +4,7 @@ Types:Creature Djinn Monk PT:4/5 K:Prowess T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigBounce | TriggerDescription$ Whenever CARDNAME attacks, you may return target creature to its owner's hand if its power is less than Sage-Eye Avengers's power. -SVar:TrigBounce:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | Curse$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | References$ X,Y +SVar:TrigBounce:DB$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | IsCurse$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | References$ X,Y SVar:Y:Count$CardPower SVar:X:Targeted$Valid Creature.powerLTY SVar:HasAttackEffect:TRUE From c77f9fe3ce594bf3750f8733560525d4baadc864 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 4 Oct 2018 14:26:25 +0800 Subject: [PATCH 060/143] - Added Discovery // Dispersal --- .../java/forge/game/card/CardProperty.java | 7 ++++++- .../res/cardsfolder/d/discovery_dispersal.txt | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/d/discovery_dispersal.txt 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 dcd3c6d0658..4a480acb239 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1280,7 +1280,12 @@ public class CardProperty { FCollectionView p = AbilityUtils.getDefinedPlayers(source, property.split("ControlledBy")[1], null); cards = CardLists.filterControlledBy(cards, p); } - cards = CardLists.getType(cards, prop); + + if ("NonLandPermanent".equals(prop)) { + cards = CardLists.filter(cards, CardPredicates.Presets.NONLAND_PERMANENTS); + } else { + cards = CardLists.getType(cards, prop); + } cards = CardLists.getCardsWithHighestCMC(cards); if (!cards.contains(card)) { return false; diff --git a/forge-gui/res/cardsfolder/d/discovery_dispersal.txt b/forge-gui/res/cardsfolder/d/discovery_dispersal.txt new file mode 100644 index 00000000000..43176fc47dd --- /dev/null +++ b/forge-gui/res/cardsfolder/d/discovery_dispersal.txt @@ -0,0 +1,19 @@ +Name:Discovery +ManaCost:1 U/B +Types:Sorcery +AlternateMode:Split +A:SP$ Surveil | Cost$ 1 U/B | Amount$ 2 | SubAbility$ DBDraw | SpellDescription$ Surveil 2, then draw a card. +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 +Oracle:Surveil 2, then draw a card. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) + +ALTERNATE + +Name:Dispersal +ManaCost:3 U B +Types:Instant +A:SP$ RepeatEach | Cost$ 3 U B | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TrigChooseReturn | SubAbility$ DBReturn | SpellDescription$ Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner's hand, then discards a card. +SVar:TrigChooseReturn:DB$ ChooseCard | Defined$ Remembered | Choices$ Permanent.greatestCMC_NonLandPermanentControlledByRemembered | ChoiceTitle$ Chhose a nonland permanent with the highest converted mana cost | Mandatory$ True | RememberChosen$ True +SVar:DBReturn:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Remembered | SubAbility$ DBDiscard +SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Each opponent returns a nonland permanent they control with the highest converted mana cost among permanents they control to its owner's hand, then discards a card. From 12af09d255791718edec5399f9ba6ab30af80081 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 4 Oct 2018 14:27:06 +0800 Subject: [PATCH 061/143] - Added Vraska, Golgari Queen --- .../res/cardsfolder/v/vraska_golgari_queen.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 forge-gui/res/cardsfolder/v/vraska_golgari_queen.txt diff --git a/forge-gui/res/cardsfolder/v/vraska_golgari_queen.txt b/forge-gui/res/cardsfolder/v/vraska_golgari_queen.txt new file mode 100644 index 00000000000..2b56a3f83b2 --- /dev/null +++ b/forge-gui/res/cardsfolder/v/vraska_golgari_queen.txt @@ -0,0 +1,13 @@ +Name:Vraska, Golgari Queen +ManaCost:2 B G +Types:Legendary Planeswalker Vraska +Loyalty:4 +A:AB$ Sacrifice | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | SacValid$ Permanent.Other | SacMessage$ another permanent | Optional$ True | RememberSacrificed$ True | SubAbility$ DBGainLife | SpellDescription$ You may sacrifice another permanent. If you do, you gain 1 life and draw a card. +SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 | SubAbility$ DBDraw | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 +SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ Destroy | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand+cmcLE3 | TgtPrompt$ Select target nonland permanent with converted mana cost 3 or less | SpellDescription$ Destroy target nonland permanent with converted mana cost 3 or less. +A:AB$ Effect | Cost$ SubCounter<9/LOYALTY> | Planeswalker$ True | Ultimate$ True | Stackable$ False | Name$ Emblem - Vraska, Golgari Queen | Image$ emblem_vraska_golgari_queen | Triggers$ TrigDamage | SVars$ LoseGame | References$ TrigDamage,LoseGame | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever a creature you control deals combat damage to a player, that player loses the game." +SVar:TrigDamage:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ LoseGame | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control deals combat damage to a player, that player loses the game. +SVar:LoseGame:DB$ LosesGame | Defined$ TriggeredTarget +Oracle:[+2]: You may sacrifice another permanent. If you do, you gain 1 life and draw a card.\n[-3]: Destroy target nonland permanent with converted mana cost 3 or less.\n[-9]: You get an emblem with "Whenever a creature you control deals combat damage to a player, that player loses the game." From 72b9b7d5f4c66cf54449d70fe6198f94719065f3 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 4 Oct 2018 14:08:09 +0200 Subject: [PATCH 062/143] Circu: functional update --- forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt b/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt index e9f0876ed71..9e7a6622855 100644 --- a/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt +++ b/forge-gui/res/cardsfolder/c/circu_dimir_lobotomist.txt @@ -2,15 +2,13 @@ Name:Circu, Dimir Lobotomist ManaCost:2 U B Types:Legendary Creature Human Wizard PT:2/3 -T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLibraryChoice | TriggerDescription$ Whenever you cast a blue spell, exile the top card of target library. -T:Mode$ SpellCast | ValidCard$ Card.Black | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLibraryChoice | TriggerDescription$ Whenever you cast a black spell, exile the top card of target library. -SVar:TrigLibraryChoice:DB$ ChoosePlayer | Defined$ You | AILogic$ Curse | SubAbility$ ExileTop | ChoiceTitle$ Choose target library -SVar:ExileTop:DB$ Mill | NumCards$ 1 | Defined$ ChosenPlayer | Destination$ Exile | RememberMilled$ True | StackDescription$ None | SubAbility$ DBCleanupChosen -SVar:DBCleanupChosen:DB$ Cleanup | ClearChosenPlayer$ True +T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ ExileTop | TriggerDescription$ Whenever you cast a blue spell, exile the top card of target player’s library. +T:Mode$ SpellCast | ValidCard$ Card.Black | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ ExileTop | TriggerDescription$ Whenever you cast a black spell, exile the top card of target player’s library. +SVar:ExileTop:DB$ Mill | NumCards$ 1 | ValidTgts$ Player | TgtPrompt$ Choose a player | Destination$ Exile | RememberMilled$ True S:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith Remembered.ExiledWithSource | Caster$ Opponent | Description$ Your opponents can't cast spells with the same name as a card exiled with CARDNAME. T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered+ExiledWithSource | Execute$ DBForget SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/circu_dimir_lobotomist.jpg -Oracle:Whenever you cast a blue spell, exile the top card of target library.\nWhenever you cast a black spell, exile the top card of target library.\nYour opponents can't cast spells with the same name as a card exiled with Circu, Dimir Lobotomist. +Oracle:Whenever you cast a blue spell, exile the top card of target player’s library.\nWhenever you cast a black spell, exile the top card of target player’s library.\nYour opponents can't cast spells with the same name as a card exiled with Circu, Dimir Lobotomist. From 5aa25c55edb0ec273c6832a1b5f4cab6c4339c14 Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 4 Oct 2018 17:39:55 +0300 Subject: [PATCH 063/143] - Added puzzle PS_GRN0a. --- forge-gui/res/puzzle/PS_GRN0a.pzl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 forge-gui/res/puzzle/PS_GRN0a.pzl diff --git a/forge-gui/res/puzzle/PS_GRN0a.pzl b/forge-gui/res/puzzle/PS_GRN0a.pzl new file mode 100644 index 00000000000..a2c9488a30c --- /dev/null +++ b/forge-gui/res/puzzle/PS_GRN0a.pzl @@ -0,0 +1,17 @@ +[metadata] +Name:Possibility Storm - Guilds of Ravnica #00a (Pre-Season Puzzle #2) +URL:https://i2.wp.com/www.possibilitystorm.com/wp-content/uploads/2018/09/082.-GRN002.jpg +Goal:Win +Turns:1 +Difficulty:Uncommon +Description:Win this turn. +[state] +humanlife=20 +ailife=9 +turn=1 +activeplayer=human +activephase=MAIN1 +humanhand=Impervious Greatwurm;Rhizome Lurcher;Ochran Assassin;Lava Coil +humangraveyard=Devkarin Dissident;Underrealm Lich;Golgari Findbroker;Erstwhile Trooper;Bone Dragon +humanbattlefield=Whisper Agent;Whisper, Blood Liturgist;Torch Courier;Dragonskull Summit;Dragonskull Summit;Dragonskull Summit;Woodland Cemetery;Woodland Cemetery;Woodland Cemetery;Woodland Cemetery +aibattlefield=Flight of Equenauts;Sunhome Stalwart;Wall of Mist;Hitchclaw Recluse From 4b34d5489f9dac648ef2045ee31db8ddeb34cafb Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 4 Oct 2018 18:05:39 +0300 Subject: [PATCH 064/143] - Added GRN quest mode precons. - Added GRN planeswalker and alt wincon achievements (by Marek14, with minor changes to fit the overall naming style). --- forge-gui/res/lists/altwin-achievements.txt | 3 ++ .../res/lists/planeswalker-achievements.txt | 6 +++- .../quest/precons/Ral, Caller of Storms.dck | 36 +++++++++++++++++++ .../quest/precons/Vraska, Regal Gorgon.dck | 34 ++++++++++++++++++ 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/quest/precons/Ral, Caller of Storms.dck create mode 100644 forge-gui/res/quest/precons/Vraska, Regal Gorgon.dck diff --git a/forge-gui/res/lists/altwin-achievements.txt b/forge-gui/res/lists/altwin-achievements.txt index 0abdb1cc437..901042fb4f6 100644 --- a/forge-gui/res/lists/altwin-achievements.txt +++ b/forge-gui/res/lists/altwin-achievements.txt @@ -4,10 +4,12 @@ Barren Glory|The Clean Slate|When you have nothing, you can lose nothing... so y Battle of Wits|The Great Library|So many answers, so little time to look through them... Biovisionary|The Clique|And now my... I mean our plan is complete! Chance Encounter|The Accident|This victory was brought to you by a series of fortunate events. +Chance for Glory|The Big-Time|Sorry, you used it up. Coalition Victory|The Teamwork|Let's all be friends! Darksteel Reactor|The Machine|What are you going to do with all this power? Whatever you want! Door to Nothingness|The Door|And behind door #2 is... Epic Struggle|The Army|Let's just trample them into the ground already! +Etrata, the Silencer|The Silent Hit|Hey, where did everybody go? Felidar Sovereign|The Cat's Life|Just wait for his other eight lives! Hedron Alignment|The Alignment|The hedrons are right! Helix Pinnacle|The Tower|The view from the top is great! @@ -24,3 +26,4 @@ Phage the Untouchable|The Untouchable|None are immune to her deadly touch! Revel in Riches|The Dead Man's Chest|Yo-ho-ho, and a bottle of rum! Test of Endurance|The Test|So... did I pass? Triskaidekaphobia|The Fear of 13|It's just a silly ancient superstition... right? +Vraska, Golgari Queen|The Flurry of Assassins|How good is your dodging? diff --git a/forge-gui/res/lists/planeswalker-achievements.txt b/forge-gui/res/lists/planeswalker-achievements.txt index c569542f319..dfe01f8c832 100644 --- a/forge-gui/res/lists/planeswalker-achievements.txt +++ b/forge-gui/res/lists/planeswalker-achievements.txt @@ -88,6 +88,8 @@ Nissa, Worldwaker|Nissa's Awakening|The whole country is here! Ob Nixilis of the Black Oath|Nixilis's Black Oath|We all have to bring sacrifices sometimes. Ob Nixilis Reignited|Ob Nixilis's Torment|I'll give you dreams from beyond the underworld! Ral Zarek|Ral's Long Day|So much work, so much time! +Ral, Caller of Storms|Ral's Invocation|The storm called and left a message. +Ral, Izzet Viceroy|Ral's Bonus|I was just researching lightning and then it hit me. Saheeli Rai|Saheeli's Creativity|I love when all the pieces come together! Saheeli, the Gifted|Saheeli's Doubling Season|Polished to mirror sheen. Samut, the Tested|Samut's Rapid Deployment|My friends will be here in a flash. @@ -117,9 +119,11 @@ Ugin, the Spirit Dragon|Ugin's Anti-Ultimatum|A ragtag band of misfits, brought Venser, the Sojourner|Venser's Oblivion|Let's just clean this up a bit... Vivien of the Arkbow|Vivien's Overrun|No, never heard of a 'Garruk' -- why do you ask? Vivien Reid|Vivien's Utter Pandemonium|They're so cute when they're stampeding. -Vraska, Scheming Gorgon|Vraska's Stone Gaze|I think we could use a new figurehead! Vraska the Unseen|Vraska's Crew|Say hello to my little friends! +Vraska, Golgari Queen|Vraska's Training Regime|Step one - give them a scratch. There's no step two. +Vraska, Regal Gorgon|Vraska's Scavenger Hunt|Death is not the opposite of life - it's its complement. Vraska, Relic Seeker|Vraska's Mark|Never play hide and seek with a Gorgon. +Vraska, Scheming Gorgon|Vraska's Stone Gaze|I think we could use a new figurehead! Xenagos, the Reveler|Xenagos's Reveal|Mwahahaha! Now I'm a god! Jiang Yanggu|Yanggu's Giant Growth|Now, Mowu! Fetch that tree! Mu Yanling|Yanling's Time Manipulation|Sleep now, for three days and three nights. diff --git a/forge-gui/res/quest/precons/Ral, Caller of Storms.dck b/forge-gui/res/quest/precons/Ral, Caller of Storms.dck new file mode 100644 index 00000000000..3c5f8e6dc44 --- /dev/null +++ b/forge-gui/res/quest/precons/Ral, Caller of Storms.dck @@ -0,0 +1,36 @@ +[shop] +WinsToUnlock=0 +Credits=1200 +MinDifficulty=0 +MaxDifficulty=5 +[metadata] +Name=Ral, Caller of Storms +Description=U/R Guilds of Ravnica planeswalker deck with Ral, Caller of Storms. +Deck Type=constructed +Set=GRN +Image=ral_caller_of_storms.jpg +[Main] +1 Chemister's Insight|GRN +2 Command the Storm|GRN +1 Direct Current|GRN +1 Erratic Cyclops|GRN +3 Fearless Halberdier|GRN +2 Fire Urchin|GRN +2 Goblin Electromancer|GRN +2 Hellkite Whelp|GRN +10 Island|GRN +4 Izzet Guildgate|GRN +1 Leapfrog|GRN +1 Maximize Altitude|GRN +12 Mountain|GRN +1 Muse Drake|GRN +1 Omnispell Adept|GRN +1 Passwall Adept|GRN +4 Precision Bolt|GRN +2 Ral's Dispersal|GRN +3 Ral's Staticaster|GRN +1 Ral, Caller of Storms+|GRN +1 Rubblebelt Boar|GRN +1 Sonic Assault|GRN +1 Vedalken Mesmerist|GRN +2 Wee Dragonauts|GRN diff --git a/forge-gui/res/quest/precons/Vraska, Regal Gorgon.dck b/forge-gui/res/quest/precons/Vraska, Regal Gorgon.dck new file mode 100644 index 00000000000..58bfc941bcd --- /dev/null +++ b/forge-gui/res/quest/precons/Vraska, Regal Gorgon.dck @@ -0,0 +1,34 @@ +[shop] +WinsToUnlock=0 +Credits=1200 +MinDifficulty=0 +MaxDifficulty=5 +[metadata] +Name=Vraska, Regal Gorgon +Description=B/G Guilds of Ravnica planeswalker deck with Vraska, Regal Gorgon. +Deck Type=constructed +Set=GRN +Image=vraska_regal_gorgon.jpg +[Main] +3 Attendant of Vraska|GRN +2 Bartizan Bats|GRN +1 Beast Whisperer|GRN +1 Bounty of Might|GRN +3 Dead Weight|GRN +1 Devkarin Dissident|GRN +1 Douser of Lights|GRN +10 Forest|GRN +2 Glowspore Shaman|GRN +4 Golgari Guildgate|GRN +2 Ironshell Beetle|GRN +1 Kraul Foragers|GRN +4 Kraul Raider|GRN +1 Lotleth Giant|GRN +2 Prey Upon|GRN +2 Rhizome Lurcher|GRN +3 Spinal Centipede|GRN +12 Swamp|GRN +1 Swarm Guildmage|GRN +2 Vraska's Stoneglare|GRN +1 Vraska, Regal Gorgon+|GRN +1 Wild Ceratok|GRN From 56ed75a2448ecbddd6ae8104a5411674443d1853 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 4 Oct 2018 23:09:46 +0800 Subject: [PATCH 065/143] - Fixed Arclight Phoenix --- forge-gui/res/cardsfolder/a/arclight_phoenix.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt index b0a5aba865d..bf2ecdb49bc 100644 --- a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt +++ b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt @@ -4,7 +4,7 @@ Types:Creature Phoenix PT:3/2 K:Flying K:Haste -T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE3 | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, if you cast 3 or more instand and/or game this turn, you may return CARDNAME to the battlefield. -SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Battlefield -SVar:X:Count$ThisTurnCast_Card.Instant.YouCtrl+Sorcery.YouCtrl -Oracle:Flying, Haste\nAt the beginning of combat on your turn, if you cast 3 or more instants and/or sorceries this turn, you may return Arclight Phoenix to the battlefield. +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Graveyard | CheckSVar$ X | SVarCompare$ GE3 | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, if you cast 3 or more instand and/or game this turn, you may return CARDNAME from your graveyard to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield +SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl +Oracle:Flying, Haste\nAt the beginning of combat on your turn, if you’ve cast three or more instant and sorcery spells this turn, you may return Arclight Phoenix from your graveyard to the battlefield. From f793419a05cb0e887f920167d4329b21aeb354d3 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 4 Oct 2018 23:16:23 +0800 Subject: [PATCH 066/143] - Arclight Phoenix's TriggerDescription --- forge-gui/res/cardsfolder/a/arclight_phoenix.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt index bf2ecdb49bc..f5ea5df6ed9 100644 --- a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt +++ b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt @@ -4,7 +4,7 @@ Types:Creature Phoenix PT:3/2 K:Flying K:Haste -T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Graveyard | CheckSVar$ X | SVarCompare$ GE3 | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, if you cast 3 or more instand and/or game this turn, you may return CARDNAME from your graveyard to the battlefield. +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Graveyard | CheckSVar$ X | SVarCompare$ GE3 | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, if you've cast three or more instant and sorcery spells this turn, you may return CARDNAME from your graveyard to the battlefield. SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl -Oracle:Flying, Haste\nAt the beginning of combat on your turn, if you’ve cast three or more instant and sorcery spells this turn, you may return Arclight Phoenix from your graveyard to the battlefield. +Oracle:Flying, Haste\nAt the beginning of combat on your turn, if you've cast three or more instant and sorcery spells this turn, you may return Arclight Phoenix from your graveyard to the battlefield. From 39d2e62cc0ee9fef4bcecde0a9c4e714e3132566 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 4 Oct 2018 17:18:04 +0100 Subject: [PATCH 067/143] Added Mission Briefing from fsecco on the forum. Updated to use Surveil rather than dig. --- forge-gui/res/cardsfolder/m/mission_briefing.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 forge-gui/res/cardsfolder/m/mission_briefing.txt diff --git a/forge-gui/res/cardsfolder/m/mission_briefing.txt b/forge-gui/res/cardsfolder/m/mission_briefing.txt new file mode 100644 index 00000000000..8c0d5ca1156 --- /dev/null +++ b/forge-gui/res/cardsfolder/m/mission_briefing.txt @@ -0,0 +1,13 @@ +Name:Mission Briefing +ManaCost:U U +Types:Instant +A:SP$ Surveil | Cost$ U U | Amount$ 2 | SubAbility$ DBChooseCard | SpellDescription$ Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. +SVar:DBChooseCard:DB$ ChooseCard | Choices$ Instant.YouCtrl,Sorcery.YouCtrl | ChoiceZone$ Graveyard | AILogic$ CastFromGraveThisTurn | Mandatory$ True | RememberChosen$ True | SubAbility$ DBEffect | SpellDescription$ You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. +SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | SubAbility$ DBCleanup | ExileOnMoved$ Stack | ReplacementEffects$ ReplaceGraveyard | SVars$ MoveExile +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Graveyard | Description$ You may play remembered card. +SVar:ReplaceGraveyard:Event$ Moved | ValidCard$ Card.IsRemembered | Origin$ Stack | Destination$ Graveyard | ReplaceWith$ MoveExile | Description$ If that card would be put into your graveyard this turn, exile it instead. +SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Exile +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/mission_briefing.jpg +Oracle:Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. \ No newline at end of file From 2266824fc5b8fa4a1c5a595455d7b5e1c0b04699 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 4 Oct 2018 21:33:02 +0100 Subject: [PATCH 068/143] More GRN data for deck generation (cherry picked from commit 26468ac) --- forge-gui/res/deckgendecks/Standard.lda.dat | Bin 56030 -> 84096 bytes forge-gui/res/deckgendecks/Standard.raw.dat | Bin 60827 -> 81651 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index 0df128daf319bfb6b5082c48e28de10fe500b464..9f7b2b802ece4b5fe17bc711884e011036ea9923 100644 GIT binary patch literal 84096 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 literal 56030 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 Bnoa-! diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat index a9a3fa32a922aeac3ebc88462382a9c91c1b12b7..2e231db123ee18ad06a5b32307446faa000df7da 100644 GIT binary patch literal 81651 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 UUjh14a+P?pJ=8_ICG<}Ce~|39)&Kwi literal 60827 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�pY6Ac4Enk>sY4N~ns^qTTHg0IJfbPD-WkSOC}sMc`~~ z4b5$UkASnpf`~sQNX^{>z%HQtbt*?mC0LYBWWDHQbs6ZY;l*p&$3?xP+!00$w!(tU%(S3$!$}D+YEk~6_gl|A#Ww3lGEYWdSALjN%15R zhy(w^3(iXCTfOC?2m9atB=3b1E5rp%5pTs~T#C)DT5@#!p&LI@18S8nM!IrZbFV=i zxZI?XwyF?-75?sDzj=l;6O6P&u?tyeuDWuTSyNJrLhs;C0(aT4yJ}9}&wmjSb+vEF zRmZ>jd8`Ou<8!m{s10}C;G&T^y2XyWw@>abT%PPmQ#CS3DHgmIoy>jawjr5$Z?a#k zlkEa9d;KG?mHyM21JFr!y}JU>`civdrG{3ilAxK>;*_2F2|h0 zdmP}daJ$ojL#r-bQj@R0bYcI!T(_W=Qr27ZPjAm3bDpU*s4KG;0JM}0ztQOFlY#OX zjzYYDDn2o|fBM|Xb9v01j4WO_lrm{hVVDe&2zc`JsKXWxk3Jwb0-z1=)9%zpfE#n9 zAY%kM=HopR{MXFh^b0q?FiHdrS=HamSPHf1z=DIG+vS7^^8*>(Go|7oohKHfMSKkvoiZ1}X+ z333iC0N64)euITgsS;K_a%WAqtpyV#RQiSm021^<5lcA6sq;c_FavNFOpu7bLd>TQ zP*;d808F%bF%gfyq3DljZ+vo5n>RO@j94;0W|^uZrDNfViU9L0AU_ZOf^f7jNcBpR z*1UbbugQn#q9dQqc?OA?^XIrHTDgE-eXt=T1Mdsa43y@~a5pI+) zz=q>8D57Y*58QzXG^0#p*e*b&t#qsDj6-Cq^} z*aEwQ!*t4YUK}p`mk}O+!5NVqNF&90E%ayv?FE72$NrAH>U4MZ3nx3NupWUK7HA?y zFSm>Z3(b}4sRPO}fNoJrb6`t(yTFDueC2?RJbEMx@#hLN@cdAPp;QA4CUu!2M!$L4rCZ)! zYU%dR$ zx?LBj*6QBtszHAbh+E68b+m4uPLn1bX-H~Agh%e96??8-9hhgT(&~56HULUF{tXK763kfsBa?PR{Y5_OVzw;k zn63Dw0_WdkX+31>&jN*NkiN zWSoaEoay(y(Pc+WfAy)cheY>NY6iS}_owG8fKn$~jA1<i|`Q z#{vLP6lnrldY^^`eHw=zUx8>{1@viCTxf_?KagsKJ*Pj3FKu#8x9O_HZr_jAH zXcs8MK+1+7V!;IwRqaLxs2gHBKzWmNfVvE(0}?oAusd}?d|bFukyZ>BjE^enl_0~z zjCWevlgXsYr)8oNiU)peqy-@^C3&6&A0Ml7W^{nM>#YM4B&o556NmosqVU3D<5Ri@ z2|Myjg$BJXc+}+x@rf1y&M&-Lpa9h_1E1&+4}O_$OA9*a#LGFf0I<1-8Yl}uBD(~+ zpK7mIu+UuHN!9^z--a6>TBrgidW+WFxnXx&0K_?ws>`*=e50|P1i2Eh7E} z_~85#!)5za`7$Ntbd_W0sfpe4!IIJYlJAj-@hq7G&#RcF**AXh#!IzPdn88kkRTKl z=G{bcjVT{DoL9L0KzHHDp-=gUwZL;ogz%!QRSIikOW$Z;OzUGsR9f`yqXs5^WJ~p zd}m1KgCmYfvdGneGg3b8c^Np55)0FP9SB!qc7*$@**B566Z)rA%g})Y( zrrvw=4fpXD*efM21F?UkyI39q(Xcw3S>rqpgRZI}o+}qcLr;NKj4VCz1RU{y(RtmW zzR5=d@A1xQxEF^5U{#qm%U6~^au^N|1XK~zb12^&p+&6p_F7s%31NBHV*W+j%F9N@ zT+lRu{bIVER1GWuXrW|J;FEKpOQ_rl4M%KLrZ00r6rq!-9|d6e`RtUb-s6Ub1CY{& zN~bJiDFdEZmFA;2Z__J$^HeHHz_eO2-|6iOxvDw^rM2h)+x~E*u{w@;1y21YBUzDF1?nZm?JA3-vrNPQ%(QNG|%Rtn=X1wh9pY zbOeC%voGv&$9WhBZ-Enu*fgRtH4av2T{NDz@3EzQjtQR?x{JC@0Op`CqwU?iF##m= z&;jvBMT_YzFZ}%ST|$;(ZHp->lszeG`oKU4p_Zv>7u5c7V6mdD?v&~PRd`Sbw5=DN zPAWV7!kGVXV~gexNeqPR20?zE7?w4;JHkL_t?5-oVNQ@#|GhhP5q-1@qm>=)Y*Z$$t^ z`62+K=S2V{axDa}LTP=(yc3~?iaP2o)b(l|pu*icK-FQ_0c}5z(77@|L<@d0D8~^z ztV^}egQv3GuykNX_~`OhgTpnU(ZzKElVhKA5nD3m2eKEQPWX!J%OIE*QWjKuf_nQi z+fqu8bMqdUbe)JCCKY4*N=q_pnTq$%1mg19$KCaX)e^B| z2qMyoY7rd`v6nRDZs%(FnLbMDHWRIv*}j?o*Z`*_A5S?Os0zelhxl}G)%ma8bNNH> z@U#^A1eJ5I1C$Sa&Qni$ox6UJG~4IkW-nfV=GPyrU#Fp_silDH0MS?!p_GSX=ALgJ zeq+W4PLxI_l}if%iwf^(Wdkc63kqhY>fJr=Y5chQFF7bwsWsqgCU+UCSdrI6I{u2S9&Yj*u)wR?CDrrOqD8Z}))ay*m?Y_1B-HGc~bP#Cd zwXjd2a!QY=7^a4qTm&agfZR2i!9Ylv9}5~jQ`Pg(0V-F~0)TG7u2torN+<%TQnqS1 z!*G`7d$3it!UEV=Mqz7tjTf@2x*&YQds;NDv)b z0L;FGMdEEXkS$nItKPJ7Z_n$|^4(3W4R%FG>uC%I0(g-YJeLUDofc&LNxe#G0l=G^ zURg(uJy_z@6?t^c>QEM35NXR9zD6BG3B5dXj;~Rt67_q8F}BK$0I=$=>M9)PPw=X#*4u+1(YsZ)|(ZDEhK3M3nL67mV2-4&e12LCj^%N#L#Ga*tq1= z0Q$&FG+L40WexoEDm}1;_3}9XOa{MhYmXGC3^80rV`f%#0<_3FdXvtLsRDe zYhc7o9c~n}x<|3Uf){nk!o|BljR9|ge6xtkwVGwXcjU%hoOAgai637A21z$4&6+OT zj@+1ZVA4|@1H(+@=AYfU?xB@?V}Ht00F|Ju17a^^IC$gf=TF=BIm`J!)77K_r2`U{ zh!!g!{e9jS>-YpS#x6Ot4v3L5LI<=y8-bL4as+@X z7qU1@Ab<+f>j0I8bdP<|(syV6j}I4;g%Ydlp`g;n*1Mg*xMgbg2YkV>e>x9oL^Te) zNz7_4QG*;*rShvcq~~^c(0iaSR}^V5G2CuPQMc6}jqN^-vrYo2%<>r*&}e4K!JNk* z-hr=}UX*b8nbVPWD-~K2lczOl58pIYZ1|n>e5fUlr|HZ~ca!r!&inj-OF4CPt1{hn zfNiTFZUNwhuTo^9Q8p%0jNoNsm-?(_T$+auyyWn5c7O!{H86wnqUah!h||`B zgUL`;i7WuHWEQJNGC5U67Sp1kpgt&bUSgyao~0DpK!{aj!A4KXa&~oqy7J+Dz0Llp z?|60q+c*P6$2uTZvP&JHN{#A(q;U~Q+2bPsR2ry-RKOOK6)YD`DnB|>^Xx5y*e@Dy z;*bb{Sk8;#-q2dabr079OGkI3jS6UbAyuo-X?!ev<3v`&h%U`nxa*a-+|n8aC2-)) z2X-t#d`aws;Yb4zBWGT3pQ&NSf$vJQ{3XP`i^6tMIr`EeE`v{vSc z4p7CjEdVHVsQc_~sPk3(QTc_KMo9f64b^U{Kc?bn!NCB`Ad7YQP(0BKS@4MPvCtfl zVVmgfRb);Fw4D@gp78+`D`R!}iIMTNj7YQ7W>0t;@uhCOHUddANbyTc_hg0zr~)7& znn;ob+Y3jBKBy=HAbCmzfa&$K&R2)*iIlN{d-xU25Ss`F{vX}8+ZT>H{F|XAmRTj+ zaCjJZ^u|blZ4m(KO+3p)fmGBZ;aY&_Wctd>sjNN1nW`$Er7>oCgm1hH&l&kDn?qk& z6Ic`oN`3+>K9OlMj&e%ucTB{!T=|rhsgvHsbW&j-qn&zUVt>l=Wjo*GvVsYLQ)0Le z4?Xb1kq>*aU*HBPVF+6onJ&%cL1`py`MBRY@9gaor9-wC;k62UQVEq1fISr=Z#Rz& z6zyHZ_Z#)2?!s(LdgqR`N0sHC2=9c8xvVnr=8H!RX6-$m55C{NfcJ#fs>HymX+LC6 zIJ!;&T1j(52iP2fln#iJQe=6f@4=sc?Ir1rn`xLh;}ViCbB1Z_kPQ7eg}*l6K_ih>wC zLoPp>oQX+JG@^}#0ZH1lR#rCF=~5UFv5A352-rj-YLkEpezQ9}?`GfIGJHEfw|Tqs zv$M0mY()$v6&VR{nX`?{i<>p~(dv*2L(l^n!<0w-kfQxAW z7D*KuV-)M7N;ZD4S`i}`S{*=x1zWw`>UybR(5kbXCIdizEdUh0qyd=kZrgk=-fmjr`^f*}N(OR;j#J;~+BQ&MbYP;9@fcAQ?kNk+vIzsql>(V0Z(&aOI~T z4<1psqZ&H2r6~#pWOrBO0J3gg6=0TGV+b$vpvD?Zg%ThN} z_`t3!0U&bzuTLRQJ^Fxz!U{ls+tz@PF}^T{eusT{wml$J((sA}{l|_3DC8Pwf?_E^ zA?IQV3TMz6h%+a-@l4O4X~#@$_i%(halhYmFoB_{kx?`jVpp>$3dp z(Cv|hc=wCGGVprk&ho#z8|E*fkm}r5zcbU*@2vm=q{z<)q;>ks%Gnz`Zw^~luzJ@Y zG!PZSLyd1NycmCadUF1w8-lAYTzuzZde%yfgYe>+03iE>Pa)6g`arSHtey-tk8id8 zvAWPNuLOX-KLbGITqU1XpqV> z`hXd96=@Ju!Mjgd4aDz}i_;1q4yfEkPaSOg*sQ2onG2e0>)&sEnz6wNM8P=JM<*M| z-;)uE(~N2u1m)*=etaO;9sshl0U-Jt0Cu}Ym5^Z<3*yyQ<>`|-7hoj@+NY2^;yxhV z0~A0mG2O31{uU{P-jNB^xCBJX3rdOsl$4Vi2I7^U#r&HUj$$(Gy@Mzq8lL(OceNJ* From ede5da10a169e0a81ed6b317548dd424f8f65541 Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 5 Oct 2018 11:05:42 +0800 Subject: [PATCH 069/143] - Fixed Find // Finality --- forge-gui/res/cardsfolder/f/find_finality.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/f/find_finality.txt b/forge-gui/res/cardsfolder/f/find_finality.txt index 6f83eb90afa..28a07e6d50f 100644 --- a/forge-gui/res/cardsfolder/f/find_finality.txt +++ b/forge-gui/res/cardsfolder/f/find_finality.txt @@ -10,6 +10,8 @@ ALTERNATE Name:Finality ManaCost:4 B G Types:Sorcery -A:SP$ ChooseCard | Cost$ 4 B G | Defined$ You | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.YouCtrl | CounterNum$ 2 | CounterType$ P1P1 | SubAbility$ DBPumpAll | SpellDescription$ You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. -SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -4 | NumDef$ -4 | IsCurse$ True +A:SP$ ChooseCard | Cost$ 4 B G | Defined$ You | Amount$ 1 | MinAmount$ 0 | Choices$ Creature.YouCtrl | SubAbility$ DBPutCounter | SpellDescription$ You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. +SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBPumpAll +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -4 | NumDef$ -4 | IsCurse$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True Oracle:You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. From 85a5fe380db38dc7f44aa8ad5d49ebf56bba55e3 Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 5 Oct 2018 14:10:21 +0800 Subject: [PATCH 070/143] - Fixed Commander tax --- forge-game/src/main/java/forge/game/zone/MagicStack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 00c3536e15e..07b6a67caae 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -366,7 +366,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable Date: Fri, 5 Oct 2018 14:13:20 +0800 Subject: [PATCH 071/143] - Added Mnemonic Betrayal --- .../main/java/forge/game/trigger/Trigger.java | 18 +++++++++++++++++- .../res/cardsfolder/m/mnemonic_betrayal.txt | 10 ++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/m/mnemonic_betrayal.txt diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index a3dd3f3fa93..fd97b6d6f9f 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -37,6 +37,7 @@ import java.util.*; import com.google.common.collect.Lists; import com.google.common.collect.Maps; + import forge.util.TextUtil; /** @@ -334,7 +335,22 @@ public abstract class Trigger extends TriggerReplacementBase { return false; } } - + + if (this.mapParams.containsKey("TriggerRememberedInZone")) { + // check delayed trigger remembered objects (Mnemonic Betrayal) + // make this check more general if possible + boolean bFlag = true; + for (Object o : getTriggerRemembered()) { + if (o instanceof Card && ((Card) o).isInZone(ZoneType.smartValueOf(this.mapParams.get("TriggerRememberedInZone")))) { + bFlag = false; + break; + } + } + if (bFlag) { + return false; + } + } + if ( !meetsCommonRequirements(this.mapParams)) return false; diff --git a/forge-gui/res/cardsfolder/m/mnemonic_betrayal.txt b/forge-gui/res/cardsfolder/m/mnemonic_betrayal.txt new file mode 100644 index 00000000000..13104cb13b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/m/mnemonic_betrayal.txt @@ -0,0 +1,10 @@ +Name:Mnemonic Betrayal +ManaCost:1 U B +Types:Sorcery +A:SP$ ChangeZoneAll | Cost$ 1 U B | Defined$ Player.Opponent | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all card from all opponents' graveyards. You may cast those cards this turn, and you may spend it as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. Exile CARDNAME. +SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | RememberObjects$ Remembered | ForgetOnMoved$ Exile | SubAbility$ DelTrig +SVar:STPlay:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Command | Affected$ Card.nonLand+IsRemembered | AffectedZone$ Exile | Description$ You may cast those cards this turn, and you may spend mana as though it were mana of any type to cast those spells. +SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | TriggerRememberedInZone$ Exile | RememberObjects$ Remembered | TriggerDescription$ At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. | SubAbility$ ExileSelf +SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Exile | Destination$ Graveyard +SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Stack | Destination$ Exile +Oracle:Exile all card from all opponents' graveyards. You may cast those cards this turn, and you may spend mana as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards.\nExile Mnemonic Betrayal. From 20373015b4a8c6d3602f964c0d165e17044bf377 Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 5 Oct 2018 14:19:37 +0800 Subject: [PATCH 072/143] - Fixed three cards by stormcat --- forge-gui/res/cardsfolder/h/house_guildmage.txt | 2 +- forge-gui/res/cardsfolder/s/suspicious_bookcase.txt | 2 +- forge-gui/res/cardsfolder/v/viviens_jaguar.txt | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/h/house_guildmage.txt b/forge-gui/res/cardsfolder/h/house_guildmage.txt index 83077960509..08847cc9e65 100644 --- a/forge-gui/res/cardsfolder/h/house_guildmage.txt +++ b/forge-gui/res/cardsfolder/h/house_guildmage.txt @@ -3,5 +3,5 @@ ManaCost:U B Types:Creature Human Wizard PT:2/2 A:AB$ Pump | Cost$ 1 U T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step. -A:AB$ Surveil | Cost$ 2 B T | Amount 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +A:AB$ Surveil | Cost$ 2 B T | Amount$ 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) Oracle:{1}{U}, {T}: Target creature doesn't untap during its controller's next untap step.\n{2}{B}, {T}: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/s/suspicious_bookcase.txt b/forge-gui/res/cardsfolder/s/suspicious_bookcase.txt index f66779c7f53..82db0515001 100644 --- a/forge-gui/res/cardsfolder/s/suspicious_bookcase.txt +++ b/forge-gui/res/cardsfolder/s/suspicious_bookcase.txt @@ -5,4 +5,4 @@ PT:0/4 K:Defender A:AB$ Pump | Cost$ 3 T | ValidTgts$ Creature | KW$ HIDDEN Unblockable | SpellDescription$ Target creature can't be blocked this turn. | TgtPrompt$ Select target creature. SVar:Picture:http://www.wizards.com/global/images/magic/general/suspicious_bookcase.jpg -Oracle:Defender\n{3}{T}: Target creature can't be blocked this turn. +Oracle:Defender\n{3}, {T}: Target creature can't be blocked this turn. diff --git a/forge-gui/res/cardsfolder/v/viviens_jaguar.txt b/forge-gui/res/cardsfolder/v/viviens_jaguar.txt index 8bd2efacc7a..313d70b0e42 100644 --- a/forge-gui/res/cardsfolder/v/viviens_jaguar.txt +++ b/forge-gui/res/cardsfolder/v/viviens_jaguar.txt @@ -1,7 +1,8 @@ Name:Vivien's Jaguar ManaCost:2 G Types:Creature Cat Spirit +PT:3/2 +K:Reach A:AB$ ChangeZone | Cost$ 2 G | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | IsPresent$ Planeswalker.Vivien+YouCtrl | SpellDescription$ Return CARDNAME from your graveyard to your hand. Activate this ability only if you control a Vivien planeswalker. DeckHints:Type$Vivien -Oracle:{2}{G}: Return Vivien’s Jaguar from your graveyard to your hand. Activate this ability only if you control a Vivien planeswalker. -PT:3/2 +Oracle:Reach\n{2}{G}: Return Vivien's Jaguar from your graveyard to your hand. Activate this ability only if you control a Vivien planeswalker. From 577d6270c4cedf7ebab40fc0cc48e8bbe69a07b9 Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 5 Oct 2018 14:43:23 +0800 Subject: [PATCH 073/143] - Added Plaguecrafter --- forge-gui/res/cardsfolder/p/plaguecrafter.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/p/plaguecrafter.txt diff --git a/forge-gui/res/cardsfolder/p/plaguecrafter.txt b/forge-gui/res/cardsfolder/p/plaguecrafter.txt new file mode 100644 index 00000000000..d8608316796 --- /dev/null +++ b/forge-gui/res/cardsfolder/p/plaguecrafter.txt @@ -0,0 +1,12 @@ +Name:Plaguecrafter +ManaCost:2 B +Types:Creature Human Shaman +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBRepeat | TriggerDescription$ When CARDNAME enters the battlefield, each player sacrifices a creature or planeswalker. Each player who can't discards a card. +SVar:DBRepeat:DB$ RepeatEach | RepeatPlayers$ Player | RepeatSubAbility$ ChooseSac | SubAbility$ RememberSac +SVar:ChooseSac:DB$ ChooseCard | Defined$ Remembered | Choices$ Creature.RememberedPlayerCtrl,Planeswalker.RememberedPlayerCtrl | ChoiceTitle$ Choose a creature or planeswalker to sacrifice | AILogic$ WorstCard | Mandatory$ True | RememberChosen$ True +SVar:RememberSac:DB$ Pump | RememberObjects$ RememberedController | SubAbility$ TrigSac +SVar:TrigSac:DB$ SacrificeAll | Defined$ Remembered | SubAbility$ Discard +SVar:Discard:DB$ Discard | Mode$ TgtChoose | NumCards$ 1 | Defined$ Player.IsNotRemembered | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:When Plaguecrafter enters the battlefield, each player sacrifices a creature or planeswalker. Each player who can't discards a card. From ee752f8e8bd1fe986f33d167b8779856f547029f Mon Sep 17 00:00:00 2001 From: swordshine Date: Fri, 5 Oct 2018 15:20:27 +0800 Subject: [PATCH 074/143] - Added Thief of Sanity --- forge-gui/res/cardsfolder/t/thief_of_sanity.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 forge-gui/res/cardsfolder/t/thief_of_sanity.txt diff --git a/forge-gui/res/cardsfolder/t/thief_of_sanity.txt b/forge-gui/res/cardsfolder/t/thief_of_sanity.txt new file mode 100644 index 00000000000..c11142e1b2e --- /dev/null +++ b/forge-gui/res/cardsfolder/t/thief_of_sanity.txt @@ -0,0 +1,12 @@ +Name:Thief of Sanity +ManaCost:1 U B +Types:Creature Specter +PT:2/2 +K:Flying +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at the top three cards of that player's library, exile one of them face down, then put the rest into their graveyard. For as long as that card remains exiled, you may look at it, and you may spend mana as though it were mana of any type to cast it. +SVar:TrigDig:DB$ Dig | DigNum$ 3 | Defined$ TriggeredTarget | DestinationZone$ Exile | ExileFaceDown$ True | SkipReorder$ True | DestinationZone2$ Graveyard | RememberChanged$ True | ChangeValid$ Card | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STPlay1,STPlay2 | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup +SVar:STPlay1:Mode$ Continuous | MayLookAt$ You | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may look at it, and you may spend mana as though it were mana of any type to cast it. +SVar:STPlay2:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | AffectedZone$ Exile | Secondary$ True | Description$ You may look at it, and you may spend mana as though it were mana of any type to cast it. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:Flying\nWhenever Thief of Sanity deals combat damage to a player, look at the top three cards of that player's library, exile one of them face down, then put the rest into their graveyard. For as long as that card remains exiled, you may look at it, you may cast it, and you may spend mana as though it were mana of any type to cast it. From d6b9f0cc0fd932ee1f90e487f74fee6cb12aa524 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sat, 6 Oct 2018 22:11:20 +0100 Subject: [PATCH 075/143] GRN booster images --- forge-gui/res/lists/booster-images.txt | 5 +++++ forge-gui/res/lists/boosterbox-images.txt | 1 + forge-gui/res/lists/fatpack-images.txt | 1 + 3 files changed, 7 insertions(+) diff --git a/forge-gui/res/lists/booster-images.txt b/forge-gui/res/lists/booster-images.txt index 48c8f261e7d..0ef670ef076 100644 --- a/forge-gui/res/lists/booster-images.txt +++ b/forge-gui/res/lists/booster-images.txt @@ -165,6 +165,11 @@ https://downloads.cardforge.org/images/products/boosters/GPT.png https://downloads.cardforge.org/images/products/boosters/GPT_1.jpg https://downloads.cardforge.org/images/products/boosters/GPT_2.jpg https://downloads.cardforge.org/images/products/boosters/GPT_3.jpg +https://downloads.cardforge.org/images/products/boosters/GRN_1.jpg +https://downloads.cardforge.org/images/products/boosters/GRN_2.jpg +https://downloads.cardforge.org/images/products/boosters/GRN_3.jpg +https://downloads.cardforge.org/images/products/boosters/GRN_4.jpg +https://downloads.cardforge.org/images/products/boosters/GRN_5.jpg https://downloads.cardforge.org/images/products/boosters/GTC.png https://downloads.cardforge.org/images/products/boosters/GTC_1.jpg https://downloads.cardforge.org/images/products/boosters/GTC_2.jpg diff --git a/forge-gui/res/lists/boosterbox-images.txt b/forge-gui/res/lists/boosterbox-images.txt index 6aab58512d5..5206382cd7b 100644 --- a/forge-gui/res/lists/boosterbox-images.txt +++ b/forge-gui/res/lists/boosterbox-images.txt @@ -39,6 +39,7 @@ https://downloads.cardforge.org/images/products/boosterboxes/FEM.jpg https://downloads.cardforge.org/images/products/boosterboxes/FRF.jpg https://downloads.cardforge.org/images/products/boosterboxes/FUT.jpg https://downloads.cardforge.org/images/products/boosterboxes/GPT.jpg +https://downloads.cardforge.org/images/products/boosterboxes/GRN.jpg https://downloads.cardforge.org/images/products/boosterboxes/GTC.jpg https://downloads.cardforge.org/images/products/boosterboxes/HML.jpg https://downloads.cardforge.org/images/products/boosterboxes/HOU.jpg diff --git a/forge-gui/res/lists/fatpack-images.txt b/forge-gui/res/lists/fatpack-images.txt index 49fe30ba636..a3649caf726 100644 --- a/forge-gui/res/lists/fatpack-images.txt +++ b/forge-gui/res/lists/fatpack-images.txt @@ -24,6 +24,7 @@ https://downloads.cardforge.org/images/products/fatpacks/EVE.jpg https://downloads.cardforge.org/images/products/fatpacks/FRF.jpg https://downloads.cardforge.org/images/products/fatpacks/FUT.jpg https://downloads.cardforge.org/images/products/fatpacks/GPT.jpg +https://downloads.cardforge.org/images/products/fatpacks/GRN.jpg https://downloads.cardforge.org/images/products/fatpacks/GTC.jpg https://downloads.cardforge.org/images/products/fatpacks/HOU.jpg https://downloads.cardforge.org/images/products/fatpacks/INV.jpg From c08ab94963d80b8cd07310e7d10831e294dfa358 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 12:54:34 +0800 Subject: [PATCH 076/143] - Fixed Severed Strands by T.J. Tillman --- forge-gui/res/cardsfolder/s/severed_strands.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/severed_strands.txt b/forge-gui/res/cardsfolder/s/severed_strands.txt index 1ee8c01646f..9eb18d533ed 100644 --- a/forge-gui/res/cardsfolder/s/severed_strands.txt +++ b/forge-gui/res/cardsfolder/s/severed_strands.txt @@ -3,5 +3,5 @@ ManaCost:1 B Types:Sorcery A:SP$ GainLife | Cost$ 1 B Sac<1/Creature> | Defined$ You | LifeAmount$ X | SubAbility$ DBDestroy | References$ X | SpellDescription$ You gain life equal to that sacrificed creature's toughness. Destroy target creature an opponent controls. SVar:DBDestroy:DB$ Destroy | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls. -SVar:X:RememberedLKI$CardToughness +SVar:X:Sacrificed$CardToughness Oracle:As an additional cost to cast this spell, sacrifice a creature.\nYou gain life equal to that sacrificed creature's toughness. Destroy target creature an opponent controls. From 4639ec444bc03e5b67d6e14a2856e46da85ec8b2 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 12:54:55 +0800 Subject: [PATCH 077/143] - Added Selective Snare --- forge-gui/res/cardsfolder/s/selective_snare.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 forge-gui/res/cardsfolder/s/selective_snare.txt diff --git a/forge-gui/res/cardsfolder/s/selective_snare.txt b/forge-gui/res/cardsfolder/s/selective_snare.txt new file mode 100644 index 00000000000..78579ab38a4 --- /dev/null +++ b/forge-gui/res/cardsfolder/s/selective_snare.txt @@ -0,0 +1,7 @@ +Name:Selective Snare +ManaCost:X U +Types:Sorcery +A:SP$ ChangeZone | AnnounceType$ CreatureType | AILogic$ MostProminentOppControls | Cost$ X U | ValidTgts$ Creature.ChosenType | TargetMin$ 0 | TargetMax$ MaxTgts | TgtPrompt$ Select target creature of the chosen creature type | Origin$ Battlefield | Destination$ Hand | References$ X,MaxTgts | SpellDescription$ Return X target creatures of the creature type of your choice to their owner's hand. +SVar:X:Targeted$Amount +SVar:MaxTgts:Count$Valid Creature.ChosenType +Oracle:Return X target creatures of the creature type of your choice to their owner's hand. From b46d6addb6a2169355017b923512756d81971211 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 13:29:38 +0800 Subject: [PATCH 078/143] - Added Unmoored Ego --- forge-gui/res/cardsfolder/i/infernal_tutor.txt | 2 +- forge-gui/res/cardsfolder/u/unmoored_ego.txt | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/u/unmoored_ego.txt diff --git a/forge-gui/res/cardsfolder/i/infernal_tutor.txt b/forge-gui/res/cardsfolder/i/infernal_tutor.txt index 4cca4d3556d..fd424c1be3e 100644 --- a/forge-gui/res/cardsfolder/i/infernal_tutor.txt +++ b/forge-gui/res/cardsfolder/i/infernal_tutor.txt @@ -1,7 +1,7 @@ Name:Infernal Tutor ManaCost:1 B Types:Sorcery -A:SP$ Reveal | Cost$ 1 B | RememberRevealed$ True | Defined$ You | SubAbility$ DBChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SpellDescription$ Reveal a card from your hand. Search your library for a card with the same name as that card, reveal it, put it into your hand, then shuffle your library. Hellbent — If you have no cards in hand, instead search your library for a card, put it into your hand, then shuffle your library. +A:SP$ Reveal | Cost$ 1 B | RememberRevealed$ True | Defined$ You | SubAbility$ DBChangeZone | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | References$ X | SpellDescription$ Reveal a card from your hand. Search your library for a card with the same name as that card, reveal it, put it into your hand, then shuffle your library. Hellbent — If you have no cards in hand, instead search your library for a card, put it into your hand, then shuffle your library. SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Remembered.sameName | ChangeNum$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBChangeZone2 | References$ X SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LT1 | SubAbility$ DBCleanup | References$ X SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/u/unmoored_ego.txt b/forge-gui/res/cardsfolder/u/unmoored_ego.txt new file mode 100644 index 00000000000..e10afe55ecc --- /dev/null +++ b/forge-gui/res/cardsfolder/u/unmoored_ego.txt @@ -0,0 +1,13 @@ +Name:Unmoored Ego +ManaCost:1 U B +Types:Sorcery +A:SP$ NameCard | Cost$ 1 U B | Defined$ You | SubAbility$ ExileYard | StackDescription$ SpellDescription | SpellDescription$ Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way. +SVar:ExileYard:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player.Opponent | TgtPrompt$ Select target opponent | ChangeType$ Card.NamedCard | Chooser$ You | ChangeNum$ 4 | Hidden$ True | RememberChanged$ True | SubAbility$ ExileHand | StackDescription$ None +SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ Targeted | ChangeType$ Card.NamedCard | ChangeNum$ Y | Chooser$ You | RememberChanged$ True | Imprint$ True | SubAbility$ ExileLib | StackDescription$ None | References$ X,Y +SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ Targeted | ChangeType$ Card.NamedCard | ChangeNum$ Y | Chooser$ You | RememberChanged$ True | Search$ True | Shuffle$ True | SubAbility$ DBDraw | StackDescription$ None | References$ X,Y +SVar:DBDraw:DB$ Draw | Defined$ Targeted | NumCards$ Z | SubAbility$ DBCleanup | StackDescription$ None | References$ Z +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True +SVar:X:Remembered$Amount +SVar:Y:SVar$X/NMinus.4 +SVar:Z:Imprinted$Amount +Oracle:Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way. From 7ea35cabb407015ad9c496fb3ae293f54aa5ac29 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 14:29:40 +0800 Subject: [PATCH 079/143] - Added Thousand-Year Storm --- .../java/forge/game/trigger/TriggerSpellAbilityCast.java | 1 + forge-game/src/main/java/forge/game/zone/MagicStack.java | 2 ++ forge-gui/res/cardsfolder/t/thousand_year_storm.txt | 7 +++++++ 3 files changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/t/thousand_year_storm.txt diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java index cb098f9db61..74646a8b98b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java @@ -241,6 +241,7 @@ public class TriggerSpellAbilityCast extends Trigger { sa.setTriggeringObject("Player", getRunParams().get("Player")); sa.setTriggeringObject("Activator", getRunParams().get("Activator")); sa.setTriggeringObject("CurrentStormCount", getRunParams().get("CurrentStormCount")); + sa.setTriggeringObject("CurrentCastSpells", getRunParams().get("CurrentCastSpells")); sa.setTriggeringObject("CastSACMC", getRunParams().get("CastSACMC")); } diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 07b6a67caae..357cbfd44de 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -42,6 +42,7 @@ import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.card.Card; +import forge.game.card.CardCollection; import forge.game.card.CardFactoryUtil; import forge.game.card.CardPredicates; import forge.game.cost.Cost; @@ -362,6 +363,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable Date: Sun, 7 Oct 2018 08:21:43 +0100 Subject: [PATCH 080/143] Updated deckgen data now we have more cards implemented --- forge-gui/res/deckgendecks/Standard.lda.dat | Bin 84096 -> 100425 bytes forge-gui/res/deckgendecks/Standard.raw.dat | Bin 81651 -> 93129 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index 9f7b2b802ece4b5fe17bc711884e011036ea9923..c3962528feb065bcefc546ed18e602d107e57a69 100644 GIT binary patch literal 100425 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 diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat index 2e231db123ee18ad06a5b32307446faa000df7da..72db6fb8cf78c7b728ca72ba714ba2a6d726098f 100644 GIT binary patch literal 93129 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 TW)|BEa&mLa?P-~rMP>g7zT=ea literal 81651 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 UUjh14a+P?pJ=8_ICG<}Ce~|39)&Kwi From dc41364d95b334a170af23c7870eeb080cfd7fc5 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 15:56:59 +0800 Subject: [PATCH 081/143] - Added Lazav, the Multifarious --- forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt diff --git a/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt new file mode 100644 index 00000000000..e8f35ff5bfa --- /dev/null +++ b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt @@ -0,0 +1,10 @@ +Name:Lazav, the Multifarious +ManaCost:U B +Types:Legendary Creature Shapeshifter +PT:1/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. (To scry 1, look at the top card of your library. You may put that card into your graveyard.) +SVar:TrigSurveil:DB$ Surveil | Amount$ 1 +A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. +SVar:LazavTrig:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. +SVar:X:Targeted$CardManaCost +Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. From 6f0871724fd9fe56c9365b9215fd884b1cfc603f Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 18:24:23 +0800 Subject: [PATCH 082/143] - Added Beamsplitter Mage --- .../effects/CopySpellAbilityEffect.java | 14 +++++++--- .../game/trigger/TriggerSpellAbilityCast.java | 27 +++++++++++++++++++ .../res/cardsfolder/b/beamsplitter_mage.txt | 7 +++++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 forge-gui/res/cardsfolder/b/beamsplitter_mage.txt diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java index 116b5aae57b..6d7b25e97d0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java @@ -8,6 +8,7 @@ import forge.game.GameEntity; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; +import forge.game.card.CardCollection; import forge.game.card.CardFactory; import forge.game.card.CardLists; import forge.game.player.Player; @@ -123,7 +124,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { } } else {// Precursor Golem, Ink-Treader Nephilim final String type = sa.getParam("CopyForEachCanTarget"); - List valid = Lists.newArrayList(); + CardCollection valid = new CardCollection(); List players = Lists.newArrayList(); Player originalTargetPlayer = Iterables.getFirst(getTargetPlayers(chosenSA), null); for (final GameEntity o : candidates) { @@ -142,10 +143,17 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { Card originalTarget = Iterables.getFirst(getTargetCards(chosenSA), null); valid.remove(originalTarget); mayChooseNewTargets = false; - for (final Card c : valid) { + if (sa.hasParam("ChooseOnlyOne")) { + Card choice = controller.getController().chooseSingleEntityForEffect(valid, sa, "Choose one"); SpellAbility copy = CardFactory.copySpellAbilityAndPossiblyHost(card, chosenSA.getHostCard(), chosenSA, true); - resetFirstTargetOnCopy(copy, c, targetedSA); + resetFirstTargetOnCopy(copy, choice, targetedSA); copies.add(copy); + } else { + for (final Card c : valid) { + SpellAbility copy = CardFactory.copySpellAbilityAndPossiblyHost(card, chosenSA.getHostCard(), chosenSA, true); + resetFirstTargetOnCopy(copy, c, targetedSA); + copies.add(copy); + } } for (final Player p : players) { SpellAbility copy = CardFactory.copySpellAbilityAndPossiblyHost(card, chosenSA.getHostCard(), chosenSA, true); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java index 74646a8b98b..cd6ceb7ceab 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java @@ -24,8 +24,10 @@ import java.util.Set; import com.google.common.collect.Sets; import forge.game.Game; +import forge.game.GameEntity; import forge.game.GameObject; import forge.game.card.Card; +import forge.game.card.CardCollection; import forge.game.card.CardLists; import forge.game.card.CardUtil; import forge.game.cost.Cost; @@ -158,6 +160,31 @@ public class TriggerSpellAbilityCast extends Trigger { } } + if (hasParam("CanTargetOtherCondition")) { + final CardCollection candidates = new CardCollection(); + SpellAbility targetedSA = spellAbility; + while (targetedSA != null) { + if (targetedSA.usesTargeting() && targetedSA.getTargets().getNumTargeted() != 0) { + break; + } + targetedSA = targetedSA.getSubAbility(); + } + if (targetedSA == null) { + return false; + } + final List candidateTargets = targetedSA.getTargetRestrictions().getAllCandidates(targetedSA, true); + for (GameEntity card : candidateTargets) { + if (card instanceof Card) { + candidates.add((Card) card); + } + } + candidates.removeAll(targetedSA.getTargets().getTargetCards()); + String valid = this.mapParams.get("CanTargetOtherCondition"); + if (CardLists.getValidCards(candidates, valid, spellAbility.getActivatingPlayer(), spellAbility.getHostCard()).isEmpty()) { + return false; + } + } + if (hasParam("NonTapCost")) { final Cost cost = (Cost) (runParams2.get("Cost")); if (cost.hasTapCost()) { diff --git a/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt new file mode 100644 index 00000000000..66f2bc8fe77 --- /dev/null +++ b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt @@ -0,0 +1,7 @@ +Name:Beamsplitter Mage +ManaCost:U R +Types:Creature Vedalken Wizard +PT:2/2 +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | IsSingleTarget$ True | TargetsValid$ Card.Self | CanTargetOtherCondition$ Creature.YouCtrl | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery that targets only CARDNAME, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. +SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ You | CopyForEachCanTarget$ Creature.YouCtrl | ChooseOnlyOne$ True +Oracle:Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. From c2d0648655c3a59322347f1188eb2c2407575fd0 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 19:29:27 +0800 Subject: [PATCH 083/143] - Added Venerated Loxodon --- .../src/main/java/forge/game/GameAction.java | 1 + .../src/main/java/forge/game/card/Card.java | 16 +++++++++++++++- .../main/java/forge/game/card/CardProperty.java | 4 ++++ .../java/forge/game/cost/CostAdjustment.java | 4 ++++ .../res/cardsfolder/v/venerated_loxodon.txt | 8 ++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/v/venerated_loxodon.txt diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index be3959b2ac7..12d19649791 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -428,6 +428,7 @@ public class GameAction { if (!c.isToken() && !toBattlefield) { copied.clearDevoured(); copied.clearDelved(); + copied.clearConvoked(); } // rule 504.6: reveal a face-down card leaving the stack 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 f56315a4a29..1a9ed880a56 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -98,7 +98,7 @@ public class Card extends GameEntity implements Comparable { private final KeywordCollection hiddenExtrinsicKeyword = new KeywordCollection(); // cards attached or otherwise linked to this card - private CardCollection equippedBy, fortifiedBy, hauntedBy, devouredCards, delvedCards, imprintedCards, encodedCards; + private CardCollection equippedBy, fortifiedBy, hauntedBy, devouredCards, delvedCards, convokedCards, imprintedCards, encodedCards; private CardCollection mustBlockCards, clones, gainControlTargets, chosenCards, blockedThisTurn, blockedByThisTurn; // if this card is attached or linked to something, what card is it currently attached to @@ -725,6 +725,20 @@ public class Card extends GameEntity implements Comparable { delvedCards = null; } + + public final CardCollectionView getConvoked() { + return CardCollection.getView(convokedCards); + } + public final void addConvoked(final Card c) { + if (convokedCards == null) { + convokedCards = new CardCollection(); + } + convokedCards.add(c); + } + public final void clearConvoked() { + convokedCards = null; + } + public MapOfLists getRememberMap() { return rememberMap; } 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 4a480acb239..d2be541192c 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1378,6 +1378,10 @@ public class CardProperty { if (!source.getDelved().contains(card)) { return false; } + } else if (property.startsWith("convoked")) { + if (!source.getConvoked().contains(card)) { + return false; + } } else if (property.startsWith("unequalPT")) { if (card.getNetPower() == card.getNetToughness()) { return false; diff --git a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java index 70d6c91083d..455949c58d5 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java +++ b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java @@ -237,6 +237,7 @@ public class CostAdjustment { } } if (sa.getHostCard().hasKeyword(Keyword.CONVOKE)) { + sa.getHostCard().clearConvoked(); adjustCostByConvokeOrImprovise(cost, sa, false, test); } if (sa.getHostCard().hasKeyword(Keyword.IMPROVISE)) { @@ -270,6 +271,9 @@ public class CostAdjustment { cost.decreaseShard(conv.getValue(), 1); if (!test) { conv.getKey().tap(); + if (!improvise) { + sa.getHostCard().addConvoked(conv.getKey()); + } } } } diff --git a/forge-gui/res/cardsfolder/v/venerated_loxodon.txt b/forge-gui/res/cardsfolder/v/venerated_loxodon.txt new file mode 100644 index 00000000000..f5add8bf2ce --- /dev/null +++ b/forge-gui/res/cardsfolder/v/venerated_loxodon.txt @@ -0,0 +1,8 @@ +Name:Venerated Loxodon +ManaCost:4 W +Types:Creature Elephant Cleric +PT:4/4 +K:Convoke +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounterAll | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each creature that convoked it. +SVar:TrigPutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.convoked | CounterType$ P1P1 | CounterNum$ 1 +Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nWhen Venerated Loxodon enters the battlefield, put a +1/+1 counter on each creature that convoked it. From 9d5332b95b6c8533c376dc58eee193baf1ad3622 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 22:53:02 +0800 Subject: [PATCH 084/143] - Added Coveted Jewel --- .../main/java/forge/game/combat/Combat.java | 17 +++- .../java/forge/game/phase/PhaseHandler.java | 2 +- .../trigger/TriggerAttackerUnblockedOnce.java | 99 +++++++++++++++++++ .../java/forge/game/trigger/TriggerType.java | 1 + forge-gui/res/cardsfolder/c/coveted_jewel.txt | 10 ++ 5 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java create mode 100644 forge-gui/res/cardsfolder/c/coveted_jewel.txt diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index fb9c095306b..7bb0f1bda06 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -613,23 +613,36 @@ public class Combat { } // Call this method right after turn-based action of declare blockers has been performed - public final void fireTriggersForUnblockedAttackers() { + public final void fireTriggersForUnblockedAttackers(final Game game) { + boolean bFlag = false; + List defenders = Lists.newArrayList(); for (AttackingBand ab : attackedByBands.values()) { Collection blockers = blockedBands.get(ab); boolean isBlocked = blockers != null && !blockers.isEmpty(); ab.setBlocked(isBlocked); if (!isBlocked) { + bFlag = true; + defenders.add(getDefenderByAttacker(ab)); for (Card attacker : ab.getAttackers()) { // Run Unblocked Trigger final Map runParams = Maps.newHashMap(); runParams.put("Attacker", attacker); runParams.put("Defender",getDefenderByAttacker(attacker)); runParams.put("DefendingPlayer", getDefenderPlayerByAttacker(attacker)); - attacker.getGame().getTriggerHandler().runTrigger(TriggerType.AttackerUnblocked, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblocked, runParams, false); } } } + if (bFlag) { + // triggers for Coveted Jewel + // currently there is only one attacking player + // should be updated when two-headed-giant is done + final Map runParams = Maps.newHashMap(); + runParams.put("AttackingPlayer", getAttackingPlayer()); + runParams.put("Defenders", defenders); + game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblockedOnce, runParams, false); + } } private final boolean assignBlockersDamage(boolean firstStrikeDamage) { diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 815b3a8c811..ba10cde1a85 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -666,7 +666,7 @@ public class PhaseHandler implements java.io.Serializable { combat.removeAbsentCombatants(); - combat.fireTriggersForUnblockedAttackers(); + combat.fireTriggersForUnblockedAttackers(game); final List declaredBlockers = combat.getAllBlockers(); if (!declaredBlockers.isEmpty()) { diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java new file mode 100644 index 00000000000..5e610b016de --- /dev/null +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java @@ -0,0 +1,99 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.game.trigger; + +import forge.game.GameEntity; +import forge.game.card.Card; +import forge.game.player.Player; +import forge.game.spellability.SpellAbility; + +import java.util.List; +import java.util.Map; + +/** + *

    + * Trigger_AttackerUnblockedOnce class. + *

    + * + * @author Forge + * @version $Id$ + */ +public class TriggerAttackerUnblockedOnce extends Trigger { + + /** + *

    + * Constructor for Trigger_AttackerUnblocked. + *

    + * + * @param params + * a {@link java.util.HashMap} object. + * @param host + * a {@link forge.game.card.Card} object. + * @param intrinsic + * the intrinsic + */ + public TriggerAttackerUnblockedOnce(final java.util.Map params, final Card host, final boolean intrinsic) { + super(params, host, intrinsic); + } + + /** {@inheritDoc} */ + @SuppressWarnings("unchecked") + @Override + public final boolean performTest(final Map runParams2) { + if (hasParam("ValidDefenders")) { + boolean valid = false; + + final List srcs = (List) runParams2.get("Defenders"); + for (GameEntity c : srcs) { + if (c.isValid(this.mapParams.get("ValidDefenders").split(","), this.getHostCard().getController(), this.getHostCard(), null)) { + valid = true; + } + } + if (!valid) { + return false; + } + /* + if (hasParam("ValidAttackers")) { + // should be updated if a creature of a specific type attackes a defender + } + */ + } + if (hasParam("ValidAttackingPlayer")) { + if (!matchesValid(runParams2.get("AttackingPlayer"), + this.mapParams.get("ValidAttackingPlayer").split(","), this.getHostCard())) { + return false; + } + } + return true; + } + + /** {@inheritDoc} */ + @Override + public final void setTriggeringObjects(final SpellAbility sa) { + sa.setTriggeringObject("AttackingPlayer", this.getRunParams().get("AttackingPlayer")); + sa.setTriggeringObject("Defenders", this.getRunParams().get("Defenders")); + } + + @Override + public String getImportantStackObjects(SpellAbility sa) { + StringBuilder sb = new StringBuilder(); + sb.append("AttackingPlayer: ").append(sa.getTriggeringObject("AttackingPlayer")); + sb.append("Defenders: ").append(sa.getTriggeringObject("Defenders")); + return sb.toString(); + } +} diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerType.java b/forge-game/src/main/java/forge/game/trigger/TriggerType.java index ca2bb440d1e..f5119f70fd8 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerType.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerType.java @@ -20,6 +20,7 @@ public enum TriggerType { AttackerBlockedByCreature(TriggerAttackerBlockedByCreature.class), AttackersDeclared(TriggerAttackersDeclared.class), AttackerUnblocked(TriggerAttackerUnblocked.class), + AttackerUnblockedOnce(TriggerAttackerUnblockedOnce.class), Attacks(TriggerAttacks.class), BecomeMonarch(TriggerBecomeMonarch.class), BecomeMonstrous(TriggerBecomeMonstrous.class), diff --git a/forge-gui/res/cardsfolder/c/coveted_jewel.txt b/forge-gui/res/cardsfolder/c/coveted_jewel.txt new file mode 100644 index 00000000000..54d69c9f8ea --- /dev/null +++ b/forge-gui/res/cardsfolder/c/coveted_jewel.txt @@ -0,0 +1,10 @@ +Name:Coveted Jewel +ManaCost:6 +Types:Artifact +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw three cards. +SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 3 +A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 3 | SpellDescription$ Add three mana of any one color. +T:Mode$ AttackerUnblockedOnce | ValidAttackingPlayer$ Player.Opponent | ValidDefenders$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever one or more creatures an opponent controls attack you and aren't blocked, that player draws three cards and gains control of CARDNAME. Untap it. +SVar:TrigDraw:DB$ Draw | Defined$ TriggeredAttackingPlayer | NumCards$ 3 | SubAbility$ DBGainGontrol +SVar:DBGainGontrol:DB$ GainControl | NewController$ TriggeredAttackingPlayer | Untap$ True +Oracle:When Coveted Jewel enters the battlefield, draw three cards.\n{T}: Add three mana of any one color.\nWhenever one or more creatures an opponent controls attack you and aren't blocked, that player draws three cards and gains control of Coveted Jewel. Untap it. From 230364e030092d23190ac8e6be1dd686704c86cc Mon Sep 17 00:00:00 2001 From: swordshine Date: Sun, 7 Oct 2018 23:40:51 +0800 Subject: [PATCH 085/143] - Fixed Risk Factor --- forge-gui/res/cardsfolder/r/risk_factor.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/r/risk_factor.txt b/forge-gui/res/cardsfolder/r/risk_factor.txt index d1519489f6b..638057ce960 100644 --- a/forge-gui/res/cardsfolder/r/risk_factor.txt +++ b/forge-gui/res/cardsfolder/r/risk_factor.txt @@ -2,6 +2,6 @@ Name:Risk Factor ManaCost:2 R Types:Instant K:Jump-start -A:SP$ Pump | Cost$ 2 R | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | OptionalDecider$ Opponent | UnlessCost$ DamageYou<4> | SubAbility$ DBDraw | SpellDescription$ Target opponent may have CARDNAME deal 4 damage to them. If that player doesn't, you draw three cards. +A:SP$ Pump | Cost$ 2 R | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | UnlessCost$ DamageYou<4> | UnlessPayer$ Targeted | UnlessResolveSubs$ WhenNotPaid | SubAbility$ DBDraw | SpellDescription$ Target opponent may have CARDNAME deal 4 damage to them. If that player doesn't, you draw three cards. SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 3 Oracle:Target opponent may have Risk Factor deal 4 damage to them. If that player doesn't, you draw three cards.\nJump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.) From 5a45e4597a0810dccf7e413a45e8289bdb6ef413 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sun, 7 Oct 2018 22:21:57 +0100 Subject: [PATCH 086/143] Updated deckgen data now we have more cards implemented (cherry picked from commit c6f33a1) --- forge-gui/res/deckgendecks/Standard.lda.dat | Bin 100425 -> 101623 bytes forge-gui/res/deckgendecks/Standard.raw.dat | Bin 93129 -> 90685 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index c3962528feb065bcefc546ed18e602d107e57a69..26d6b00cc930c17c48d1fa611d6a77cf03655ed8 100644 GIT binary patch literal 101623 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
    nI=T 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 z zfd~OE>2=a4X!Q(F78$F-c%Yqt(HSx`ZB~d4wH?q*k`}^73czN}$6>VLd}kTpO<|Oe zR;M4i|Mr3b| z8@W%&vOtcd78b+z{Jkdi5i=(p8lOY zhc%CRTz?8j^H0b!6_Me`IEnY0e`UeLp%<3_rsY`L7%P}H7_rIntSFyP7l zWKJv4)#&Nrve)|G>HFqR)=`dEB^I7CN#E%Oi!%qN1x{ZGWS)U{-*4GupA{LWXamyM zN$ICnuK+-&rK1PmAv=d}iLP@O-P^h2Ebq=g4$~^}Rt(-I%osIRJVFzaLJ$R?z7QxK z%6vMcS64=hjO08Ui2?xYfSLr*hV3RSqpUPGe_LT+kFe`}Fu|M&B)~0|hO=grPlgKh z17Z;xA$slq(-DP2vg=@)nrsew93dUg|vhcO5}V= zSfn|3b*P#LMVRwU_AH3>fljEzF3O1t(TA{hU4k_gQHqlKaA+zeVb|iM6P1Tj{1u*^E_DD3<{Dmqjv(vz!P98B*cxQP5Jz z)+(8d%RppMd4-c^C;QbTwQ`sKOWbWuB{ADn`WqZOu(Ju8woMXVI86}Itd}GAJ#(*D zp@w*A((z;lI9RH?$)f=?KLBtW%K-a^wcN04&2CDW0A@14o(-8E71l9tDFIAifL*ti z#{c@3x|*aurZK>d|CzruUu8U$bWR&<^~Jp!w7zH)vZ)e|WICi}78D!8SEOlm$gYT$ z+ot_Czo4fWl4d^ZVCCfD6>rr4S^(UB<$&tlR;}vTPymDgUF=^lWa`yr6abfIXZXc% zdUZ+QWPHvRbnH<1)UIQ4V}9xuRB71R+t^Y7+&!hATK&8o(<-b?JR<;ZqZnY$_s4TR zlU*irIRngEd@8Al#Z7MU4+k`vef#;S0Ro_*W7X5uX||9@?4uf{r8dtT@6raw&*S@#8;yNx1&8P3CQG z3mN^v8z**ae{;I@7q)iA7(JlbL1rWn)|787>y#+1=zAOpg&{Rk= zI*Lp=R=7@>YY@vUbN(wM>Q&3A#e4IOH4*b!7wrp;*Wxw{Ptg{zC0Pt2m6#~Hcz6&H z^W(d5^XOyM+SI-zQ|DZLv;XSda*QZ1N7VoN2>itYiSI8DRa6 zS{s9YiIs_R!)EP;8lIy=0%X80)?#(F9e1-HtdId*9Ia|SculQY-ZFqPY^{F9gX7lY zBR>)VcdoCf0Ya}^a`t%tw`>2SEugPZ*J(GXtRrY=bd z@F#0AaqDjn3OYaKWP>B1x;dD5PK2fkUji4G3REn%doH6f)^n?&T=9>bMv%+`pjV~4 z=yAjAUc7q0HeFb7d@T#~=tAJO<8wK9?2B6$Ps*z*bb!HbQFAxexXgPAWR1xbB*F?1 z#;N_|pZla7-pTR&J41%N8(&vok&mICTlmYqx-s*^hvh``a08;!q!Y>6WtaY4t4}>u zp!s?;<Y)ESR0%5)Wt`+AZ0?_}=FhhB-pe5bOl(pevT2A` zhs+cH0U?_BK|fAzC)1{WNUdHC(0nQ3ybEx9%mB>>=HLF>XE^V)d{`Eec1+G3t}sYB zRt&dh$Ite!^`-1nTAfWL0k8oRbB*BL2s6O-YAgu{ldic~5&)8&=tJg0YKtjRWX``5 z!49~kC3)yf)uod_qlEh&4WBGB)$p|X<8g+a&MtQ)bm=Qbv0nBCr?m95Q~iw`qa>1Z zfGrMDDm*>A7N(CspFD#$2D^asJ=X}wJ9KWu>=>b)6};=N>(PKCRg5J`F?=6NI+(+W zI3dH{wDa8Tb=G)}9Y_SP8Dx>Nq&o;pgg&l~*3Wm6D$xpp&kF7&TK&Gl51FSuJ<-1=u zy6Bjx46yn{ zaUi}cd4P~9V}k+A5a)DRTDM`!RgPE@njQjj4UtO20^0H5&ca_b``=nWO!|w?hqPHJ z2i59ljB3`R%Vi-qDu9f|LRJHLFNN@kz-@0xD`b7n(7ulDc`%9hiSQ5Hj&MFBR|T70 zNP?;V7O#mazR%I*ogn$}WzX&8ACmUm`mQd=3!tkB6CWGRj?ZDePPjJz@9CHOa--lKk1QzNVOss*m>NU!U*!n`uAV2?;7d`34u&WFsa}GG4}|7x zMbasHOMu%9`k_Ptt~meU%h&XM%IQ_YSp@3=7SWT*c8|t)Ll zK~^a1GpAwxm#@NvEDubA69rVV5FbZmrqIC8Z1%HRI~*I>e#61SaY96lo$gp@#bU!} zCH-Xh>AE`~V{mj1^evh`5Jh6Y`LbbT{H=1sYpZ8-)N-&$5c&mCu$nmRA_;TPUKF<cIc+gJ8>_O$=FBW3XxK`t>Li5(a;@&qho-%0?jK5@Fu#q&u(obZTZGQGglSzF9 zz>QiU0DO4*gRoXrD8QkqoMg-;JxuMl>?m4=Ksp%L2&{UOvYW17iRvkWLoH$D55~bj*q;#d&kk<~U55ru4r&j4Q zi%QERns9(eSGOIzO)|ij0oI%^82#;CwmHc}Q2j!yUmbKVzg9)2w3DO8^^=t;l?K{l z5(O!@nvB%axRX&0OTQHW4aL#w7az-A^}lR(PDmfrASnSryVL3y*7w`-MR!BKsI)iL>T$6=mAp(Wm-+%611K8^s1P<-?_& z*AExklMl{)9vn*~E16-8U+jG%;!3pKF?Ym``)z8?g;nRtfOD+Hm?3HT9Tu&X0Ua4& zXp>z=H+On~r0HnS0Jch%i&~9msumgEmkf{-VmqN7x0=hxd4w@^b(`YOs`wED;+jSoKja|0h$aH82jQZAuZ5qpH> z0US{=yPi`LJWAsWi!+vL!7)<7H1>kT4jmTs*>C!~v7Il)z9Ik>C8mK@iVxELE z`cnP)mvy>S=Uw^11qmgJW(bRb!Twg$t!MY1L?IEHc z4?bmkZZ*92x7RRE!Y|HgHfIru9SK%QKSrzHli#jF)cS=SDFCi0$i^6x(dmG0FUE_ zmm|gX{Uc&7bfXQ)e0{}R1Z5^XyhfQU`VNjY+A^%>Z1jv&n=Ghra>!tD_POQ~u zeAPU<{;_{$z_+YLuQR#BKTgb}0Hg&Z;0{%~E>!m3w)y<8?PC^SkXup?pw-v={V(@G zPqB-tBC2VG!jj*RWm*x|&>d12)&^2~Fc_R~Rhys?WSBr86L)T`0T-x*_n9He#{&17 z0%02FYM4QO{52RD^0soeOE;y5BNjXg*epk+94ow?fJaLMb{6!Pk z=nnYzxc{M%ZA1*%lakiz_pKj3zpkste=KXUZ`{q{>t2=;q=b8R?~Ho&w&@v9B?~c% zwb*^*+vgqX3>Ga!=xz7FZEy7srk9f0n$KEn2yndk=NXed0Emdxy5qju|L$IwNiAnB zRy~^Br*_yE0w5w|%eMOV9d^2h4A{$BEUJF#+RFMaK3h6+2;qfcMa4BjMGFyqdj~*| zxmG{>qJQp%b5ypFE$;Dv^)ab?g9qLpG?q!NVt@&)f3uZ;?I8djFBo9Vo{Jls<^~FY zCs$ZTEuPW5Q@39z0PYxMoSKpG3l&p17HnNEHS!-8DcZXI!-!g5#a4;#o+AJv-k$lQ z>ZD=q>0Xe|=6cp5#4u-b^sIc^g2WY&YX}VlHmZYRw3(83?f&_l977wDYb+q!Ki(yO zyWXY=I}0BFPI1VN;3rTGaF1tH89+V*R>W)!sYOs7x_Ax92a}Sw;XnYDz!BtM}zDnAKk1?;i9NA%SXf&3zSf#>p-C23or7 z+Th2%?#Tcyj23Tw_{FZ*17rZ*$j~hZci8{x=m8nLKmg#2G8y{*GOzdWWTd9-oi^y_?QFLY zQvZ7oKabm++tyb5X29Lw*SJ)F>{E#TS*e z`}Al|hY8WyoA@bnWeb&Pq3ny=*Xlb`{~hC~5C%zE2AJf;r7aoT!m4X%Xpuif=gEAfuEbaBO5I2-(wp^oWc|x-7uTi90RCBrPmZ2{K8~##rc&G;IOsO} z_4q4Wt-Dl8a}PrH?26HZz#EeUZ{v2j+l|>z53N- zxsMIfPpy9Fk+`=FW0M8Ijdq9IxX*&IKSE_dW7fiv-9LE6CpRbn+6C?_!_4T8bOn(u zoZI-ui6fg_7P$^IQ+Uv4-127= zg(2jk0mUL<&4aB@iCM0cXv#z?2J&hVSCDSnV*R06aIGkH$J_PO zM=-WW($)~9K;|nszafNek#GPTOUk74_uJXn4g*^YHDqK+;m`;nyAmD-pZen=^AeCK zrZL@^r%u!gOY8J%-MI>47Cir89jF09VkiKFp%QZ~(O}M#oz@BzGJ_$EXv=O3v#JhZ z@(D}?*LI+7+Uac(dNHmfOfuKhBcs(TND$gwbyonu`XFxe5FW%lD}$5_Pi9Y%m}#mj zWlKlEu4Dfv-OAjlvZOAtqf0>4l-265ZoAa$^sRn$3W?l92pw05z_4*8yHQthm3m+C z^;S)4&ERIewnV>^SKM;og?(I`8O_oI`{LNoIp9467UVvP!_qPYboMqb4GB3+i|^y zP)tyD<7+wU!?@Kw9E=A5;Q2l4w6ID2*H0cX|_eCwj1ahz|? zckB2VaJ@vT5raGHa3<$~o$#q1RIkhMFWUANLlF9p8sJ5Df>xiD|FA;KrBp0}q4~*G zYFvDm3MBFYJ=q6zzWYJTieJB$`%8TfK!m9}-E6<_&x-U|5{GIsvMAtBwd&#vRn=~q zt>2$N<QmahFU{Q9_002VKZ+N=J<&axItJKq@3{q7jZiaswd?H+k8R z8IF9CLNOgwzLU!X*?h0aXQ+;JhNyalZwaEMSM1sFH{-HcPL8<$cjln}Y^$4xe>5zMi(Gstj1oTFgxdJb&fJ2?6jpzyQ+? zvlj*~qlAg%7qQ1lL!z%=KfYbG5dOr8BUg^dYV<+|a0WMiO8nPjOHUL4ani?B_n4DE zz7z!z*=~U#cVyAPiNrG+N!(3baT~pITjtRtvL+?mb))Lty$h(60DS9t1z;?*QmRX!Xt7&-&ZF zLL0dS*E$pcu)KIuGC?vRx}mn1e6e4J$Fh7C4jL6oa5$`8@OC4rP=zDz0`))?eNv&4 z>KmloL`aSk_tMxbsBrwkpvfUr7Yfq~Zl;ou$UeMS62PG;gBwvWQRJjYM!i5nC)E!+ zAvDLT9`INiw<;u@_pllC=`oJ=dF-`Ysm~X%bt8bO3~;#pXSZK3`9S(hT4~DPwfch{ znx=m1xlI6s>9Oy_E1fQumc^gPJVt8E(uxZw^cXB!Xl63N#;O-O>8A`60IzBcu%X}c zi`)K|T^^!z&Dv!XetC9kq-Y^@*OmR3-YGLr{tlrXt<*PThXpp5Iiv^I9F}O7|KR=Af1-uBXEJ}})Tj+@V`PAZ zk(x5@!K{n>p2z@d{A=}-$5&4}{6_}?aHo1Y0HxaP**VT20Ge}*)VR_i!@EqrBm*up zz>sp^RPEfC9#Clo`N2{Hgipj?e#4`w&F{#hc;{+>$LFjM1pr!ONRib>nO%$_Ulm_( z^wm?{^>&mvSYrb8bJR`Bh3qyGM`e~N7uhkfvd)~K+rO~_n-ayw-ZF{5y?S}sV_ z`Rw+A9*0YFVnLme{KsnPfnu0EP8A}`gb=F?*MMLl8bB*_wjI%zYVXaf|1K0(e@H>bglYS2Ub!FV6GT0AWfqfXrRm zU(6PLK?srv?!g^V5bcVtNaJ2v`?KnPU5mqo-EtoGO$B?zux%+uP|Tzn}gdr~&2)i19$YR`hpR2WK> zdF*CEaKXdTXU=lU+9*>dmduKhb~ce%Ht*LO&#o+3z;XOhiw~ueSgya&&!)8bs4#Cb z{dm%a2$D>4Y$!D-iZUq)KsPWPmh+yqE^8EDRgTm^vEV`%anB-)By z!$%O5VkkroFEhR!$b-z1KwABX!Dp_nKf9bG`qNB0;#}=qh)X^UYuK_|$Np(4&xR*w z--9b(yZK;C5^o+5ic^Se15(m0#D=m?tbM_W29KsCJmYA-J&@W*JSklbc}|9sKj+f( zAM3DrCHv^bdjKNb=@12h7)iQCC~;5Ayi$dw?TmZ_tY$h=@dU!u<=^7O9RmreDyZLnse7a3smt5irqxC@nL&BRS55^I!d=9P?CCMpXz4>Dx0y@C*E zySphH%EG7>*tL`sL(^kus*HpzOQTwnG^!>2tF+y?q&Q{2+rayO7i0isfvD}fFC~BG zwAM0!o3;n1uHUfyX^sq_N`+Rx_fX=&76nWzAhY2s;b`@{O(~vXKYc2Kg%-DEz)y_aI{>b^ zC;-IG3R{hA_XJ#mV{QAp=WX6uRZodZ3Ct+&i`;P(24gA}#DGirrR2!SZ|BZ#DG!35 z!tTE|zBfLui2#TTfog!rZ|WM{=<$=FB+)`7-G-*Tt#D;R7a8!U^i!*E(Pl~Epf|%P z0Na}+St1Y@l1{>0E__~rhgJ7nUortye!>+jgBerO&1D4?%`t5~EIC%BvZd=HGOh0+ zM6Q1s3lVd-8S-Txtb!2PeR=O`&T4XiA4@fvO2+byf~3SKP}fChNa`Mh$BzMIcF+<5 zGfU;^ zM3(G&;py2ivR~ZAO64g4nsQ>c$(D_q2Ue6Hbg7uVJ-Gd=znJftwD)|&renjMd)-$q zqZ$(dcyX0yL-l$;uAE6(7qL#*$Z%09jg((x&DT8s&|agP7(aLCg1g(Zpu@;F5mvw1 ze(#Q6&KL3G#`p3!>*|O6M-4gY%c?Wdi#Ci13fVZHf0n z41Y_J$aisDcwXi5<`4tzMEYRL$B-}dp!C}l)mDfW!uL0&?Vi~qPYJ6HmE~;Njl%PB zeG#q`6c9)gH+UvK9?@y!a+&#hbz(yvePhY~k)LejL-v6dhPu7dk}`}@J!)MYSto&G zl*86E8mXm!KvM;CP6qMzg8yQP(ub9U$yn)-lqLi zZ-+dfdeTp=eqGetkc`%z0w6-|#mm+odGmyB8HvO2d}CaTKc4T zz_xR;!Qj!00p{;pv+G{jr?d}zG^xQV<$^$cRbE7#lm2o`&}eFbNS*d)B&J<_60ybB zhLRwimUKP+BqzxhA^LJ>t9Vgh(#9o2>qg7M-Hji*aib%5FV|5@ zWEdVD8PTy@7e9G0Y_3eyWI)2V6q4mLJ#u_xgR~wSI7*OI<_=PwB+}5Q4;ZZxI~Qkd z-9>d4>03W~AD|8c3_o-y_G#_LoOIa)IJm+3&-!Xo`;gcxrzy zx{0w(0#I|BgsD+;gNEc;2l+Xz4&VDWiFcswi~@VaZ{V8h<)|`gZ@I2bMIUa|+o9Fl z2DNIwvD9+jI0(0|!D6Lr+fn59oXCF8J^RD9PN%hkg2!;_r&g~3U^C0bxfv~nXZa*J zWt-+1@5x(YL45uPJ}||9UwBDS_oCi5tzHcf*P}D%AMH}+2~*{vny_lLDY%G>Rl~ay zh{bZ&nI2IttW7rafPwpkJMAzS!O(T`NoJ!|pkgt+IJfGfFUqccP>7ZwIkbGh}I&P$B2hVAkN9Bkm*wtn^mBLj>i?&!8-uMdjR74u)2kC#wY;9 z=OJaq;6%9IOjjXE=UUoFoelX^7HRbg95UF}C5;J!h%PXAhvL|&o4YSlHkSqHN1%Z+ z+eRIdL>$JFq~|-XfQpRPk?h+w$Mn@pe-V}`F2(L&dm(YgEm>Fz!+!74^vovtG+rjP z&@ocG8Z7d8aZT1GM38D{>-6&H>QH@NYC)sa@Np-PfBL~lliYbABeiwXg(GRN>FJhQ zv|@nbgbxQzZAV3z1gOsds}EKDu7iISnN$=9%t~+E;;%>om1?W3~%dEw)b#Ws`hh@PICT`IcN~0vm`s;y1c;Ki{OsAsKgcpu6U*oh`m_F)mwyR11-eAV4nqtZrT&HM zONE8kM3V`O-a?+Zk{`mz-7v*?z`a%5tWc3@Q(gD=XwL6~m|Aijr|l0oUb?pm%y7q--W1^7@dCs^GTtc#DKD>&g7N zGIEy5TnewmsX|l0-UTiRB6C(yYQlbLomM?o$KqEn_6xVQz?Ty;EH8TZ_^l^}lYR#9cW?LR- zh!!FdWYybyk)AjI69BhOti`HL)t~69F%|%mf+!M9dgzFx6HltldAVog>^iGu3cDGF znFBul<>(vvxC&?1jKDhc8+t{^E#|Qn(=N5TeI|%WM>70{3@~+!ZhG?%*r_Cd&)x$N z9>|IFeq2%5a*y1{de&n6icT9oJkeJMP!5DTkKI4&HSu#74#ow<=v|tFX*V{C7Q&M{ zcv;B$rEVPrK-5Vr)Kn~!A0#_7J!i1a^LMx%__@j?(ZaI_1K3ZU`0}F`^q`W>AtF&W z$L7HcI>-#yZ7XXrh|FO)`#{{Qqt*D}fE4$6d+*wLWUuZp?F_6e0Y)cLd)VawMn{2# zp4~Z%?2+GZ_`uLY+8lsV2Uv@Ue>1#_eeQF*2yQvDq+17FEyw^Z87YvL#g~c#;mSIt ztJN!rkq_rgK>;9<3dE_Qtx4~<34YlI(_CfQNj{WvQe8S&)J5-D4hl^4<5`CdR1MJZ z&r}24=~>X~)c{eK;vK*%Wgjy4sSB-^=hEnSN!xm@8a1T?Smr-9B|E()|G=OWQxWVG zSZg8+l6CQ!SN(PgpN^r3_&(u^JkxyNu#2^+2ql&kLM{#`E;;0p7wP1v*NNoGEo~`x zM0>B5jPTKpV~&3G?`R4jm-Wf5;3DeVVhKnjqnu%HOZcvfH9{lEh=kd#_k2P>y7rq4 z;CjyHgs_15s0K;KOvWeq-F4FC3lgv8cFp3V#6Ke*9N}pGVj>cZaHn#`cwy6{Ik%Ij z3!EGy4Y#dk7o6MJ=Tj=Z2tc^qW-V>H@bWlnK1(g=3TXAy`mNYz>l(y6ERX#sna4<) zdM6QdQs0}t|9Y~IBko>lj#+Vcm)bKE%0*0`YnAzeW~fA7s~@r_xa-I1jMI}WODv8q z)=0|z(ue{K1hVi9eejIvN#hni<6{GQssTwZaI8xnglOVQb#d`$Z<*=Yys@66qnw@m z_z@hxjOc(*iib7~X-l!l6is7*KEGCfJ~5dpNLV31qEI6+vtWm4@pTDV&PCg(3nQtWd1rckfcyCIDRGD0G1P&EGXQ`a*R|CEO_!4U@+Hp*N=3mVecBlzJ7&o8pQe8=^l!BF! zF^pneojX+RfX97mI!m(eAp`82VjOq!4rQVe;6n!36YVu&mVxOBIB%@}IV#&&aH&v^ zDeXwCI{C;*c23ZxxJ|$H>#kL%J+CT}lPLegC~q0G>4V|`YCaHvxM8$5XK{^?2VH3k z=#G%H`Gq)h#HNmO+K67x4^lB6Rjt2~P9&k>P5C|&gc`K36*y1^h~%i%L$Yfv$*&*} zryU#4{J9kpCmeh%0Nxe`nAa{ZY1!q80wC_p%=Sx8`QJf0gQRn>R;VnEv)cB~dtH$`;9rD+5Z&+&n zuG%?eI}3m}*ChMx$cQVBI!*!D|HN41(H_DsSdYo}jHKKmStfZOd=J1Q>OBBfu1%}g z-gRw1Wk7Rx*Pg4P)Tj0?S3)`GANNqv53fE#d8+nHcpBpv6jn0N3FY7P05qmL` z+Ke<`!b%MbcWGdxgo2{@J_agoZe9L1uBZ8DYL$`c7yA01+AqAL6E28P6H4}ukLJuf z?MeBS)Pk$!+r#?=@8}aDw>U5TL=`YYuy?0&%kyu2>s;4e25{wYY0SgS@|)y7G<;JmuJPveo~>6zi_(*%pD3DeX84@J zo-XFaNd}mHYti%8O&W+6BE5I=_=CE<)>{R@ldELon_Z9I+p#$XVB>{B{6j!V)ta(U z9-I*#6Z^>j$A>?N_GPpTFskOiYexJ}^S-_~!#cFpV zL~BQ8PYhnOQC^=M>f5BPd68Z8Q_79?i;Vt?drH6ow%8TlmDgX{H zE;NwBd$0tNzsaa78e;}R@itpJ(zqNb!ikxL^Ed>dQDNOF(8-5VS*+D}j_N)sbvDB~H|U(v;I`^$GxX1>(n2g$DK@ABaQGR3TOBnor6> zNW~jzWz0z2?u6=D(kO@(!Xm(p430)f+oTJmqKb}6Q3?Dmz-@U+gwaCOr%??sfIQ#| zs}*Jj9>10oEL3QflMstR^#qq{ws54mTz^;Kqd##!i2-CDUK36oaj%0Eg+d6PJ=QKW z@*0x;Sws35Y1#PMzOcFb-RMx+jUuxAj~w@%@nnIlbBPe&k&mjL9d=*VGsNBT!=q=` z{{FbE%ZO{}`__cS?z;S1bS}2WrpLqn()~(DNk%0Ui1o1>$7x+Ms72gmg-8Ey`n6pu zNC^daLEiGT8#dWlD#FY2=eKLM`B!E)qYt-EY(>X4NS^b1fUFOQizs6?h3+0(HKGr} z$VZ24E?&QAwg8B08Dn&26&ZXfR;s; zU*b+MK|xmH$$J20C=N^!*A`IaQ2o>sQFc^18r{Ek#O~PZKl7xI- zYasGV^E%+iL#>4W@1(TPZ$8^Q+l%sD2z9(gObTZZIl!)kl5L18Rq^-ZzaQX~hCvQj z*_v!bhx_~z`=Y@}3IN}wt?)^mt+H!kM|#T|oBln^k;>wlii2KfW>mI6yHL67qaz%F zq>q~lNS0H&5qDO&j=Fh_yScq9}P;%Fqv7HoFvkp)}gf7(nbBOJ|!8N?- zJNK{4JMc|HaYe+Q$&+myW$^4?v!5JTz)^zWXTfC_wydOVHSb)7=$C*SB=j8?+$!g@ zS=jZ_;ibXUl*I^x!te$M-aN#k@v36ZnH_H$S{r4ToyiM4lcG?k{}fE6TenQVY1Ly3iK^iK&a?Es`FI z8}Bv?m1A1Hnvl3ls0IjofB|G)rvtBJ(YbUiHo5)6{!dm&R!`nZz@-YNR)6_<*YI^u zWVuxOF8i2cr?>xcqS<%SU)V5#VR$)!TxIH(3Rk9GzW%b~lUwD?FR1(@c)YYJ5`CZ~ z$@&soqlP2^idl@!kbPGqUaR|We1j>DFB*8 z)?(qd-}YA+%QieobeEp;h(|nHl!Td6ZcBxNHEl&(@j%e@wDT78#?e_oz${#1Mp_%rq-LDt3Ltxwm~bOkC}dnc4cgOKIk z=MJsgw)A+uf)htD4)z3$3fNl-MqJCu6cS5;2@)dIpazJG5efjw(4>BT*rgFjwYC^= zdx{NDg&7FzFb{>%q|2_Zm+2LF7(?lcB@^%qLCg{TBw?29qH>VBwFpQvfXvFO!NDTc z+)c#;(>khF$qXz+vadquoM9BgDSq_Iro17(b@*fkhm+T5L>8CyXawKYd!laqd?sg( zpi!2u_Ks>tHUG0+7XZ&)(od~^TYlD&kAG_=03ukpIn{cubSOQ>I8A;Dq!2f5EaKed zW*J!Pwd2#KpIF|Uw#JboiK9+PDJe-N9FYBgYg1x zOsOWPK$PBE5&-A2n*))oG#xIyIŽjC%%aZKF2uW|%s5g8ai`Pe^o<@Yx5=%5Yh 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 TW)|BEa&mLa?P-~rMP>g7zT=ea From e7b793261ed63f72a44918caa4efd17b97413e33 Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Oct 2018 08:38:27 +0800 Subject: [PATCH 087/143] - Removed an used import --- .../java/forge/game/trigger/TriggerAttackerUnblockedOnce.java | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java index 5e610b016de..66ed8f5c01b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java @@ -19,7 +19,6 @@ package forge.game.trigger; import forge.game.GameEntity; import forge.game.card.Card; -import forge.game.player.Player; import forge.game.spellability.SpellAbility; import java.util.List; From e863c62431cc57c554c9b4b44ff07f89b57041ff Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Oct 2018 08:45:02 +0800 Subject: [PATCH 088/143] - Fixed Vigorspore Wurm --- forge-gui/res/cardsfolder/v/vigorspore_wurm.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/v/vigorspore_wurm.txt b/forge-gui/res/cardsfolder/v/vigorspore_wurm.txt index da010101d99..8e905664c33 100644 --- a/forge-gui/res/cardsfolder/v/vigorspore_wurm.txt +++ b/forge-gui/res/cardsfolder/v/vigorspore_wurm.txt @@ -4,7 +4,7 @@ Types:Creature Wurm PT:6/4 K:CantBeBlockedByAmount GT1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Undergrowth - When CARDNAME enters the battlefield, target creature gains vigilance and gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. -SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | KWs$ Vigilance | References$ X +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ X | NumDef$ X | KW$ Vigilance | References$ X SVar:X:Count$TypeInYourYard.Creature SVar:PlayMain1:TRUE Oracle:Undergrowth — When Vigorspore Wurm enters the battlefield, target creature gains vigilance and gets +X/+X until end of turn, where X is the number of creature cards in your graveyard.\nVigorspore Wurm can't be blocked by more than one creature. From 60ecc7f6b3dc10c64f4b447086e90e195005101e Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Oct 2018 08:47:25 +0800 Subject: [PATCH 089/143] - Fixed Flower // Flourish by T.J. Tillman --- forge-gui/res/cardsfolder/f/flower_flourish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/f/flower_flourish.txt b/forge-gui/res/cardsfolder/f/flower_flourish.txt index 54a446e486e..3a5f46ed562 100644 --- a/forge-gui/res/cardsfolder/f/flower_flourish.txt +++ b/forge-gui/res/cardsfolder/f/flower_flourish.txt @@ -2,7 +2,7 @@ Name:Flower ManaCost:G/W Types:Sorcery AlternateMode: Split -A:SP$ ChangeZone | Cost$ G/W | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic,Plains.Plains | ChangeNum$ 1 | SpellDescription$ Search your library for a basic Forest or Plains card, reveal it, put it into your hand, then shuffle your library. +A:SP$ ChangeZone | Cost$ G/W | Origin$ Library | Destination$ Hand | ChangeType$ Land.Forest+Basic,Land.Plains+Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic Forest or Plains card, reveal it, put it into your hand, then shuffle your library. Oracle:Search your library for a basic Forest or Plains card, reveal it, put it into your hand, then shuffle your library. ALTERNATE From 29ff9d3c92a124d99df59bf4799229eeb73d0c11 Mon Sep 17 00:00:00 2001 From: Chris H Date: Sun, 7 Oct 2018 22:07:53 -0400 Subject: [PATCH 090/143] Pull ManaConversion out to be reused for SpellAbilityStackInstance --- .../src/main/java/forge/game/GameAction.java | 3 +- .../java/forge/game/ability/AbilityUtils.java | 3 +- .../game/mana/IManaConversionMatrix.java | 11 +++++ .../game/mana/ManaConversionService.java | 36 ++++++++++++++++ .../main/java/forge/game/mana/ManaPool.java | 43 ++----------------- .../forge/player/HumanPlaySpellAbility.java | 25 +++++------ 6 files changed, 66 insertions(+), 55 deletions(-) create mode 100644 forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java create mode 100644 forge-game/src/main/java/forge/game/mana/ManaConversionService.java diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 37a1a96a89e..ab9d96e0a33 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -29,6 +29,7 @@ import forge.game.ability.effects.AttachEffect; import forge.game.card.*; import forge.game.event.*; import forge.game.keyword.KeywordInterface; +import forge.game.mana.ManaConversionService; import forge.game.player.GameLossReason; import forge.game.player.Player; import forge.game.replacement.ReplacementEffect; @@ -785,7 +786,7 @@ public class GameAction { game.getReplacementHandler().cleanUpTemporaryReplacements(); for (final Player p : game.getPlayers()) { - p.getManaPool().restoreColorReplacements(); + new ManaConversionService(p.getManaPool()).restoreColorReplacements(); p.clearStaticAbilities(); } 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 f3b9d374e66..c980a16b4de 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -18,6 +18,7 @@ import forge.game.ability.AbilityFactory.AbilityRecordType; import forge.game.card.*; import forge.game.cost.Cost; import forge.game.keyword.KeywordInterface; +import forge.game.mana.ManaConversionService; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.player.PlayerCollection; @@ -1663,7 +1664,7 @@ public class AbilityUtils { } } // AdjustColorReplacement has two different matrices handling final mana conversion under the covers - p.getManaPool().adjustColorReplacement(ManaAtom.fromName(c), convertByte, additive); + new ManaConversionService(p.getManaPool()).adjustColorReplacement(ManaAtom.fromName(c), convertByte, additive); } } } diff --git a/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java b/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java new file mode 100644 index 00000000000..0a047f766d7 --- /dev/null +++ b/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java @@ -0,0 +1,11 @@ +package forge.game.mana; + +import forge.card.mana.ManaAtom; + +public interface IManaConversionMatrix { + // Conversion matrix ORs byte values to make mana more payable + // Restrictive matrix ANDs byte values to make mana less payable + byte[] colorConversionMatrix = new byte[ManaAtom.MANATYPES.length]; + byte[] colorRestrictionMatrix = new byte[ManaAtom.MANATYPES.length]; + +} diff --git a/forge-game/src/main/java/forge/game/mana/ManaConversionService.java b/forge-game/src/main/java/forge/game/mana/ManaConversionService.java new file mode 100644 index 00000000000..513d47cd5db --- /dev/null +++ b/forge-game/src/main/java/forge/game/mana/ManaConversionService.java @@ -0,0 +1,36 @@ +package forge.game.mana; + +import forge.card.mana.ManaAtom; + +public class ManaConversionService { + static byte[] identityMatrix = { ManaAtom.WHITE, ManaAtom.BLUE, ManaAtom.BLACK, ManaAtom.RED, ManaAtom.GREEN, ManaAtom.COLORLESS }; + + IManaConversionMatrix matrix; + + public ManaConversionService(IManaConversionMatrix mtrx) { + matrix = mtrx; + } + + public void adjustColorReplacement(byte originalColor, byte replacementColor, boolean additive) { + // Fix the index without hardcodes + int rowIdx = ManaAtom.getIndexOfFirstManaType(originalColor); + rowIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; + if (additive) { + matrix.colorConversionMatrix[rowIdx] |= replacementColor; + } + else { + matrix.colorRestrictionMatrix[rowIdx] &= replacementColor; + } + } + + public void restoreColorReplacements() { + // By default each color can only be paid by itself ( {G} -> {G}, {C} -> {C} + for (int i = 0; i < matrix.colorConversionMatrix.length; i++) { + matrix.colorConversionMatrix[i] = identityMatrix[i]; + } + // By default all mana types are unrestricted + for (int i = 0; i < matrix.colorRestrictionMatrix.length; i++) { + matrix.colorRestrictionMatrix[i] = ManaAtom.ALL_MANA_TYPES; + } + } +} diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index d76c2145973..0b0c4f3924c 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -20,7 +20,6 @@ package forge.game.mana; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; - import forge.GameCommand; import forge.card.MagicColor; import forge.card.mana.ManaAtom; @@ -36,14 +35,9 @@ import forge.game.player.Player; import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; - import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** *

    @@ -53,13 +47,13 @@ import java.util.List; * @author Forge * @version $Id$ */ -public class ManaPool implements Iterable { +public class ManaPool implements Iterable, IManaConversionMatrix { private final Player owner; private final Multimap floatingMana = ArrayListMultimap.create(); public ManaPool(final Player player) { owner = player; - restoreColorReplacements(); + new ManaConversionService(this).restoreColorReplacements(); } public final int getAmountOfColor(final byte color) { @@ -354,40 +348,11 @@ public class ManaPool implements Iterable { Player p = sa.getActivatingPlayer(); p.getGame().fireEvent(new GameEventZone(ZoneType.Battlefield, p, EventValueChangeType.ComplexUpdate, null)); } - - // Conversion matrix ORs byte values to make mana more payable - // Restrictive matrix ANDs byte values to make mana less payable - private final byte[] colorConversionMatrix = new byte[ManaAtom.MANATYPES.length]; - private final byte[] colorRestrictionMatrix = new byte[ManaAtom.MANATYPES.length]; - private static final byte[] identityMatrix = { ManaAtom.WHITE, ManaAtom.BLUE, ManaAtom.BLACK, ManaAtom.RED, ManaAtom.GREEN, ManaAtom.COLORLESS }; - - public void adjustColorReplacement(byte originalColor, byte replacementColor, boolean additive) { - // Fix the index without hardcodes - int rowIdx = ManaAtom.getIndexOfFirstManaType(originalColor); - rowIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; - if (additive) { - colorConversionMatrix[rowIdx] |= replacementColor; - } - else { - colorRestrictionMatrix[rowIdx] &= replacementColor; - } - } - - public void restoreColorReplacements() { - // By default each color can only be paid by itself ( {G} -> {G}, {C} -> {C} - for (int i = 0; i < colorConversionMatrix.length; i++) { - colorConversionMatrix[i] = identityMatrix[i]; - } - // By default all mana types are unrestricted - for (int i = 0; i < colorRestrictionMatrix.length; i++) { - colorRestrictionMatrix[i] = ManaAtom.ALL_MANA_TYPES; - } - } public byte getPossibleColorUses(byte color) { // Take the current conversion value, AND with restrictions to get mana usage int rowIdx = ManaAtom.getIndexOfFirstManaType(color); - int matrixIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; + int matrixIdx = rowIdx < 0 ? ManaConversionService.identityMatrix.length - 1 : rowIdx; byte colorUse = colorConversionMatrix[matrixIdx]; colorUse &= colorRestrictionMatrix[matrixIdx]; diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index e03c8d89251..02b4bf64ea8 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -17,14 +17,8 @@ */ package forge.player; -import java.util.Collections; -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; - import com.google.common.collect.Iterables; import com.google.common.collect.Maps; - import forge.card.CardStateName; import forge.card.CardType; import forge.card.MagicColor; @@ -38,16 +32,17 @@ import forge.game.cost.CostPart; import forge.game.cost.CostPartMana; import forge.game.cost.CostPayment; import forge.game.keyword.KeywordInterface; +import forge.game.mana.ManaConversionService; import forge.game.mana.ManaPool; import forge.game.player.Player; import forge.game.player.PlayerController; -import forge.game.spellability.AbilityActivated; -import forge.game.spellability.AbilitySub; -import forge.game.spellability.Spell; -import forge.game.spellability.SpellAbility; -import forge.game.spellability.TargetRestrictions; +import forge.game.spellability.*; import forge.game.zone.Zone; import forge.util.collect.FCollection; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.Map; /** *

    @@ -81,6 +76,7 @@ public class HumanPlaySpellAbility { final Card c = ability.getHostCard(); final CardPlayOption option = c.mayPlay(ability.getMayPlay()); + ManaConversionService service = new ManaConversionService(manapool); boolean manaTypeConversion = false; boolean manaColorConversion = false; @@ -169,11 +165,12 @@ public class HumanPlaySpellAbility { ability.getHostCard().unanimateBestow(); } } + if (manaTypeConversion || manaColorConversion || keywordColor) { - manapool.restoreColorReplacements(); + service.restoreColorReplacements(); } if (playerManaConversion) { - manapool.restoreColorReplacements(); + service.restoreColorReplacements(); human.decNumManaConversion(); } return false; @@ -196,7 +193,7 @@ public class HumanPlaySpellAbility { clearTargets(ability); } if (manaTypeConversion || manaColorConversion || keywordColor) { - manapool.restoreColorReplacements(); + service.restoreColorReplacements(); } } return true; From f18df3a223ee39ff4403e1cc5cb437697569628e Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Oct 2018 14:10:44 +0800 Subject: [PATCH 091/143] - Updated Coveted Jewel --- forge-gui/res/cardsfolder/c/coveted_jewel.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/c/coveted_jewel.txt b/forge-gui/res/cardsfolder/c/coveted_jewel.txt index 54d69c9f8ea..da77f2a0ac9 100644 --- a/forge-gui/res/cardsfolder/c/coveted_jewel.txt +++ b/forge-gui/res/cardsfolder/c/coveted_jewel.txt @@ -4,7 +4,7 @@ Types:Artifact T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw three cards. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 3 A:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 3 | SpellDescription$ Add three mana of any one color. -T:Mode$ AttackerUnblockedOnce | ValidAttackingPlayer$ Player.Opponent | ValidDefenders$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever one or more creatures an opponent controls attack you and aren't blocked, that player draws three cards and gains control of CARDNAME. Untap it. -SVar:TrigDraw:DB$ Draw | Defined$ TriggeredAttackingPlayer | NumCards$ 3 | SubAbility$ DBGainGontrol +T:Mode$ AttackerUnblockedOnce | ValidAttackingPlayer$ Player.Opponent | ValidDefenders$ You | TriggerZones$ Battlefield | Execute$ TrigDraw2 | TriggerDescription$ Whenever one or more creatures an opponent controls attack you and aren't blocked, that player draws three cards and gains control of CARDNAME. Untap it. +SVar:TrigDraw2:DB$ Draw | Defined$ TriggeredAttackingPlayer | NumCards$ 3 | SubAbility$ DBGainGontrol SVar:DBGainGontrol:DB$ GainControl | NewController$ TriggeredAttackingPlayer | Untap$ True Oracle:When Coveted Jewel enters the battlefield, draw three cards.\n{T}: Add three mana of any one color.\nWhenever one or more creatures an opponent controls attack you and aren't blocked, that player draws three cards and gains control of Coveted Jewel. Untap it. From 95346e186a8f5b6f81108d08c3254f56abac4e58 Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Oct 2018 22:10:14 +0800 Subject: [PATCH 092/143] - Fixed some cards --- forge-gui/res/cardsfolder/b/barreling_attack.txt | 8 ++++---- forge-gui/res/cardsfolder/d/delifs_cone.txt | 8 ++++---- forge-gui/res/cardsfolder/g/goblin_flotilla.txt | 6 +++--- forge-gui/res/cardsfolder/l/lithomancers_focus.txt | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/forge-gui/res/cardsfolder/b/barreling_attack.txt b/forge-gui/res/cardsfolder/b/barreling_attack.txt index 60ab3ef825c..dfee6d1044d 100644 --- a/forge-gui/res/cardsfolder/b/barreling_attack.txt +++ b/forge-gui/res/cardsfolder/b/barreling_attack.txt @@ -1,10 +1,10 @@ Name:Barreling Attack ManaCost:2 R R Types:Instant -A:SP$ Pump | Cost$ 2 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Trample | SubAbility$ DBAnimate | SpellDescription$ Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. -SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Triggers$ TrigBounce | sVars$ ABBarrelingPump,BarrelingX -SVar:TrigBounce:Mode$ AttackerBlocked | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ABBarrelingPump | TriggerDescription$ When CARDNAME becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. -SVar:ABBarrelingPump:DB$ Pump | Defined$ Self | NumAtt$ +BarrelingX | NumDef$ +BarrelingX | References$ BarrelingX +A:SP$ Pump | Cost$ 2 R R | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Trample | SubAbility$ DBEffect | SpellDescription$ Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. +SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | Triggers$ TrigBounce | SVars$ ABBarrelingPump,BarrelingX | ForgetOnMoved$ Battlefield +SVar:TrigBounce:Mode$ AttackerBlocked | ValidCard$ Card.IsRemembered | TriggerZones$ Command | Execute$ ABBarrelingPump | TriggerDescription$ When CARDNAME becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. +SVar:ABBarrelingPump:DB$ Pump | Defined$ Remembered | NumAtt$ +BarrelingX | NumDef$ +BarrelingX | References$ BarrelingX SVar:BarrelingX:TriggerCount$NumBlockers SVar:Picture:http://www.wizards.com/global/images/magic/general/barreling_attack.jpg Oracle:Target creature gains trample until end of turn. When that creature becomes blocked this turn, it gets +1/+1 until end of turn for each creature blocking it. diff --git a/forge-gui/res/cardsfolder/d/delifs_cone.txt b/forge-gui/res/cardsfolder/d/delifs_cone.txt index 58dc5ac4468..5940d97a3e1 100644 --- a/forge-gui/res/cardsfolder/d/delifs_cone.txt +++ b/forge-gui/res/cardsfolder/d/delifs_cone.txt @@ -1,11 +1,11 @@ Name:Delif's Cone ManaCost:0 Types:Artifact -A:AB$ Animate | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | Triggers$ TrigAttackerUnblocked | sVars$ GainLife,DBPump,DelifX | SpellDescription$ This turn, when target creature you control attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. -SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Card.Self | Execute$ GainLife | OptionalDecider$ You | TriggerDescription$ This turn, when CARDNAME attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. +A:AB$ Effect | Cost$ T Sac<1/CARDNAME> | ValidTgts$ Creature.YouCtrl | Triggers$ TrigAttackerUnblocked | SVars$ GainLife,DBPump,DelifX | RememberObjects$ Targeted | ForgetOnMoved$ Battlefield | SpellDescription$ This turn, when target creature you control attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. +SVar:TrigAttackerUnblocked:Mode$ AttackerUnblocked | ValidCard$ Card.IsRemembered | Execute$ GainLife | OptionalDecider$ You | TriggerDescription$ This turn, when that creature attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. SVar:GainLife:DB$ GainLife | Defined$ You | LifeAmount$ DelifX | SubAbility$ DBPump | References$ DelifX -SVar:DBPump:DB$Pump | Defined$ Self | KW$ HIDDEN CARDNAME assigns no combat damage | StackDescription$ CARDNAME assigns no combat damage this turn. -SVar:DelifX:Count$CardPower +SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ HIDDEN CARDNAME assigns no combat damage | StackDescription$ {c:Remembered} assigns no combat damage this turn. +SVar:DelifX:Remembered$CardPower SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/delifs_cone.jpg Oracle:{T}, Sacrifice Delif's Cone: This turn, when target creature you control attacks and isn't blocked, you may gain life equal to its power. If you do, it assigns no combat damage this turn. diff --git a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt index 5f93368b0ec..6bbd2584317 100644 --- a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt +++ b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt @@ -4,9 +4,9 @@ Types:Creature Goblin PT:2/2 K:Islandwalk T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ AnimateDB | TriggerDescription$ At the beginning of each combat, unless you pay {R}, whenever CARDNAME blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. -SVar:AnimateDB:DB$Animate | Triggers$ AttackerBlocked,Blocks | UnlessCost$ R | UnlessPayer$ You | UntilEndOfCombat$ True -SVar:AttackerBlocked:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.Self | Execute$ PumpAttacker | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. -SVar:Blocks:Mode$ AttackerBlockedByCreature | ValidCard$ Card.Self | ValidBlocker$ Creature | Execute$ PumpBlocker | TriggerDescription$ Whenever CARDNAME blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. +SVar:AnimateDB:DB$ Effect | Triggers$ AttackerBlocked,Blocks | SVars$ PumpAttacker,PumpBlocker | UnlessCost$ R | UnlessPayer$ You | Duration$ UntilEndOfCombat +SVar:AttackerBlocked:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.EffectSource | Execute$ PumpAttacker | TriggerDescription$ Whenever EFFECTSOURCE blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. +SVar:Blocks:Mode$ AttackerBlockedByCreature | ValidCard$ Card.EffectSource | ValidBlocker$ Creature | Execute$ PumpBlocker | TriggerDescription$ Whenever EFFECTSOURCE blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. SVar:PumpAttacker:DB$ Pump | Defined$ TriggeredAttacker | KW$ First Strike SVar:PumpBlocker:DB$ Pump | Defined$ TriggeredBlocker | KW$ First Strike SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_flotilla.jpg diff --git a/forge-gui/res/cardsfolder/l/lithomancers_focus.txt b/forge-gui/res/cardsfolder/l/lithomancers_focus.txt index 62f5eabd196..5a8d0c5b51d 100644 --- a/forge-gui/res/cardsfolder/l/lithomancers_focus.txt +++ b/forge-gui/res/cardsfolder/l/lithomancers_focus.txt @@ -3,6 +3,6 @@ ManaCost:W Types:Instant A:SP$ Pump | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | NumDef$ +2 | SubAbility$ DBEffect | SpellDescription$ Target creature gets +2/+2 until end of turn. Prevent all damage that would be dealt to that creature this turn by colorless sources. SVar:DBEffect:DB$ Effect | Defined$ Targeted | ReplacementEffects$ PreventColorless | RememberObjects$ Targeted | ForgetOnMoved$ Battlefield -SVar:PreventColorless:Event$ DamageDone | Prevent$ True | ActiveZones$ Command | ValidSource$ Card.ColorlessSource | Description$ Prevent all damage that would be dealt to that creature this turn by colorless sources. +SVar:PreventColorless:Event$ DamageDone | Prevent$ True | ActiveZones$ Command | ValidSource$ Card.ColorlessSource | ValidTarget$ Card.IsRemembered | Description$ Prevent all damage that would be dealt to that creature this turn by colorless sources. SVar:Picture:http://www.wizards.com/global/images/magic/general/lithomancers_focus.jpg Oracle:Target creature gets +2/+2 until end of turn. Prevent all damage that would be dealt to that creature this turn by colorless sources. From 28665bacdfbfb1687acd017e092544a21ee516e3 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 8 Oct 2018 18:33:19 -0600 Subject: [PATCH 093/143] log why deck was rejected Signed-off-by: Jamin W. Collins --- forge-core/src/main/java/forge/deck/DeckFormat.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 131b4360e42..23ffa77fbe5 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -473,6 +473,10 @@ public enum DeckFormat { if (paperCardPoolFilter != null) { for (final Entry cp : deck.getAllCardsInASinglePool()) { if (!paperCardPoolFilter.apply(cp.getKey())) { + System.err.println( + "Excluding deck: '" + deck.toString() + + "' Reason: '" + cp.getKey() + "' is not legal." + ); return false; } } From 252955920d4e77490b9388ed7a8f1af21531fba8 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 8 Oct 2018 18:51:44 -0600 Subject: [PATCH 094/143] catch and log CME in checkArgs Signed-off-by: Jamin W. Collins --- forge-gui/src/main/java/forge/net/ProtocolMethod.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/forge-gui/src/main/java/forge/net/ProtocolMethod.java b/forge-gui/src/main/java/forge/net/ProtocolMethod.java index 3035d5a3202..11ff02380d9 100644 --- a/forge-gui/src/main/java/forge/net/ProtocolMethod.java +++ b/forge-gui/src/main/java/forge/net/ProtocolMethod.java @@ -3,6 +3,7 @@ package forge.net; import java.io.Serializable; import java.lang.reflect.Method; import java.util.Collection; +import java.util.ConcurrentModificationException; import java.util.List; import java.util.Map; @@ -166,6 +167,9 @@ public enum ProtocolMethod { // not sure why this one would be thrown, but it is // it also doesn't prevent things from working, so, log for now, pending full network rewrite ex.printStackTrace(); + } catch(ConcurrentModificationException ex) { + // can't seem to avoid this from periodically happening + ex.printStackTrace(); } } } From d840cde96aee0c63961d93819efa9f9a3051b5f7 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Mon, 8 Oct 2018 19:05:06 -0600 Subject: [PATCH 095/143] fix Risk Factor's stack description Signed-off-by: Jamin W. Collins --- forge-gui/res/cardsfolder/r/risk_factor.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/r/risk_factor.txt b/forge-gui/res/cardsfolder/r/risk_factor.txt index 638057ce960..6451e0530c0 100644 --- a/forge-gui/res/cardsfolder/r/risk_factor.txt +++ b/forge-gui/res/cardsfolder/r/risk_factor.txt @@ -2,6 +2,6 @@ Name:Risk Factor ManaCost:2 R Types:Instant K:Jump-start -A:SP$ Pump | Cost$ 2 R | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | UnlessCost$ DamageYou<4> | UnlessPayer$ Targeted | UnlessResolveSubs$ WhenNotPaid | SubAbility$ DBDraw | SpellDescription$ Target opponent may have CARDNAME deal 4 damage to them. If that player doesn't, you draw three cards. +A:SP$ Pump | StackDescription$ {p:Targeted} may have CARDNAME deal 4 damage to them. If {p:Targeted} doesn't, | Cost$ 2 R | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | UnlessCost$ DamageYou<4> | UnlessPayer$ Targeted | UnlessResolveSubs$ WhenNotPaid | SubAbility$ DBDraw | SpellDescription$ Target opponent may have CARDNAME deal 4 damage to them. If that player doesn't, you draw three cards. SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 3 Oracle:Target opponent may have Risk Factor deal 4 damage to them. If that player doesn't, you draw three cards.\nJump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.) From 375c1e0da7de350b139023a48042d802b62be2ca Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 12:03:29 +0800 Subject: [PATCH 096/143] - Added Aminatou, the Fateshifter --- .../src/main/java/forge/ai/AiController.java | 7 +++ .../src/main/java/forge/ai/SpellApiToAi.java | 1 + .../forge/ai/ability/ChooseDirectionAi.java | 23 ++++++++- .../main/java/forge/game/ability/ApiType.java | 1 + .../effects/ControlGainVariantEffect.java | 47 +++++++++++++++++++ .../upcoming/aminatou_the_fateshifter.txt | 13 +++++ 6 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java create mode 100644 forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 2c6f0d43f4b..2314c4867bb 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -38,6 +38,7 @@ import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.ability.SpellApiBased; import forge.game.card.*; +import forge.game.card.CardPredicates.Accessors; import forge.game.card.CardPredicates.Presets; import forge.game.combat.Combat; import forge.game.combat.CombatUtil; @@ -1804,6 +1805,12 @@ public class AiController { return left.contains(ComputerUtilCard.getBestCreatureAI(all)); } } + if ("Aminatou".equals(sa.getParam("AILogic")) && game.getPlayers().size() > 2) { + CardCollection all = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Presets.NONLAND_PERMANENTS); + CardCollection left = CardLists.filterControlledBy(all, game.getNextPlayerAfter(player, Direction.Left)); + CardCollection right = CardLists.filterControlledBy(all, game.getNextPlayerAfter(player, Direction.Right)); + return Aggregates.sum(left, Accessors.fnGetCmc) > Aggregates.sum(right, Accessors.fnGetCmc); + } return MyRandom.getRandom().nextBoolean(); } diff --git a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java index 7bd699882e7..611161a59fb 100644 --- a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java +++ b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java @@ -79,6 +79,7 @@ public enum SpellApiToAi { .put(ApiType.FlipACoin, FlipACoinAi.class) .put(ApiType.Fog, FogAi.class) .put(ApiType.GainControl, ControlGainAi.class) + .put(ApiType.GainControlVariant, AlwaysPlayAi.class) .put(ApiType.GainLife, LifeGainAi.class) .put(ApiType.GainOwnership, CannotPlayAi.class) .put(ApiType.GameDrawn, CannotPlayAi.class) diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseDirectionAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseDirectionAi.java index 8e5f756af3c..3480f561d70 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseDirectionAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseDirectionAi.java @@ -1,8 +1,16 @@ package forge.ai.ability; import forge.ai.SpellAbilityAi; +import forge.game.Direction; +import forge.game.Game; +import forge.game.card.CardCollection; +import forge.game.card.CardLists; +import forge.game.card.CardPredicates; +import forge.game.card.CardPredicates.Presets; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.game.zone.ZoneType; +import forge.util.Aggregates; public class ChooseDirectionAi extends SpellAbilityAi { @@ -12,10 +20,23 @@ public class ChooseDirectionAi extends SpellAbilityAi { @Override protected boolean canPlayAI(Player ai, SpellAbility sa) { final String logic = sa.getParam("AILogic"); + final Game game = sa.getActivatingPlayer().getGame(); if (logic == null) { return false; } else { - // TODO: default ai + if ("Aminatou".equals(logic)) { + CardCollection all = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Presets.NONLAND_PERMANENTS); + CardCollection aiPermanent = CardLists.filterControlledBy(all, ai); + aiPermanent.remove(sa.getHostCard()); + int aiValue = Aggregates.sum(aiPermanent, CardPredicates.Accessors.fnGetCmc); + CardCollection left = CardLists.filterControlledBy(all, game.getNextPlayerAfter(ai, Direction.Left)); + CardCollection right = CardLists.filterControlledBy(all, game.getNextPlayerAfter(ai, Direction.Right)); + int leftValue = Aggregates.sum(left, CardPredicates.Accessors.fnGetCmc); + int rightValue = Aggregates.sum(right, CardPredicates.Accessors.fnGetCmc); + if (aiValue > leftValue || aiValue > rightValue) { + return false; + } + } } return true; } diff --git a/forge-game/src/main/java/forge/game/ability/ApiType.java b/forge-game/src/main/java/forge/game/ability/ApiType.java index a5d9572fde2..650fd003de5 100644 --- a/forge-game/src/main/java/forge/game/ability/ApiType.java +++ b/forge-game/src/main/java/forge/game/ability/ApiType.java @@ -76,6 +76,7 @@ public enum ApiType { FlipACoin (FlipCoinEffect.class), Fog (FogEffect.class), GainControl (ControlGainEffect.class), + GainControlVariant (ControlGainVariantEffect.class), GainLife (LifeGainEffect.class), GainOwnership (OwnershipGainEffect.class), GameDrawn (GameDrawEffect.class), diff --git a/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java new file mode 100644 index 00000000000..48123229288 --- /dev/null +++ b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java @@ -0,0 +1,47 @@ +package forge.game.ability.effects; + +import forge.game.Game; +import forge.game.ability.SpellAbilityEffect; +import forge.game.card.Card; +import forge.game.card.CardCollection; +import forge.game.card.CardLists; +import forge.game.player.Player; +import forge.game.spellability.SpellAbility; +import forge.game.zone.ZoneType; + +public class ControlGainVariantEffect extends SpellAbilityEffect { + /* (non-Javadoc) + * @see forge.card.abilityfactory.SpellEffect#getStackDescription(java.util.Map, forge.card.spellability.SpellAbility) + */ + @Override + protected String getStackDescription(SpellAbility sa) { + return sa.getDescription(); + } + + @Override + public void resolve(SpellAbility sa) { + // Aminatou, the Fateshifter (multiple players gain control of multiple permanents in an effect) + final Card source = sa.getHostCard(); + final Game game = source.getGame(); + + CardCollection tgtCards = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), + sa.getParam("AllValid"), source.getController(), source); + + if ("NextPlayerInChosenDirection".equals(sa.getParam("ChangeController")) && (source.getChosenDirection() != null) ) { + long tStamp = game.getNextTimestamp(); + for (final Player p : game.getPlayers()) { + + CardCollection valid = CardLists.filterControlledBy(tgtCards, game.getNextPlayerAfter(p, source.getChosenDirection())); + + for (Card tgtC : valid) { + if (!tgtC.isInPlay() || !tgtC.canBeControlledBy(p)) { + continue; + } + tgtC.setController(p, tStamp); + tgtCards.remove(tgtC); // remove from the list if controller is changed + } + } + } + } + +} diff --git a/forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt b/forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt new file mode 100644 index 00000000000..8b85918ca76 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt @@ -0,0 +1,13 @@ +Name:Aminatou, the Fateshifter +ManaCost:W U B +Types:Legendary Planeswalker Aminatou +Loyalty:3 +Text:CARDNAME can be your commander. +A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | NumCards$ 1 | SubAbility$ DBTop | SpellDescription$ Draw a card, then put a card from your hand on top of your library. +SVar:DBTop:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True +A:AB$ ChangeZone | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.Other+YouOwn | TgtPrompt$ Select another target permanent you own | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile another target permanent you own, then return it to the battlefield under your control. +SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +A:AB$ ChooseDirection | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | SubAbility$ DBControl | AILogic$ Aminatou | SpellDescription$ Choose left or right. Each player gains control of all nonland permanents other than CARDNAME controlled by the next player in the chosen direction. +SVar:DBControl:DB$ GainControlVariant | AllValid$ Permanent.nonLand+Other | ChangeController$ NextPlayerInChosenDirection +Oracle:[+1]: Draw a card, then put a card from your hand on top of your library.\n[−1]: Exile another target permanent you own, then return it to the battlefield under your control.\n[−6]: Choose left or right. Each player gains control of all nonland permanents other than Aminatou, the Fateshifter controlled by the next player in the chosen direction.\nAminatou, the Fateshifter can be your commander. From b5f7525f9f8aa3d717731032a91960b0dcdb20f2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 9 Oct 2018 08:34:50 +0300 Subject: [PATCH 097/143] - Added a basic AI logic for Najeela, the Blade Blossom. --- forge-gui/res/puzzle/PS_GRN1.pzl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 forge-gui/res/puzzle/PS_GRN1.pzl diff --git a/forge-gui/res/puzzle/PS_GRN1.pzl b/forge-gui/res/puzzle/PS_GRN1.pzl new file mode 100644 index 00000000000..8a189e3af52 --- /dev/null +++ b/forge-gui/res/puzzle/PS_GRN1.pzl @@ -0,0 +1,16 @@ +[metadata] +Name:Possibility Storm - Guilds of Ravnica #01 +URL:https://i0.wp.com/www.possibilitystorm.com/wp-content/uploads/2018/10/083.-GRN1.jpg +Goal:Win +Turns:1 +Difficulty:Rare +Description:Win this turn. When this puzzle starts, you will be prompted to pay 2 life for Sacred Foundry, you should choose "No" (Sacred Foundry will be placed on the battlefield untapped regardless). +[state] +humanlife=20 +ailife=5 +turn=1 +activeplayer=human +activephase=MAIN1 +humanhand=Heroic Reinforcements;Aurelia, Exemplar of Justice;Garna, the Bloodflame;Deafening Clarion;Vraska's Contempt +humanbattlefield=Blade Instructor;Goblin Banneret;Barging Sergeant;Angrath, the Flame-Chained|Counters:LOYALTY=5;Sacred Foundry;Sacred Foundry;Sacred Foundry;Sacred Foundry;Dragonskull Summit;Dragonskull Summit +aibattlefield=Josu Vess, Lich Knight;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom From 4b60b224c3bb1548f3935f60e4cba77f81db1cc9 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 14:42:58 +0800 Subject: [PATCH 098/143] - Fixed more cards --- forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt | 4 ++-- forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt | 2 +- .../res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt b/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt index acb0906840c..86f5b00299f 100644 --- a/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt +++ b/forge-gui/res/cardsfolder/s/saheeli_the_gifted.txt @@ -10,7 +10,7 @@ SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile SVar:X:Count$Valid Artifact.YouCtrl SVar:RemRandomDeck A:AB$ RepeatEach | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | RepeatSubAbility$ DBClone | RepeatCards$ Artifact.YouCtrl | AtEOT$ ExileCombat | AddSVars$ SneakAttackEOT | SpellDescription$ For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | Keywords$ Haste | AtEOT$ Exile | AddSVars$ SneakAttackEOT | AtEOT$ Exile +SVar:DBClone:DB$ CopyPermanent | Defined$ Remembered | Keywords$ Haste | AtEOT$ Exile | AddSVars$ SneakAttackEOT SVar:SneakAttackEOT:SVar:EndOfTurnLeavePlay:True K:CARDNAME can be your commander. -Oracle:[+1]: Create a 1/1 colorless Servo artifact creature token.\n[+1]: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.\n[-7]: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.\nSaheeli, the Gifted can be your commander. \ No newline at end of file +Oracle:[+1]: Create a 1/1 colorless Servo artifact creature token.\n[+1]: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it.\n[-7]: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step.\nSaheeli, the Gifted can be your commander. diff --git a/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt b/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt index 54e048fd514..49c79afd743 100644 --- a/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt +++ b/forge-gui/res/cardsfolder/t/tuvasa_the_sunlit.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Merfolk Shaman PT:1/1 S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each enchantment you control. SVar:X:Count$Valid Enchantment.YouCtrl -T:Mode$ SpellCast | ValidCard$ Enchantment | ValidActivatingPlayer$ You | CheckSVar$ Y | SVarCompare$ EQ1 | References$ Y | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast your first enchantment spell each turn, draw a card. +T:Mode$ SpellCast | ValidCard$ Enchantment | ValidActivatingPlayer$ You | CheckSVar$ Y | SVarCompare$ EQ1 | References$ Y | NoResolvingCheck$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you cast your first enchantment spell each turn, draw a card. SVar:Y:Count$ThisTurnCast_Enchantment.YouCtrl SVar:TrigDraw:DB$ Draw | NumCards$ 1 | Defined$ You SVar:BuffedBy:Enchantment diff --git a/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt b/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt index 667ecd11252..9c248f8890d 100644 --- a/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt +++ b/forge-gui/res/cardsfolder/v/varchild_betrayer_of_kjeldor.txt @@ -5,8 +5,8 @@ PT:3/3 T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ When CARDNAME deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens. SVar:TrigToken:DB$ Token | TokenOwner$ TriggeredTarget | TokenAmount$ X | References$ X | TokenName$ Survivor | TokenTypes$ Creature,Survivor | TokenColors$ Red | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ r 1 1 survivor C18 SVar:X:TriggerCount$DamageAmount -S:Mode$ Continuous | Affected$ Survivor | AddHiddenKeyword$ CantBlock Creature | Description$ Survivors can't block. -S:Mode$ CantAttack | ValidCard$ Creature.Survivor | Target$ You,Planeswalker.YouCtrl | Description$ Survivors your opponent control can't attack you or planeswalkers you control. +S:Mode$ Continuous | Affected$ Survivor.OppCtrl | AddHiddenKeyword$ CantBlock Creature | Description$ Survivors your opponents control can't block. +S:Mode$ CantAttack | ValidCard$ Creature.Survivor+OppCtrl | Target$ You,Planeswalker.YouCtrl | Description$ Survivors your opponents control can't attack you or planeswalkers you control. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigGainControl | TriggerDescription$ When CARDNAME leaves the battlefield, gain control of all Survivors. SVar:TrigGainControl:DB$ GainControl | AllValid$ Survivor | NewController$ You -Oracle:When Varchild, Betrayer of Kjeldor deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens.\nSurvivors your opponent control can't attack you or planeswalkers you control.\nWhen Varchild, Betrayer of Kjeldor leaves the battlefield, gain control of all Survivors. \ No newline at end of file +Oracle:When Varchild, Betrayer of Kjeldor deals combat damage to a player, that player creates that many 1/1 red Survivor creature tokens.\nSurvivors your opponents control can't block, and they can't attack you or a planeswalker you control.\nWhen Varchild, Betrayer of Kjeldor leaves the battlefield, gain control of all Survivors. From 4089aefcde1f776a0f3e0d123a9b614e157a823a Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 15:55:06 +0800 Subject: [PATCH 099/143] - migrate Aminatou, the Fateshifter --- .../forge/game/ability/effects/ControlGainVariantEffect.java | 2 ++ .../cardsfolder/{upcoming => a}/aminatou_the_fateshifter.txt | 0 2 files changed, 2 insertions(+) rename forge-gui/res/cardsfolder/{upcoming => a}/aminatou_the_fateshifter.txt (100%) diff --git a/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java index 48123229288..44c2deddebe 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ControlGainVariantEffect.java @@ -21,6 +21,8 @@ public class ControlGainVariantEffect extends SpellAbilityEffect { @Override public void resolve(SpellAbility sa) { // Aminatou, the Fateshifter (multiple players gain control of multiple permanents in an effect) + // Consider migrating cards with similar effects + // GainControl embedded in RepeatEach effects don't work well with timestamps final Card source = sa.getHostCard(); final Game game = source.getGame(); diff --git a/forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt b/forge-gui/res/cardsfolder/a/aminatou_the_fateshifter.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/aminatou_the_fateshifter.txt rename to forge-gui/res/cardsfolder/a/aminatou_the_fateshifter.txt From fe8034ba79feb4bd46a780758c4e989b46ac6a05 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 16:58:57 +0800 Subject: [PATCH 100/143] - Fixed Darkblade Agent's description --- forge-gui/res/cardsfolder/d/darkblade_agent.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/d/darkblade_agent.txt b/forge-gui/res/cardsfolder/d/darkblade_agent.txt index 0f933fee1e8..a3ce8c4a4ae 100644 --- a/forge-gui/res/cardsfolder/d/darkblade_agent.txt +++ b/forge-gui/res/cardsfolder/d/darkblade_agent.txt @@ -2,7 +2,7 @@ Name:Darkblade Agent ManaCost:1 U B Types:Creature Human Assassin PT:2/3 -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Deathtouch | AddTrigger$ Trig1 | AddSVar$ TrigDraw | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've surveilled this turn, CARDNAME has deathtouch and and whenever Whenever this creature deals combat damage to a player, draw a card. +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Deathtouch | AddTrigger$ Trig1 | AddSVar$ TrigDraw | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've surveilled this turn, CARDNAME has deathtouch and "Whenever this creature deals combat damage to a player, draw a card." SVar:Trig1:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerDescription$ Whenever this creature deals combat damage to a player, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 SVar:X:Count$YouSurveilThisTurn From 747aca4342f17322753c95ba137a9d1cc5ed9147 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 17:58:16 +0800 Subject: [PATCH 101/143] - Fixed more cards --- forge-gui/res/cardsfolder/d/disinformation_campaign.txt | 2 +- forge-gui/res/cardsfolder/g/guild_summit.txt | 2 +- forge-gui/res/cardsfolder/r/ravenous_slime.txt | 2 +- forge-gui/res/cardsfolder/t/turntimber_sower.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt index 3af7a783fff..17be691d384 100644 --- a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt +++ b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt @@ -4,6 +4,6 @@ Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, you draw a card and each opponent discards a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBDiscard SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose -T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, return Disinformation Campaign to its owner's hand. +T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, return CARDNAME to its owner's hand. SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self Oracle:When Disinformation Campaign enters the battlefield, you draw a card and each opponent discards a card.\nWhenever you surveil, return Disinformation Campaign to its owner's hand. diff --git a/forge-gui/res/cardsfolder/g/guild_summit.txt b/forge-gui/res/cardsfolder/g/guild_summit.txt index 8d3e5aefb68..24608dbed49 100644 --- a/forge-gui/res/cardsfolder/g/guild_summit.txt +++ b/forge-gui/res/cardsfolder/g/guild_summit.txt @@ -6,7 +6,7 @@ SVar:GuestList:DB$ ChooseCard | Defined$ You | MinAmount$ 0 | Amount$ X | Refere SVar:TrigTap:DB$ Tap | Defined$ Remembered | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ Y | SubAbility$ DBCleanup | References$ Y SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Count$Valid Creature.YouCtrl +SVar:X:Count$Valid Gate.untapped+YouCtrl SVar:Y:Remembered$Amount T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Gate.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a Gate enters the battlefield under your control, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 diff --git a/forge-gui/res/cardsfolder/r/ravenous_slime.txt b/forge-gui/res/cardsfolder/r/ravenous_slime.txt index 39d9a888cb1..8714289faff 100644 --- a/forge-gui/res/cardsfolder/r/ravenous_slime.txt +++ b/forge-gui/res/cardsfolder/r/ravenous_slime.txt @@ -6,5 +6,5 @@ K:CantBeBlockedBy Creature.powerLE2 R:Event$ Moved | ActiveZones$ Battlefield | Origin$ Battlefield | Destination$ Graveyard | ValidLKI$ Creature.OppCtrl | ReplaceWith$ Exile | Description$ If a creature an opponent controls would die, instead exile it and put a number of +1/+1 counters equal to that creature's power on CARDNAME. SVar:Exile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBPutCounter SVar:DBPutCounter:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ X | References$ X | Defined$ Self -SVar:X:ReplacedCard$CardPower +SVar:X:ReplacedCardLKI$CardPower Oracle:Ravenous Slime can't be blocked by creatures with power 2 or less.\nIf a creature an opponent controls would die, instead exile it and put a number of +1/+1 counters equal to that creature's power on Ravenous Slime. diff --git a/forge-gui/res/cardsfolder/t/turntimber_sower.txt b/forge-gui/res/cardsfolder/t/turntimber_sower.txt index b8c871a0564..972f5da9136 100644 --- a/forge-gui/res/cardsfolder/t/turntimber_sower.txt +++ b/forge-gui/res/cardsfolder/t/turntimber_sower.txt @@ -2,7 +2,7 @@ Name:Turntimber Sower ManaCost:2 G Types:Creature Elf Druid PT:3/3 -T:Mode$ ChangesZone | ValidCard$ Land.YouOwn | Origin$ Any | Destination$ Graveyard | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever one or more land cards are put into your graveyard from anywhere, create a 0/1 green Plant creature token. +T:Mode$ ChangesZone | ValidCard$ Land.YouOwn | Origin$ Any | Destination$ Graveyard | Execute$ TrigToken | OncePerEffect$ True | TriggerZones$ Battlefield | TriggerDescription$ Whenever one or more land cards are put into your graveyard from anywhere, create a 0/1 green Plant creature token. SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Plant | TokenTypes$ Creature,Plant | TokenOwner$ You | TokenColors$ Green | TokenPower$ 0 | TokenToughness$ 1 | TokenImage$ g 0 1 plant c18 SVar:RemRandomDeck:True A:AB$ ChangeZone | Cost$ G Sac<3/Creature> | TgtPrompt$ Choose target land card in your graveyard | ValidTgts$ Land.YouCtrl | Origin$ Graveyard | Destination$ Hand | SpellDescription$ Return target land card from your graveyard to your hand. From 68de368c46d7f20f452c69c87a035baafc9db9f5 Mon Sep 17 00:00:00 2001 From: swordshine Date: Tue, 9 Oct 2018 20:51:00 +0800 Subject: [PATCH 102/143] - Commander Storm cards --- .../main/java/forge/game/card/CardFactoryUtil.java | 6 +++++- .../src/main/java/forge/game/player/Player.java | 8 ++++++++ .../src/main/java/forge/game/zone/MagicStack.java | 3 ++- forge-gui/res/cardsfolder/e/echo_storm.txt | 9 +++++++++ forge-gui/res/cardsfolder/e/empyrial_storm.txt | 8 ++++---- forge-gui/res/cardsfolder/f/fury_storm.txt | 8 ++++++++ forge-gui/res/cardsfolder/g/genesis_storm.txt | 8 ++++++++ forge-gui/res/cardsfolder/s/skull_storm.txt | 13 +++++++++++++ 8 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 forge-gui/res/cardsfolder/e/echo_storm.txt create mode 100644 forge-gui/res/cardsfolder/f/fury_storm.txt create mode 100644 forge-gui/res/cardsfolder/g/genesis_storm.txt create mode 100644 forge-gui/res/cardsfolder/s/skull_storm.txt diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 452f49d69ea..6f0b68c466f 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -842,7 +842,11 @@ public class CardFactoryUtil { // only used by Opal Palace, and it does add the trigger to the card return doXMath(cc.getCommanderCast(c), m, c); } - + + if (l[0].startsWith("TotalCommanderCastFromCommandZone")) { + return doXMath(cc.getTotalCommanderCast(), m, c); + } + if (l[0].startsWith("MostProminentCreatureType")) { String restriction = l[0].split(" ")[1]; CardCollection list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), restriction, cc, c); 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 56415c518bc..e4e5bfe45ce 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -2665,6 +2665,14 @@ public class Player extends GameEntity implements Comparable { commanderCast.put(commander, getCommanderCast(commander) + 1); } + public int getTotalCommanderCast() { + int result = 0; + for (Integer i : commanderCast.values()) { + result += i; + } + return result; + } + public boolean isPlayingExtraTurn() { return isPlayingExtraTrun; } diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 357cbfd44de..53e8e676291 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -368,7 +368,8 @@ public class MagicStack /* extends MyObservable */ implements Iterable Date: Tue, 9 Oct 2018 23:10:31 +0800 Subject: [PATCH 103/143] - Updated more scripts --- .../src/main/java/forge/game/cost/CostAdjustment.java | 9 --------- forge-gui/res/cardsfolder/m/myth_unbound.txt | 6 +++--- forge-gui/res/cardsfolder/t/thirsting_axe.txt | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java index 455949c58d5..1ad50114869 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java +++ b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java @@ -503,15 +503,6 @@ public class CostAdjustment { if (!sa.isSpell() || !((Spell) sa).isCastFaceDown()) { return false; } - } else if (type.equals("SelfMonstrosity")) { - if (!(sa instanceof AbilityActivated) || !sa.hasParam("Monstrosity") || sa.isTemporary()) { - // Nemesis of Mortals - return false; - } - } else if (type.equals("SelfIntrinsicAbility")) { - if (!(sa instanceof AbilityActivated) || sa.isReplacementAbility() || sa.isTemporary()) { - return false; - } } } if (params.containsKey("AffectedZone")) { diff --git a/forge-gui/res/cardsfolder/m/myth_unbound.txt b/forge-gui/res/cardsfolder/m/myth_unbound.txt index c304efb05e6..3855b57b5b0 100644 --- a/forge-gui/res/cardsfolder/m/myth_unbound.txt +++ b/forge-gui/res/cardsfolder/m/myth_unbound.txt @@ -1,9 +1,9 @@ Name:Myth Unbound ManaCost:2 G Types:Enchantment -S:Mode$ ReduceCost | ValidCard$ Card.IsCommander | Type$ Spell | Amount$ X | EffectZone$ Command | Description$ Your commander costs {1} less to cast for each time it's been cast from the command zone this game. -T:Mode$ ChangesZone | ValidCard$ Card.IsCommander+YouOwn | TriggerZones$ Command | Origin$ Any | Destination$ Command | Execute$ TrigDraw | TriggerDescription$ Whenever your commander is put into the command zone from anywhere, draw a card. +S:Mode$ ReduceCost | ValidCard$ Card.IsCommander+YouOwn | Type$ Spell | Amount$ AffectedX | Description$ Your commander costs {1} less to cast for each time it's been cast from the command zone this game. +T:Mode$ ChangesZoneAll | ValidCard$ Card.IsCommander+YouOwn | Origin$ Any | Destination$ Command | Execute$ TrigDraw | TriggerZones$ Battlefield | TriggerDescription$ Whenever your commander is put into the command zone from anywhere, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 -SVar:X:Count$CommanderCastFromCommandZone +SVar:AffectedX:Count$CommanderCastFromCommandZone SVar:RemRandomDeck:True Oracle:Your commander costs {1} less to cast for each time it's been cast from the command zone this game.\nWhenever your commander is put into the command zone from anywhere, draw a card. diff --git a/forge-gui/res/cardsfolder/t/thirsting_axe.txt b/forge-gui/res/cardsfolder/t/thirsting_axe.txt index a1b1326de42..cce75513ddd 100644 --- a/forge-gui/res/cardsfolder/t/thirsting_axe.txt +++ b/forge-gui/res/cardsfolder/t/thirsting_axe.txt @@ -3,7 +3,7 @@ ManaCost:3 Types:Artifact Equipment K:Equip:2 S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ 4 | Description$ Equipped creature gets +4/+0. -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | IsPresent$ Card.EquippedBy+notDealtCombatDamageThisTurn Creature | TriggerZone$ Battlefield | Execute$ SacrificeEquippee | TriggerDescription$ At the beginning of your end step, if equipped creature didn't deal combat damage to a creature this turn, sacrifice it. +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | IsPresent$ Card.EquippedBy+notDealtCombatDamageThisTurn Creature | TriggerZones$ Battlefield | Execute$ SacrificeEquippee | TriggerDescription$ At the beginning of your end step, if equipped creature didn't deal combat damage to a creature this turn, sacrifice it. SVar:SacrificeEquippee:DB$ SacrificeAll | Defined$ Equipped SVar:Picture:http://www.wizards.com/global/images/magic/general/thirsting_axe.jpg Oracle:Equipped creature gets +4/+0.\nAt the beginning of your end step, if equipped creature didn't deal combat damage to a creature this turn, sacrifice it.\nEquip {2} From 241ce0082300d7148f38a4a6fda626bee0ced4e3 Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Tue, 9 Oct 2018 17:35:49 -0600 Subject: [PATCH 104/143] fix Creeping Chill stack description Signed-off-by: Jamin W. Collins --- forge-gui/res/cardsfolder/c/creeping_chill.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/c/creeping_chill.txt b/forge-gui/res/cardsfolder/c/creeping_chill.txt index 48aaddf378e..8f9c247bf82 100644 --- a/forge-gui/res/cardsfolder/c/creeping_chill.txt +++ b/forge-gui/res/cardsfolder/c/creeping_chill.txt @@ -1,7 +1,7 @@ Name:Creeping Chill ManaCost:3 B Types:Sorcery -A:SP$ DamageAll | Cost$ 3 B | ValidPlayers$ Player.Opponent | NumDmg$ 3 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to each opponent and you gain 3 life. +A:SP$ DamageAll | StackDescription$ CARDNAME deals 3 damage to each opponent and | Cost$ 3 B | ValidPlayers$ Player.Opponent | NumDmg$ 3 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to each opponent and you gain 3 life. T:Mode$ ChangesZone | Origin$ Library | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigExile | OptionalDecider$ You | TriggerDescription$ When CARDNAME is put into your graveyard from your library, you may exile it. If you do, then a opponent and you gain 3 life. SVar:TrigExile:DB$ ChangeZone | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Exile | SubAbility$ DBDamage SVar:DBDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 3 | SubAbility$ DBGainLife From 8ac960168d1efdb7ad5100198dc693644cd1fb91 Mon Sep 17 00:00:00 2001 From: Chris H Date: Mon, 8 Oct 2018 23:35:53 -0400 Subject: [PATCH 105/143] Cross my fingers --- .../java/forge/ai/PlayerControllerAi.java | 3 +- .../src/main/java/forge/game/GameAction.java | 5 ++- .../java/forge/game/ability/AbilityUtils.java | 6 +-- .../java/forge/game/cost/CostPartMana.java | 8 +++- .../java/forge/game/cost/CostPayment.java | 9 +++- .../game/mana/IManaConversionMatrix.java | 11 ----- .../forge/game/mana/ManaConversionMatrix.java | 45 +++++++++++++++++++ .../game/mana/ManaConversionService.java | 36 --------------- .../main/java/forge/game/mana/ManaPool.java | 6 +-- .../forge/game/player/PlayerController.java | 9 +++- .../StaticAbilityContinuous.java | 3 +- .../util/PlayerControllerForTests.java | 3 +- .../input/InputPayManaOfCostPayment.java | 16 ++++++- .../src/main/java/forge/player/HumanPlay.java | 40 ++++++----------- .../forge/player/HumanPlaySpellAbility.java | 18 ++++---- .../forge/player/PlayerControllerHuman.java | 5 ++- 16 files changed, 122 insertions(+), 101 deletions(-) delete mode 100644 forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java create mode 100644 forge-game/src/main/java/forge/game/mana/ManaConversionMatrix.java delete mode 100644 forge-game/src/main/java/forge/game/mana/ManaConversionService.java diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 7a21356b85b..e0c144ea10f 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -26,6 +26,7 @@ import forge.game.card.CardPredicates.Presets; import forge.game.combat.Combat; import forge.game.cost.*; import forge.game.mana.Mana; +import forge.game.mana.ManaConversionMatrix; import forge.game.mana.ManaCostBeingPaid; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; @@ -892,7 +893,7 @@ public class PlayerControllerAi extends PlayerController { } @Override - public boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt /* ai needs hints as well */, boolean isActivatedSa) { + public boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt /* ai needs hints as well */, ManaConversionMatrix matrix, boolean isActivatedSa) { // TODO Auto-generated method stub ManaCostBeingPaid cost = isActivatedSa ? ComputerUtilMana.calculateManaCost(sa, false, 0) : new ManaCostBeingPaid(toPay); return ComputerUtilMana.payManaCost(cost, sa, player); diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index ab9d96e0a33..9d8bbcc0c9e 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -29,7 +29,6 @@ import forge.game.ability.effects.AttachEffect; import forge.game.card.*; import forge.game.event.*; import forge.game.keyword.KeywordInterface; -import forge.game.mana.ManaConversionService; import forge.game.player.GameLossReason; import forge.game.player.Player; import forge.game.replacement.ReplacementEffect; @@ -786,7 +785,9 @@ public class GameAction { game.getReplacementHandler().cleanUpTemporaryReplacements(); for (final Player p : game.getPlayers()) { - new ManaConversionService(p.getManaPool()).restoreColorReplacements(); + if (!game.getStack().isFrozen()) { + p.getManaPool().restoreColorReplacements(); + } p.clearStaticAbilities(); } 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 c980a16b4de..4bfbe40fd9c 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -18,7 +18,7 @@ import forge.game.ability.AbilityFactory.AbilityRecordType; import forge.game.card.*; import forge.game.cost.Cost; import forge.game.keyword.KeywordInterface; -import forge.game.mana.ManaConversionService; +import forge.game.mana.ManaConversionMatrix; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.player.PlayerCollection; @@ -1643,7 +1643,7 @@ public class AbilityUtils { return CardFactoryUtil.xCount(c, s2); } - public static final void applyManaColorConversion(final Player p, final Map params) { + public static final void applyManaColorConversion(ManaConversionMatrix matrix, final Map params) { String conversionType = params.get("ManaColorConversion"); // Choices are Additives(OR) or Restrictive(AND) @@ -1664,7 +1664,7 @@ public class AbilityUtils { } } // AdjustColorReplacement has two different matrices handling final mana conversion under the covers - new ManaConversionService(p.getManaPool()).adjustColorReplacement(ManaAtom.fromName(c), convertByte, additive); + matrix.adjustColorReplacement(ManaAtom.fromName(c), convertByte, additive); } } } diff --git a/forge-game/src/main/java/forge/game/cost/CostPartMana.java b/forge-game/src/main/java/forge/game/cost/CostPartMana.java index 81d94a288e2..1fd0b568131 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPartMana.java +++ b/forge-game/src/main/java/forge/game/cost/CostPartMana.java @@ -19,7 +19,9 @@ package forge.game.cost; import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; +import forge.game.mana.ManaConversionMatrix; import forge.game.player.Player; +import forge.game.spellability.AbilityActivated; import forge.game.spellability.SpellAbility; /** @@ -37,6 +39,9 @@ public class CostPartMana extends CostPart { private boolean isEnchantedCreatureCost = false; private final String restriction; + private ManaConversionMatrix cardMatrix = null; + public void setCardMatrix(ManaConversionMatrix mtrx) { cardMatrix = mtrx; } + public int paymentOrder() { return shouldPayLast() ? 200 : 0; } public boolean shouldPayLast() { @@ -147,8 +152,9 @@ public class CostPartMana extends CostPart { // TODO Auto-generated method stub sa.clearManaPaid(); + boolean isActivated = sa instanceof AbilityActivated; // decision not used here, the whole payment is interactive! - return payer.getController().payManaCost(this, sa, null, true); + return payer.getController().payManaCost(this, sa, null, cardMatrix, isActivated); } } diff --git a/forge-game/src/main/java/forge/game/cost/CostPayment.java b/forge-game/src/main/java/forge/game/cost/CostPayment.java index 9785a12a49b..ca002861212 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPayment.java +++ b/forge-game/src/main/java/forge/game/cost/CostPayment.java @@ -21,6 +21,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import forge.game.Game; import forge.game.card.Card; +import forge.game.mana.ManaConversionMatrix; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; @@ -35,7 +36,7 @@ import java.util.Map; * @author Forge * @version $Id$ */ -public class CostPayment { +public class CostPayment extends ManaConversionMatrix { private final Cost cost; private Cost adjustedCost; private final SpellAbility ability; @@ -70,6 +71,7 @@ public class CostPayment { this.cost = cost; this.adjustedCost = cost; this.ability = abil; + restoreColorReplacements(); } /** @@ -137,6 +139,11 @@ public class CostPayment { PaymentDecision pd = part.accept(decisionMaker); + // RIght before we start paying as decided, we need to transfer the CostPayments matrix over? + if (part instanceof CostPartMana) { + ((CostPartMana)part).setCardMatrix(this); + } + if (pd == null || !part.payAsDecided(decisionMaker.getPlayer(), pd, ability)) { game.costPaymentStack.pop(); // cost is resolved return false; diff --git a/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java b/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java deleted file mode 100644 index 0a047f766d7..00000000000 --- a/forge-game/src/main/java/forge/game/mana/IManaConversionMatrix.java +++ /dev/null @@ -1,11 +0,0 @@ -package forge.game.mana; - -import forge.card.mana.ManaAtom; - -public interface IManaConversionMatrix { - // Conversion matrix ORs byte values to make mana more payable - // Restrictive matrix ANDs byte values to make mana less payable - byte[] colorConversionMatrix = new byte[ManaAtom.MANATYPES.length]; - byte[] colorRestrictionMatrix = new byte[ManaAtom.MANATYPES.length]; - -} diff --git a/forge-game/src/main/java/forge/game/mana/ManaConversionMatrix.java b/forge-game/src/main/java/forge/game/mana/ManaConversionMatrix.java new file mode 100644 index 00000000000..e8caf56d774 --- /dev/null +++ b/forge-game/src/main/java/forge/game/mana/ManaConversionMatrix.java @@ -0,0 +1,45 @@ +package forge.game.mana; + +import forge.card.mana.ManaAtom; + +public class ManaConversionMatrix { + static byte[] identityMatrix = { ManaAtom.WHITE, ManaAtom.BLUE, ManaAtom.BLACK, ManaAtom.RED, ManaAtom.GREEN, ManaAtom.COLORLESS }; + + // Conversion matrix ORs byte values to make mana more payable + // Restrictive matrix ANDs byte values to make mana less payable + byte[] colorConversionMatrix = new byte[ManaAtom.MANATYPES.length]; + byte[] colorRestrictionMatrix = new byte[ManaAtom.MANATYPES.length]; + + public void adjustColorReplacement(byte originalColor, byte replacementColor, boolean additive) { + // Fix the index without hardcodes + int rowIdx = ManaAtom.getIndexOfFirstManaType(originalColor); + rowIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; + if (additive) { + colorConversionMatrix[rowIdx] |= replacementColor; + } + else { + colorRestrictionMatrix[rowIdx] &= replacementColor; + } + } + + public void applyCardMatrix(ManaConversionMatrix extraMatrix) { + for (int i = 0; i < colorConversionMatrix.length; i++) { + colorConversionMatrix[i] |= extraMatrix.colorConversionMatrix[i]; + } + + for (int i = 0; i < colorRestrictionMatrix.length; i++) { + colorRestrictionMatrix[i] &= extraMatrix.colorRestrictionMatrix[i]; + } + } + + public void restoreColorReplacements() { + // By default each color can only be paid by itself ( {G} -> {G}, {C} -> {C} + for (int i = 0; i < colorConversionMatrix.length; i++) { + colorConversionMatrix[i] = identityMatrix[i]; + } + // By default all mana types are unrestricted + for (int i = 0; i < colorRestrictionMatrix.length; i++) { + colorRestrictionMatrix[i] = ManaAtom.ALL_MANA_TYPES; + } + } +} \ No newline at end of file diff --git a/forge-game/src/main/java/forge/game/mana/ManaConversionService.java b/forge-game/src/main/java/forge/game/mana/ManaConversionService.java deleted file mode 100644 index 513d47cd5db..00000000000 --- a/forge-game/src/main/java/forge/game/mana/ManaConversionService.java +++ /dev/null @@ -1,36 +0,0 @@ -package forge.game.mana; - -import forge.card.mana.ManaAtom; - -public class ManaConversionService { - static byte[] identityMatrix = { ManaAtom.WHITE, ManaAtom.BLUE, ManaAtom.BLACK, ManaAtom.RED, ManaAtom.GREEN, ManaAtom.COLORLESS }; - - IManaConversionMatrix matrix; - - public ManaConversionService(IManaConversionMatrix mtrx) { - matrix = mtrx; - } - - public void adjustColorReplacement(byte originalColor, byte replacementColor, boolean additive) { - // Fix the index without hardcodes - int rowIdx = ManaAtom.getIndexOfFirstManaType(originalColor); - rowIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; - if (additive) { - matrix.colorConversionMatrix[rowIdx] |= replacementColor; - } - else { - matrix.colorRestrictionMatrix[rowIdx] &= replacementColor; - } - } - - public void restoreColorReplacements() { - // By default each color can only be paid by itself ( {G} -> {G}, {C} -> {C} - for (int i = 0; i < matrix.colorConversionMatrix.length; i++) { - matrix.colorConversionMatrix[i] = identityMatrix[i]; - } - // By default all mana types are unrestricted - for (int i = 0; i < matrix.colorRestrictionMatrix.length; i++) { - matrix.colorRestrictionMatrix[i] = ManaAtom.ALL_MANA_TYPES; - } - } -} diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index 0b0c4f3924c..de59a57ef21 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -47,13 +47,13 @@ import java.util.*; * @author Forge * @version $Id$ */ -public class ManaPool implements Iterable, IManaConversionMatrix { +public class ManaPool extends ManaConversionMatrix implements Iterable { private final Player owner; private final Multimap floatingMana = ArrayListMultimap.create(); public ManaPool(final Player player) { owner = player; - new ManaConversionService(this).restoreColorReplacements(); + restoreColorReplacements(); } public final int getAmountOfColor(final byte color) { @@ -352,7 +352,7 @@ public class ManaPool implements Iterable, IManaConversionMatrix { public byte getPossibleColorUses(byte color) { // Take the current conversion value, AND with restrictions to get mana usage int rowIdx = ManaAtom.getIndexOfFirstManaType(color); - int matrixIdx = rowIdx < 0 ? ManaConversionService.identityMatrix.length - 1 : rowIdx; + int matrixIdx = rowIdx < 0 ? identityMatrix.length - 1 : rowIdx; byte colorUse = colorConversionMatrix[matrixIdx]; colorUse &= colorRestrictionMatrix[matrixIdx]; diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 3d02dcea56d..d9a8c240f06 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -20,6 +20,7 @@ import forge.game.cost.Cost; import forge.game.cost.CostPart; import forge.game.cost.CostPartMana; import forge.game.mana.Mana; +import forge.game.mana.ManaConversionMatrix; import forge.game.replacement.ReplacementEffect; import forge.game.spellability.*; import forge.game.trigger.WrappedAbility; @@ -218,9 +219,13 @@ public abstract class PlayerController { public abstract void resetAtEndOfTurn(); // currently used by the AI to perform card memory cleanup public final boolean payManaCost(CostPartMana costPartMana, SpellAbility sa, String prompt, boolean isActivatedAbility) { - return payManaCost(costPartMana.getManaCostFor(sa), costPartMana, sa, prompt, isActivatedAbility); + return payManaCost(costPartMana, sa, prompt, null, isActivatedAbility); } - public abstract boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt, boolean isActivatedAbility); + + public final boolean payManaCost(CostPartMana costPartMana, SpellAbility sa, String prompt, ManaConversionMatrix matrix, boolean isActivatedAbility) { + return payManaCost(costPartMana.getManaCostFor(sa), costPartMana, sa, prompt, matrix, isActivatedAbility); + } + public abstract boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt, ManaConversionMatrix matrix, boolean isActivatedAbility); public abstract Map chooseCardsForConvokeOrImprovise(SpellAbility sa, ManaCost manaCost, CardCollectionView untappedCards, boolean improvise); diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java index 30cf2ca1749..63e71ca52a1 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityContinuous.java @@ -41,7 +41,6 @@ import forge.game.trigger.Trigger; import forge.game.trigger.TriggerHandler; import forge.game.zone.ZoneType; import forge.util.TextUtil; - import org.apache.commons.lang3.StringUtils; import java.util.*; @@ -481,7 +480,7 @@ public final class StaticAbilityContinuous { } if (params.containsKey("ManaColorConversion")) { - AbilityUtils.applyManaColorConversion(p, params); + AbilityUtils.applyManaColorConversion(p.getManaPool(), params); } } } diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index 0994bcc54f1..f086c277e20 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -30,6 +30,7 @@ import forge.game.cost.Cost; import forge.game.cost.CostPart; import forge.game.cost.CostPartMana; import forge.game.mana.Mana; +import forge.game.mana.ManaConversionMatrix; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.*; import forge.game.replacement.ReplacementEffect; @@ -586,7 +587,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt /* ai needs hints as well */, boolean isActivatedSa ) { + public boolean payManaCost(ManaCost toPay, CostPartMana costPartMana, SpellAbility sa, String prompt /* ai needs hints as well */, ManaConversionMatrix matrix, boolean isActivatedSa) { // TODO Auto-generated method stub ManaCostBeingPaid cost = new ManaCostBeingPaid(toPay); return ComputerUtilMana.payManaCost(cost, sa, player); diff --git a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java b/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java index 1f3fba6da55..15da37980f1 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java @@ -1,6 +1,7 @@ package forge.match.input; import forge.game.card.Card; +import forge.game.mana.ManaConversionMatrix; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -10,13 +11,16 @@ import forge.properties.ForgePreferences; import forge.util.ITriggerEvent; public class InputPayManaOfCostPayment extends InputPayMana { - public InputPayManaOfCostPayment(final PlayerControllerHuman controller, ManaCostBeingPaid cost, SpellAbility spellAbility, Player payer) { + public InputPayManaOfCostPayment(final PlayerControllerHuman controller, ManaCostBeingPaid cost, SpellAbility spellAbility, Player payer, ManaConversionMatrix matrix) { super(controller, spellAbility, payer); manaCost = cost; + extraMatrix = matrix; + applyMatrix(); } private static final long serialVersionUID = 3467312982164195091L; private int phyLifeToLose = 0; + private ManaConversionMatrix extraMatrix; @Override protected final void onPlayerSelected(Player selected, final ITriggerEvent triggerEvent) { @@ -47,6 +51,8 @@ public class InputPayManaOfCostPayment extends InputPayMana { final String displayMana = manaCost.toString(false, player.getManaPool()); final StringBuilder msg = new StringBuilder(); + applyMatrix(); + if (messagePrefix != null) { msg.append(messagePrefix).append("\n"); } @@ -71,4 +77,12 @@ public class InputPayManaOfCostPayment extends InputPayMana { return msg.toString(); } + + private void applyMatrix() { + if (extraMatrix == null) { + return; + } + + player.getManaPool().applyCardMatrix(extraMatrix); + } } diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java index fd96df17d56..8e7b84f42e3 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlay.java +++ b/forge-gui/src/main/java/forge/player/HumanPlay.java @@ -1,21 +1,8 @@ package forge.player; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import forge.game.cost.*; -import forge.game.spellability.LandAbility; -import forge.game.spellability.OptionalCostValue; -import forge.game.spellability.Spell; -import forge.util.TextUtil; -import org.apache.commons.lang3.StringUtils; - import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; - import forge.FThreads; import forge.card.mana.ManaCost; import forge.game.Game; @@ -25,30 +12,31 @@ import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.ability.effects.CharmEffect; import forge.game.ability.effects.FlipCoinEffect; -import forge.game.card.Card; -import forge.game.card.CardCollection; -import forge.game.card.CardCollectionView; -import forge.game.card.CardDamageMap; -import forge.game.card.CardLists; -import forge.game.card.CardPredicates; +import forge.game.card.*; import forge.game.card.CardPredicates.Presets; -import forge.game.card.CardView; -import forge.game.card.CounterType; +import forge.game.cost.*; +import forge.game.mana.ManaConversionMatrix; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.player.PlayerController; import forge.game.player.PlayerView; -import forge.game.spellability.SpellAbility; -import forge.game.spellability.TargetRestrictions; +import forge.game.spellability.*; import forge.game.trigger.TriggerType; import forge.game.zone.ZoneType; import forge.match.input.InputPayMana; import forge.match.input.InputPayManaOfCostPayment; import forge.match.input.InputPayManaSimple; import forge.match.input.InputSelectCardsFromList; -import forge.util.collect.FCollectionView; import forge.util.Lang; +import forge.util.TextUtil; +import forge.util.collect.FCollectionView; import forge.util.gui.SGuiChoose; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class HumanPlay { @@ -814,7 +802,7 @@ public class HumanPlay { return !manaInputCancelled; } - public static boolean payManaCost(final PlayerControllerHuman controller, final ManaCost realCost, final CostPartMana mc, final SpellAbility ability, final Player activator, String prompt, boolean isActivatedSa) { + public static boolean payManaCost(final PlayerControllerHuman controller, final ManaCost realCost, final CostPartMana mc, final SpellAbility ability, final Player activator, String prompt, ManaConversionMatrix matrix, boolean isActivatedSa) { final Card source = ability.getHostCard(); ManaCostBeingPaid toPay = new ManaCostBeingPaid(realCost, mc.getRestiction()); @@ -879,7 +867,7 @@ public class HumanPlay { } if (!toPay.isPaid()) { // Input is somehow clearing out the offering card? - inpPayment = new InputPayManaOfCostPayment(controller, toPay, ability, activator); + inpPayment = new InputPayManaOfCostPayment(controller, toPay, ability, activator, matrix); inpPayment.setMessagePrefix(prompt); inpPayment.showAndWait(); if (!inpPayment.isPaid()) { diff --git a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java index 02b4bf64ea8..c349a80de42 100644 --- a/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java +++ b/forge-gui/src/main/java/forge/player/HumanPlaySpellAbility.java @@ -32,7 +32,6 @@ import forge.game.cost.CostPart; import forge.game.cost.CostPartMana; import forge.game.cost.CostPayment; import forge.game.keyword.KeywordInterface; -import forge.game.mana.ManaConversionService; import forge.game.mana.ManaPool; import forge.game.player.Player; import forge.game.player.PlayerController; @@ -76,7 +75,6 @@ public class HumanPlaySpellAbility { final Card c = ability.getHostCard(); final CardPlayOption option = c.mayPlay(ability.getMayPlay()); - ManaConversionService service = new ManaConversionService(manapool); boolean manaTypeConversion = false; boolean manaColorConversion = false; @@ -118,13 +116,15 @@ public class HumanPlaySpellAbility { ability.resetPaidHash(); } + // TODO Apply this to the SAStackInstance instead of the Player if (manaTypeConversion) { - AbilityUtils.applyManaColorConversion(human, MagicColor.Constant.ANY_TYPE_CONVERSION); + AbilityUtils.applyManaColorConversion(payment, MagicColor.Constant.ANY_TYPE_CONVERSION); } else if (manaColorConversion) { - AbilityUtils.applyManaColorConversion(human, MagicColor.Constant.ANY_COLOR_CONVERSION); + AbilityUtils.applyManaColorConversion(payment, MagicColor.Constant.ANY_COLOR_CONVERSION); } + if (playerManaConversion) { - AbilityUtils.applyManaColorConversion(human, MagicColor.Constant.ANY_COLOR_CONVERSION); + AbilityUtils.applyManaColorConversion(manapool, MagicColor.Constant.ANY_COLOR_CONVERSION); human.incNumManaConversion(); } @@ -142,7 +142,7 @@ public class HumanPlaySpellAbility { } if (keywordColor) { - AbilityUtils.applyManaColorConversion(human, params); + AbilityUtils.applyManaColorConversion(payment, params); } } @@ -167,10 +167,10 @@ public class HumanPlaySpellAbility { } if (manaTypeConversion || manaColorConversion || keywordColor) { - service.restoreColorReplacements(); + manapool.restoreColorReplacements(); } if (playerManaConversion) { - service.restoreColorReplacements(); + manapool.restoreColorReplacements(); human.decNumManaConversion(); } return false; @@ -193,7 +193,7 @@ public class HumanPlaySpellAbility { clearTargets(ability); } if (manaTypeConversion || manaColorConversion || keywordColor) { - service.restoreColorReplacements(); + manapool.restoreColorReplacements(); } } return true; diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 49b32d26133..16b8ec32d52 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -31,6 +31,7 @@ import forge.game.cost.CostPart; import forge.game.cost.CostPartMana; import forge.game.keyword.Keyword; import forge.game.mana.Mana; +import forge.game.mana.ManaConversionMatrix; import forge.game.player.*; import forge.game.replacement.ReplacementEffect; import forge.game.replacement.ReplacementLayer; @@ -1702,8 +1703,8 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont @Override public boolean payManaCost(final ManaCost toPay, final CostPartMana costPartMana, final SpellAbility sa, - final String prompt, final boolean isActivatedSa) { - return HumanPlay.payManaCost(this, toPay, costPartMana, sa, player, prompt, isActivatedSa); + final String prompt, ManaConversionMatrix matrix, final boolean isActivatedSa) { + return HumanPlay.payManaCost(this, toPay, costPartMana, sa, player, prompt, matrix, isActivatedSa); } @Override From 830e0be85364f0ff28b665fe75af30a1337bd586 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 10 Oct 2018 10:08:59 +0800 Subject: [PATCH 106/143] - Fixed Enchanter's Bane --- forge-gui/res/cardsfolder/e/enchanters_bane.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/forge-gui/res/cardsfolder/e/enchanters_bane.txt b/forge-gui/res/cardsfolder/e/enchanters_bane.txt index 2033cd0b195..4ce6a84073c 100644 --- a/forge-gui/res/cardsfolder/e/enchanters_bane.txt +++ b/forge-gui/res/cardsfolder/e/enchanters_bane.txt @@ -1,7 +1,11 @@ Name:Enchanter's Bane ManaCost:1 R Types:Enchantment -T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of your end step, target enchantment deals damage equal to its converted mana cost to its controller unless that player sacrifices it. -SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment | NumDmg$ X | UnlessCost$ Sacrifice | UnlessPayer$ TargetedController | UnlessAI$ WhenPaid | References$ X -SVar:X:Targeted$CardManaCost +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigTarget | TriggerDescription$ At the beginning of your end step, target enchantment deals damage equal to its converted mana cost to its controller unless that player sacrifices it. +SVar:TrigTarget:DB$ Pump | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment | IsCurse$ True | ImprintCards$ Targeted | SubAbility$ DBSac +SVar:DBSac:DB$ Sacrifice | Defined$ TargetedController | SacValid$ TargetedCard.Self | Optional$ True | RememberSacrificed$ True | SubAbility$ TrigDamage +SVar:TrigDamage:DB$ DealDamage | NumDmg$ X | Defined$ ImprintedController | DamageSource$ Imprinted | References$ X,Y | ConditionCheckSVar$ Y | ConditionSVarCompare$ EQ0 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True +SVar:Y:Remembered$Amount +SVar:X:Imprinted$CardManaCost Oracle:At the beginning of your end step, target enchantment deals damage equal to its converted mana cost to its controller unless that player sacrifices it. From 7b6943bad55e6b4aa54aab07207294b5799406ae Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 10 Oct 2018 12:21:12 +0800 Subject: [PATCH 107/143] Added Isolated Watchtower --- forge-gui/res/cardsfolder/t/tectonic_edge.txt | 3 ++- .../res/cardsfolder/upcoming/isolated_watchtower.txt | 9 +++++++++ forge-gui/res/cardsfolder/w/weathered_wayfarer.txt | 5 +++-- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt diff --git a/forge-gui/res/cardsfolder/t/tectonic_edge.txt b/forge-gui/res/cardsfolder/t/tectonic_edge.txt index 7e2c2ca78a9..d0a9c80fbfb 100644 --- a/forge-gui/res/cardsfolder/t/tectonic_edge.txt +++ b/forge-gui/res/cardsfolder/t/tectonic_edge.txt @@ -2,7 +2,8 @@ Name:Tectonic Edge ManaCost:no cost Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. -A:AB$ Destroy | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target nonbasic land. | Cost$ 1 T Sac<1/CARDNAME> | IsPresent$ Land.OppCtrl | PresentCompare$ GE4 | AILogic$ LandForLand | SpellDescription$ Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands. +A:AB$ Destroy | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target nonbasic land. | Cost$ 1 T Sac<1/CARDNAME> | CheckSVar$ X | SVarCompare$ GE4 | References$ X | AILogic$ LandForLand | SpellDescription$ Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands. +SVar:X:PlayerCountOpponents$HighestValid Land.YouCtrl SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/tectonic_edge.jpg Oracle:{T}: Add {C}.\n{1}, {T}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands. diff --git a/forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt b/forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt new file mode 100644 index 00000000000..a4c4749c084 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt @@ -0,0 +1,9 @@ +Name:Isolated Watchtower +ManaCost:no cost +Types:Land +A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. +A:AB$ Scry | Cost$ 2 T | ScryNum$ 1 | SubAbility$ DBReveal | CheckSVar$ X | SVarCompare$ GEY | References$ X,Y | SpellDescription$ Scry 1, then you may reveal the top card of your library. If a basic land card is revealed this way, put it onto the battlefield tapped. Activate this ability only if an opponent controls at least two more lands than you. +SVar:DBReveal:DB$ Dig | Optional$ True | DigNum$ 1 | Reveal$ True | ChangeValid$ Land.Basic | DestinationZone$ Battlefield | Tapped$ True | DestinationZone2$ Library | LibraryPosition2$ 0 +SVar:X:PlayerCountOpponents$HighestValid Land.YouCtrl +SVar:Y:Count$Valid Land.YouCtrl/Plus.2 +Oracle:{T}: Add {C}.\n{2}, {T}: Scry 1, then you may reveal the top card of your library. If a basic land card is revealed this way, put it onto the battlefield tapped. Activate this ability only if an opponent controls at least two more lands than you. diff --git a/forge-gui/res/cardsfolder/w/weathered_wayfarer.txt b/forge-gui/res/cardsfolder/w/weathered_wayfarer.txt index aee88cebe0f..4d06df624fc 100644 --- a/forge-gui/res/cardsfolder/w/weathered_wayfarer.txt +++ b/forge-gui/res/cardsfolder/w/weathered_wayfarer.txt @@ -2,7 +2,8 @@ Name:Weathered Wayfarer ManaCost:W Types:Creature Human Nomad Cleric PT:1/1 -A:AB$ ChangeZone | Cost$ W T | Origin$ Library | Destination$ Hand | ChangeType$ Land | ChangeNum$ 1 | IsPresent$ Land.OppCtrl | PresentCompare$ GTX | References$ X | SpellDescription$ Search your library for a land card, reveal it, put it into your hand, then shuffle your library. Activate this ability only if an opponent controls more lands than you. -SVar:X:Count$Valid Land.YouCtrl +A:AB$ ChangeZone | Cost$ W T | Origin$ Library | Destination$ Hand | ChangeType$ Land | ChangeNum$ 1 | CheckSVar$ X | SVarCompare$ GTY | References$ X,Y | SpellDescription$ Search your library for a land card, reveal it, put it into your hand, then shuffle your library. Activate this ability only if an opponent controls more lands than you. +SVar:X:PlayerCountOpponents$HighestValid Land.YouCtrl +SVar:Y:Count$Valid Land.YouCtrl SVar:Picture:http://resources.wizards.com/magic/cards/9ed/en-us/card83311.jpg Oracle:{W}, {T}: Search your library for a land card, reveal it, put it into your hand, then shuffle your library. Activate this ability only if an opponent controls more lands than you. From 374d5b55cc4e60438a36e7398c6e23d140490fbe Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 10 Oct 2018 12:27:08 +0800 Subject: [PATCH 108/143] Added Geode Golem --- forge-gui/res/cardsfolder/g/geode_golem .txt | 8 ++++++++ .../cardsfolder/{upcoming => i}/isolated_watchtower.txt | 0 2 files changed, 8 insertions(+) create mode 100644 forge-gui/res/cardsfolder/g/geode_golem .txt rename forge-gui/res/cardsfolder/{upcoming => i}/isolated_watchtower.txt (100%) diff --git a/forge-gui/res/cardsfolder/g/geode_golem .txt b/forge-gui/res/cardsfolder/g/geode_golem .txt new file mode 100644 index 00000000000..81410cd0ff4 --- /dev/null +++ b/forge-gui/res/cardsfolder/g/geode_golem .txt @@ -0,0 +1,8 @@ +Name:Geode Golem +ManaCost:5 +Types:Artifact Creature Golem +PT:5/3 +K:Trample +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPlay | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may cast your commander from the command zone without paying its mana cost. (You still pay any additional costs.) +SVar:TrigPlay:DB$ Play | Valid$ Card.IsCommander+YouOwn | ValidZone$ Command | WithoutManaCost$ True | Optional$ True +Oracle:Trample\nWhenever Geode Golem deals combat damage to a player, you may cast your commander from the command zone without paying its mana cost. (You still pay any additional costs.) diff --git a/forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt b/forge-gui/res/cardsfolder/i/isolated_watchtower.txt similarity index 100% rename from forge-gui/res/cardsfolder/upcoming/isolated_watchtower.txt rename to forge-gui/res/cardsfolder/i/isolated_watchtower.txt From 6c9ba7694d656303d49a9d56d3a13e0c74ae2396 Mon Sep 17 00:00:00 2001 From: swordshine Date: Wed, 10 Oct 2018 18:43:07 +0800 Subject: [PATCH 109/143] - Added some cards --- .../java/forge/game/ability/effects/ManaEffect.java | 2 +- forge-gui/res/cardsfolder/a/azra_bladeseeker.txt | 8 ++++++++ forge-gui/res/cardsfolder/c/cheering_fanatic.txt | 10 ++++++++++ forge-gui/res/cardsfolder/s/sentinel_tower.txt | 7 +++++++ forge-gui/res/cardsfolder/s/stadium_vendors.txt | 9 +++++++++ forge-gui/res/cardsfolder/v/victory_chimes.txt | 2 +- 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 forge-gui/res/cardsfolder/a/azra_bladeseeker.txt create mode 100644 forge-gui/res/cardsfolder/c/cheering_fanatic.txt create mode 100644 forge-gui/res/cardsfolder/s/sentinel_tower.txt create mode 100644 forge-gui/res/cardsfolder/s/stadium_vendors.txt diff --git a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java index 5a1b9970375..7c598f302f0 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ManaEffect.java @@ -121,7 +121,7 @@ public class ManaEffect extends SpellAbilityEffect { mask |= MagicColor.fromName(colorsNeeded.charAt(nChar)); } colorMenu = mask == 0 ? ColorSet.ALL_COLORS : ColorSet.fromMask(mask); - byte val = act.getController().chooseColor("Select Mana to Produce", sa, colorMenu); + byte val = p.getController().chooseColor("Select Mana to Produce", sa, colorMenu); if (0 == val) { throw new RuntimeException("ManaEffect::resolve() /*any mana*/ - " + act + " color mana choice is empty for " + card.getName()); } diff --git a/forge-gui/res/cardsfolder/a/azra_bladeseeker.txt b/forge-gui/res/cardsfolder/a/azra_bladeseeker.txt new file mode 100644 index 00000000000..e128d0ea276 --- /dev/null +++ b/forge-gui/res/cardsfolder/a/azra_bladeseeker.txt @@ -0,0 +1,8 @@ +Name:Azra Bladeseeker +ManaCost:2 R +Types:Creature Azra Warrior +PT:3/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExploration | TriggerDescription$ When CARDNAME enters the battlefield, each player on your team may discard a card, then each player who discarded a card this way draws a card. +SVar:TrigExploration:DB$ RepeatEach | RepeatPlayers$ Player.YourTeam | RepeatSubAbility$ DBDiscardToDraw +SVar:DBDiscardToDraw:DB$ Draw | Defined$ Player.IsRemembered | UnlessCost$ Discard<1/Card> | UnlessPayer$ Player.IsRemembered | UnlessSwitched$ True +Oracle:When Azra Bladeseeker enters the battlefield, each player on your team may discard a card, then each player who discarded a card this way draws a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/c/cheering_fanatic.txt b/forge-gui/res/cardsfolder/c/cheering_fanatic.txt new file mode 100644 index 00000000000..e3fc1779b3f --- /dev/null +++ b/forge-gui/res/cardsfolder/c/cheering_fanatic.txt @@ -0,0 +1,10 @@ +Name:Cheering Fanatic +ManaCost:1 R +Types:Creature Goblin +PT:2/2 +T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigNameCard | TriggerDescription$ Whenever CARDNAME attacks, choose a card name. Spells with the chosen name cost {1} less to cast this turn. +SVar:TrigNameCard:DB$ NameCard | Defined$ You | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | StaticAbilities$ CFReduceCost +SVar:CFReduceCost:Mode$ ReduceCost | EffectZone$ Command | ValidCard$ Card.NamedCard | Type$ Spell | Amount$ 1 | Description$ Spells with the chosen name cost {1} less to cast this turn. +SVar:RemAIDeck:True +Oracle:Whenever Cheering Fanatic attacks, choose a card name. Spells with the chosen name cost {1} less to cast this turn. diff --git a/forge-gui/res/cardsfolder/s/sentinel_tower.txt b/forge-gui/res/cardsfolder/s/sentinel_tower.txt new file mode 100644 index 00000000000..50f305c32d6 --- /dev/null +++ b/forge-gui/res/cardsfolder/s/sentinel_tower.txt @@ -0,0 +1,7 @@ +Name:Sentinel Tower +ManaCost:4 +Types:Artifact +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | Execute$ TrigDmg | TriggerZones$ Battlefield | TriggerDescription$ Whenever an instant or sorcery spell is cast during your turn, CARDNAME deals damage to any target equal to 1 plus the number of instant and sorcery spells cast before that spell this turn. +SVar:TrigDmg:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | References$ X +SVar:X:TriggerObjectsCurrentCastSpells$Valid Sorcery,Instant +Oracle:Whenever an instant or sorcery spell is cast during your turn, Sentinel Tower deals damage to any target equal to 1 plus the number of instant and sorcery spells cast before that spell this turn. diff --git a/forge-gui/res/cardsfolder/s/stadium_vendors.txt b/forge-gui/res/cardsfolder/s/stadium_vendors.txt new file mode 100644 index 00000000000..25c391bdac9 --- /dev/null +++ b/forge-gui/res/cardsfolder/s/stadium_vendors.txt @@ -0,0 +1,9 @@ +Name:Stadium Vendors +ManaCost:3 R +Types:Creature Goblin +PT:3/3 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoosePlayer | TriggerDescription$ When CARDNAME enters the battlefield, choose a player. That player adds two mana of any one color they choose. +SVar:TrigChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player | ChoiceTitle$ Choose a player | AILogic$ Pump | SubAbility$ DBMana +SVar:DBMana:DB$ Mana | Produced$ Any | Defined$ ChosenPlayer | Amount$ 2 +Oracle:When Stadium Vendors enters the battlefield, choose a player. That player adds two mana of any one color they choose. diff --git a/forge-gui/res/cardsfolder/v/victory_chimes.txt b/forge-gui/res/cardsfolder/v/victory_chimes.txt index 308d832d7cb..f35a0eadea7 100644 --- a/forge-gui/res/cardsfolder/v/victory_chimes.txt +++ b/forge-gui/res/cardsfolder/v/victory_chimes.txt @@ -3,5 +3,5 @@ ManaCost:3 Types:Artifact K:CARDNAME untaps during each other player's untap step. A:AB$ ChoosePlayer | Cost$ T | Defined$ You | Choices$ Player | ChoiceTitle$ Choose an player | SubAbility$ DBMana | SpellDescription$ Choose a player. That player adds one mana of any color they choose. -SVar:DBMana:DB$ Mana | Produced$ Any | Defined$ ChosenPlayer +SVar:DBMana:DB$ Mana | Produced$ C | Defined$ ChosenPlayer Oracle:Untap Victory Chimes during each other player's untap step.\n{T}: A player of your choice adds {C}. From b51989685532e5874633ff1533f2064d0ae18452 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 11 Oct 2018 08:09:48 +0200 Subject: [PATCH 110/143] CloneEffect: now with NewName and GainThisAbility --- .../main/java/forge/game/CardTraitBase.java | 2 +- .../game/ability/effects/CloneEffect.java | 20 +++++++++++++++++++ .../game/replacement/ReplacementHandler.java | 5 +++-- .../forge/game/spellability/SpellAbility.java | 20 +++++++++++++++++++ .../forge/game/trigger/WrappedAbility.java | 12 +++++------ 5 files changed, 50 insertions(+), 9 deletions(-) diff --git a/forge-game/src/main/java/forge/game/CardTraitBase.java b/forge-game/src/main/java/forge/game/CardTraitBase.java index 59c47275a5d..aacc1d389e1 100644 --- a/forge-game/src/main/java/forge/game/CardTraitBase.java +++ b/forge-game/src/main/java/forge/game/CardTraitBase.java @@ -62,7 +62,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView { * Keys that should not changed */ private static final ImmutableList noChangeKeys = ImmutableList.builder() - .add("TokenScript", "LegacyImage", "TokenImage").build(); + .add("TokenScript", "LegacyImage", "TokenImage", "NewName").build(); /** * Sets the temporary. * diff --git a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java index aa0ab0f4215..0dccc07d374 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CloneEffect.java @@ -113,6 +113,7 @@ public class CloneEffect extends SpellAbilityEffect { } final boolean keepName = sa.hasParam("KeepName"); + final String newName = sa.getParamOrDefault("NewName", null); final String originalName = tgtCard.getName(); final boolean copyingSelf = (tgtCard == cardToCopy); final boolean isTransformed = cardToCopy.getCurrentStateName() == CardStateName.Transformed || cardToCopy.getCurrentStateName() == CardStateName.Meld; @@ -157,9 +158,13 @@ public class CloneEffect extends SpellAbilityEffect { } // restore name if it should be unchanged + // this should only be used for Sakashima the Impostor Avatar if (keepName) { tgtCard.setName(originalName); } + if (newName != null) { + tgtCard.setName(newName); + } // If target is a flip card, also set characteristics of the flipped // state. @@ -168,6 +173,9 @@ public class CloneEffect extends SpellAbilityEffect { if (keepName) { flippedState.setName(originalName); } + if (newName != null) { + tgtCard.setName(newName); + } //keep the Clone card image for the cloned card flippedState.setImageKey(imageFileName); } @@ -350,6 +358,18 @@ public class CloneEffect extends SpellAbilityEffect { tgtCard.setBasePower(4); tgtCard.setBaseToughness(4); } + + if (sa.hasParam("GainThisAbility")) { + SpellAbility root = sa.getRootAbility(); + + if (root.isTrigger() && root.getTrigger() != null) { + tgtCard.addTrigger(root.getTrigger().copy(tgtCard, false)); + } else if (root.isReplacementAbility()) { + tgtCard.addReplacementEffect(root.getReplacementEffect().copy(tgtCard, false)); + } else { + tgtCard.addSpellAbility(root.copy(tgtCard, false)); + } + } } } diff --git a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java index b1843c1850d..f08e0b660a7 100644 --- a/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java +++ b/forge-game/src/main/java/forge/game/replacement/ReplacementHandler.java @@ -181,7 +181,7 @@ public class ReplacementHandler { final String effectAbString = host.getSVar(effectSVar); // TODO: the source of replacement effect should be the source of the original effect effectSA = AbilityFactory.getAbility(effectAbString, host); - effectSA.setTrigger(true); + //effectSA.setTrigger(true); SpellAbility tailend = effectSA; do { @@ -209,8 +209,9 @@ public class ReplacementHandler { if (replacementEffect.isIntrinsic()) { effectSA.setIntrinsic(true); effectSA.changeText(); - effectSA.setReplacementAbility(true); } + effectSA.setReplacementAbility(true); + effectSA.setReplacementEffect(replacementEffect); } // Decider gets to choose whether or not to apply the replacement. diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index 9eddd745b4a..3e866b91fb1 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -38,7 +38,9 @@ import forge.game.cost.CostRemoveCounter; import forge.game.keyword.Keyword; import forge.game.mana.Mana; import forge.game.player.Player; +import forge.game.replacement.ReplacementEffect; import forge.game.staticability.StaticAbility; +import forge.game.trigger.Trigger; import forge.game.trigger.TriggerType; import forge.game.trigger.WrappedAbility; import forge.util.Expressions; @@ -87,8 +89,10 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit private boolean basicSpell = true; private boolean trigger = false; + private Trigger triggerObj = null; private boolean optionalTrigger = false; private boolean replacementAbility = false; + private ReplacementEffect replacementEffect = null; private int sourceTrigger = -1; private List triggerRemembered = Lists.newArrayList(); @@ -913,6 +917,14 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit trigger = trigger0; } + public Trigger getTrigger() { + return triggerObj; + } + + public void setTrigger(final Trigger t) { + triggerObj = t; + } + public boolean isOptionalTrigger() { return optionalTrigger; } @@ -934,6 +946,14 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit replacementAbility = replacement; } + public ReplacementEffect getReplacementEffect() { + return replacementEffect; + } + + public void setReplacementEffect(final ReplacementEffect re) { + this.replacementEffect = re; + } + public boolean isMandatory() { return false; } diff --git a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java index 927895756f3..b59580cd366 100644 --- a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java +++ b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java @@ -27,14 +27,13 @@ import com.google.common.collect.Lists; public class WrappedAbility extends Ability { private final SpellAbility sa; - private final Trigger regtrig; private final Player decider; boolean mandatory = false; public WrappedAbility(final Trigger regtrig0, final SpellAbility sa0, final Player decider0) { super(regtrig0.getHostCard(), ManaCost.ZERO, sa0.getView()); - regtrig = regtrig0; + setTrigger(regtrig0); sa = sa0; decider = decider0; sa.setDescription(this.getStackDescription()); @@ -49,10 +48,6 @@ public class WrappedAbility extends Ability { return true; } - public Trigger getTrigger() { - return regtrig; - } - public Player getDecider() { return decider; } @@ -218,6 +213,7 @@ public class WrappedAbility extends Ability { @Override public String getStackDescription() { + final Trigger regtrig = getTrigger(); final StringBuilder sb = new StringBuilder(regtrig.replaceAbilityText(regtrig.toString(true), this)); if (usesTargeting()) { sb.append(" (Targeting "); @@ -445,6 +441,7 @@ public class WrappedAbility extends Ability { @Override public void resolve() { final Game game = sa.getActivatingPlayer().getGame(); + final Trigger regtrig = getTrigger(); Map triggerParams = regtrig.getMapParams(); if (!(regtrig instanceof TriggerAlways) && !triggerParams.containsKey("NoResolvingCheck")) { @@ -476,6 +473,9 @@ public class WrappedAbility extends Ability { return; } + // set Trigger + sa.setTrigger(regtrig); + if (!triggerParams.containsKey("NoTimestampCheck")) { timestampCheck(); } From 6b2a56534cf3389d5bd136e5813c12c8c0be115b Mon Sep 17 00:00:00 2001 From: Hanmac Date: Thu, 11 Oct 2018 08:11:26 +0200 Subject: [PATCH 111/143] cards: update Cards with GainThisAbility --- forge-gui/res/cardsfolder/a/artisan_of_forms.txt | 3 +-- forge-gui/res/cardsfolder/c/cemetery_puca.txt | 3 +-- forge-gui/res/cardsfolder/c/cryptoplasm.txt | 3 +-- forge-gui/res/cardsfolder/d/dimir_doppelganger.txt | 3 +-- forge-gui/res/cardsfolder/l/lazav_dimir_mastermind.txt | 7 +++---- forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt | 3 +-- forge-gui/res/cardsfolder/m/mizzium_transreliquat.txt | 3 +-- forge-gui/res/cardsfolder/s/sakashima_the_impostor.txt | 4 ++-- forge-gui/res/cardsfolder/t/thespians_stage.txt | 3 +-- forge-gui/res/cardsfolder/u/unstable_shapeshifter.txt | 3 +-- forge-gui/res/cardsfolder/v/vesuvan_doppelganger.txt | 2 +- 11 files changed, 14 insertions(+), 23 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/artisan_of_forms.txt b/forge-gui/res/cardsfolder/a/artisan_of_forms.txt index 2f6cc398319..dd18a306a46 100644 --- a/forge-gui/res/cardsfolder/a/artisan_of_forms.txt +++ b/forge-gui/res/cardsfolder/a/artisan_of_forms.txt @@ -3,8 +3,7 @@ ManaCost:1 U Types:Creature Human Wizard PT:1/1 T:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigArtisanCopy | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, you may have CARDNAME become a copy of target creature and gain this ability. -SVar:TrigArtisanCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy | Optional$ True | AddTriggers$ ArtisanHeroicTrig | AddSVars$ TrigArtisanCopy,ArtisanHeroicTrig -SVar:ArtisanHeroicTrig:Mode$ SpellCast | ValidActivatingPlayer$ You | TargetsValid$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigArtisanCopy | TriggerDescription$ Heroic — Whenever you cast a spell that targets CARDNAME, you may have CARDNAME become a copy of target creature and gain this ability. +SVar:TrigArtisanCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy | Optional$ True | GainThisAbility$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/artisan_of_forms.jpg Oracle:Heroic — Whenever you cast a spell that targets Artisan of Forms, you may have Artisan of Forms become a copy of target creature and gain this ability. diff --git a/forge-gui/res/cardsfolder/c/cemetery_puca.txt b/forge-gui/res/cardsfolder/c/cemetery_puca.txt index 4d7ca05cb20..32881d40dc6 100644 --- a/forge-gui/res/cardsfolder/c/cemetery_puca.txt +++ b/forge-gui/res/cardsfolder/c/cemetery_puca.txt @@ -4,8 +4,7 @@ Types:Creature Shapeshifter PT:1/2 # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ CemeteryPucaCopy | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, CARDNAME becomes a copy of that creature and gains this ability. -SVar:CemeteryPucaCopy:AB$ Clone | Cost$ 1 | Defined$ TriggeredCardLKICopy | AddTriggers$ CemeteryPucaDiesTrig | AddSVars$ CemeteryPucaCopy,CemeteryPucaDiesTrig -SVar:CemeteryPucaDiesTrig:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | Execute$ CemeteryPucaCopy | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, CARDNAME becomes a copy of that creature and gains this ability. +SVar:CemeteryPucaCopy:AB$ Clone | Cost$ 1 | Defined$ TriggeredCardLKICopy | GainThisAbility$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cemetery_puca.jpg Oracle:Whenever a creature dies, you may pay {1}. If you do, Cemetery Puca becomes a copy of that creature and gains this ability. diff --git a/forge-gui/res/cardsfolder/c/cryptoplasm.txt b/forge-gui/res/cardsfolder/c/cryptoplasm.txt index 914174829f3..48335f9a6f7 100644 --- a/forge-gui/res/cardsfolder/c/cryptoplasm.txt +++ b/forge-gui/res/cardsfolder/c/cryptoplasm.txt @@ -4,8 +4,7 @@ Types:Creature Shapeshifter PT:2/2 # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CryptoplasmCopy | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may have CARDNAME become a copy of another target creature. If you do, CARDNAME gains this ability. -SVar:CryptoplasmCopy:DB$ Clone | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature to copy. | Optional$ True | AddTriggers$ CryptoplasmUpkeepTrig | AddSVars$ CryptoplasmCopy,CryptoplasmUpkeepTrig -SVar:CryptoplasmUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ CryptoplasmCopy | TriggerDescription$ At the beginning of your upkeep, you may have CARDNAME become a copy of another target creature. If you do, CARDNAME gains this ability. +SVar:CryptoplasmCopy:DB$ Clone | ValidTgts$ Creature.Other | TgtPrompt$ Select another target creature to copy. | Optional$ True | GainThisAbility$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/cryptoplasm.jpg Oracle:At the beginning of your upkeep, you may have Cryptoplasm become a copy of another target creature. If you do, Cryptoplasm gains this ability. diff --git a/forge-gui/res/cardsfolder/d/dimir_doppelganger.txt b/forge-gui/res/cardsfolder/d/dimir_doppelganger.txt index c8b7f3799a0..f12f300c4ba 100644 --- a/forge-gui/res/cardsfolder/d/dimir_doppelganger.txt +++ b/forge-gui/res/cardsfolder/d/dimir_doppelganger.txt @@ -4,8 +4,7 @@ Types:Creature Shapeshifter PT:0/2 # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone A:AB$ ChangeZone | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ DDCopy | SpellDescription$ Exile target creature card from a graveyard. CARDNAME becomes a copy of that card and gains this ability. -SVar:DDCopy:DB$ Clone | Defined$ Remembered | AddAbilities$ DDAbility | AddSVars$ DDAbility,DDCopy -SVar:DDAbility:AB$ ChangeZone | Cost$ 1 U B | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ DDCopy | SpellDescription$ Exile target creature card from a graveyard. CARDNAME becomes a copy of that card and gains this ability. +SVar:DDCopy:DB$ Clone | Defined$ Remembered | GainThisAbility$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/dimir_doppelganger.jpg Oracle:{1}{U}{B}: Exile target creature card from a graveyard. Dimir Doppelganger becomes a copy of that card and gains this ability. diff --git a/forge-gui/res/cardsfolder/l/lazav_dimir_mastermind.txt b/forge-gui/res/cardsfolder/l/lazav_dimir_mastermind.txt index 547047a35a0..a0bc6751f89 100644 --- a/forge-gui/res/cardsfolder/l/lazav_dimir_mastermind.txt +++ b/forge-gui/res/cardsfolder/l/lazav_dimir_mastermind.txt @@ -3,9 +3,8 @@ ManaCost:U U B B Types:Legendary Creature Shapeshifter PT:3/3 K:Hexproof -T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.nonToken+OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponent's graveyard from anywhere, you may have CARDNAME become a copy of that card except it's name is still CARDNAME, it's legendary in addition to it's other types, and it gains hexproof and this ability. -SVar:LazavCopy:DB$ Clone | Defined$ TriggeredCard | KeepName$ True | AddTypes$ Legendary | AddTriggers$ LazavTrig | AddKeywords$ Hexproof | AddSVars$ LazavCopy,LazavTrig -SVar:LazavTrig:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponent's graveyard from anywhere, you may have CARDNAME become a copy of that card except it's name is still CARDNAME, it's legendary in addition to it's other types, and it gains hexproof and this ability. +T:Mode$ ChangesZone | Origin$ Any | Destination$ Graveyard | ValidCard$ Creature.nonToken+OppOwn | TriggerZones$ Battlefield | Execute$ LazavCopy | OptionalDecider$ You | TriggerDescription$ Whenever a creature card is put into an opponent’s graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card, except its name is Lazav, Dimir Mastermind, it’s legendary in addition to its other types, and it has hexproof and this ability. +SVar:LazavCopy:DB$ Clone | Defined$ TriggeredCard | NewName$ Lazav, Dimir Mastermind | AddTypes$ Legendary | AddKeywords$ Hexproof | GainThisAbility$ True SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/lazav_dimir_mastermind.jpg -Oracle:Hexproof\nWhenever a creature card is put into an opponent's graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card except its name is still Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it gains hexproof and this ability. +Oracle:Hexproof\nWhenever a creature card is put into an opponent’s graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card, except its name is Lazav, Dimir Mastermind, it’s legendary in addition to its other types, and it has hexproof and this ability. diff --git a/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt index e8f35ff5bfa..57ab5d3a9fa 100644 --- a/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt +++ b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt @@ -4,7 +4,6 @@ Types:Legendary Creature Shapeshifter PT:1/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, scry 1. (To scry 1, look at the top card of your library. You may put that card into your graveyard.) SVar:TrigSurveil:DB$ Surveil | Amount$ 1 -A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. -SVar:LazavTrig:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | KeepName$ True | AddSVars$ X,LazavTrig | AddAbilities$ LazavTrig | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. +A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | NewName$ Lazav, the Multifarious | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. SVar:X:Targeted$CardManaCost Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. diff --git a/forge-gui/res/cardsfolder/m/mizzium_transreliquat.txt b/forge-gui/res/cardsfolder/m/mizzium_transreliquat.txt index 0888a589650..6799f7d0476 100644 --- a/forge-gui/res/cardsfolder/m/mizzium_transreliquat.txt +++ b/forge-gui/res/cardsfolder/m/mizzium_transreliquat.txt @@ -2,8 +2,7 @@ Name:Mizzium Transreliquat ManaCost:3 Types:Artifact A:AB$ Clone | Cost$ 3 | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy until end of turn. | Duration$ UntilEndOfTurn | SpellDescription$ CARDNAME becomes a copy of target artifact until end of turn. -A:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | AddAbilities$ MizzCopy | AddSVars$ MizzCopy | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability. -SVar:MizzCopy:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | AddAbilities$ MizzCopy | AddSVars$ MizzCopy | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability. +A:AB$ Clone | Cost$ 1 U R | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to copy. | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target artifact and gains this ability. SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/mizzium_transreliquat.jpg Oracle:{3}: Mizzium Transreliquat becomes a copy of target artifact until end of turn.\n{1}{U}{R}: Mizzium Transreliquat becomes a copy of target artifact and gains this ability. diff --git a/forge-gui/res/cardsfolder/s/sakashima_the_impostor.txt b/forge-gui/res/cardsfolder/s/sakashima_the_impostor.txt index db012d45c58..e9bdc7f16f1 100644 --- a/forge-gui/res/cardsfolder/s/sakashima_the_impostor.txt +++ b/forge-gui/res/cardsfolder/s/sakashima_the_impostor.txt @@ -4,8 +4,8 @@ Types:Legendary Creature Human Rogue PT:3/1 # Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone K:ETBReplacement:Copy:DBCopy:Optional -SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | KeepName$ True | AddTypes$ Legendary | AddAbilities$ ReturnSakashima | AddSVars$ TrigReturnSak | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except its name is still CARDNAME, it's legendary in addition to its other types, and it gains "{2}{U}{U}: Return CARDNAME to its owner's hand at the beginning of the next end step." +SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | NewName$ Sakashima the Impostor | AddTypes$ Legendary | AddAbilities$ ReturnSakashima | AddSVars$ TrigReturnSak | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except its name is Sakashima the Impostor, it’s legendary in addition to its other types, and it has “{2}{U}{U}: Return this creature to its owner’s hand at the beginning of the next end step.” SVar:ReturnSakashima:AB$ DelayedTrigger | Cost$ 2 U U | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturnSak | SpellDescription$ Return CARDNAME to it's owners hand at the beginning of the next end step. SVar:TrigReturnSak:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand SVar:Picture:http://www.wizards.com/global/images/magic/general/sakashima_the_impostor.jpg -Oracle:You may have Sakashima the Impostor enter the battlefield as a copy of any creature on the battlefield, except its name is still Sakashima the Impostor, it's legendary in addition to its other types, and it gains "{2}{U}{U}: Return Sakashima the Impostor to its owner's hand at the beginning of the next end step." +Oracle:You may have Sakashima the Impostor enter the battlefield as a copy of any creature on the battlefield, except its name is Sakashima the Impostor, it’s legendary in addition to its other types, and it has “{2}{U}{U}: Return this creature to its owner’s hand at the beginning of the next end step.” diff --git a/forge-gui/res/cardsfolder/t/thespians_stage.txt b/forge-gui/res/cardsfolder/t/thespians_stage.txt index e6673ff8a1d..2a2b3db4896 100644 --- a/forge-gui/res/cardsfolder/t/thespians_stage.txt +++ b/forge-gui/res/cardsfolder/t/thespians_stage.txt @@ -2,8 +2,7 @@ Name:Thespian's Stage ManaCost:no cost Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. -A:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | AddAbilities$ ThespianCopy | AddSVars$ ThespianCopy | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability. -SVar:ThespianCopy:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | AddAbilities$ ThespianCopy | AddSVars$ ThespianCopy | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability. +A:AB$ Clone | Cost$ 2 T | ValidTgts$ Land | TgtPrompt$ Select target land to copy. | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target land and gains this ability. SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/thespians_stage.jpg Oracle:{T}: Add {C}.\n{2}, {T}: Thespian's Stage becomes a copy of target land and gains this ability. diff --git a/forge-gui/res/cardsfolder/u/unstable_shapeshifter.txt b/forge-gui/res/cardsfolder/u/unstable_shapeshifter.txt index af412f12b6b..f78b867c0e5 100644 --- a/forge-gui/res/cardsfolder/u/unstable_shapeshifter.txt +++ b/forge-gui/res/cardsfolder/u/unstable_shapeshifter.txt @@ -4,7 +4,6 @@ Types:Creature Shapeshifter PT:0/1 # Make SVars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ USCopy | TriggerDescription$ Whenever another creature enters the battlefield, CARDNAME becomes a copy of that creature and gains this ability. -SVar:USCopy:DB$ Clone | Defined$ TriggeredCard | AddTriggers$ USTrig | AddSVars$ USCopy,USTrig -SVar:USTrig:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other | TriggerZones$ Battlefield | Execute$ USCopy | TriggerDescription$ Whenever another creature enters the battlefield, CARDNAME becomes a copy of that creature and gains this ability. +SVar:USCopy:DB$ Clone | Defined$ TriggeredCard | GainThisAbility$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/unstable_shapeshifter.jpg Oracle:Whenever another creature enters the battlefield, Unstable Shapeshifter becomes a copy of that creature and gains this ability. diff --git a/forge-gui/res/cardsfolder/v/vesuvan_doppelganger.txt b/forge-gui/res/cardsfolder/v/vesuvan_doppelganger.txt index 2b6a6aba2b3..5412e1a6616 100644 --- a/forge-gui/res/cardsfolder/v/vesuvan_doppelganger.txt +++ b/forge-gui/res/cardsfolder/v/vesuvan_doppelganger.txt @@ -7,7 +7,7 @@ K:ETBReplacement:Copy:ChooseCreature:Optional SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | RememberChosen$ True | AILogic$ Clone | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability." SVar:DBCopy:DB$ Clone | Defined$ Remembered | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig SVar:VesDopUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ VesDopCopy | TriggerDescription$ At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability. -SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig | SubAbility$ DBCleanup +SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | Colors$ Blue | OverwriteColors$ True | GainThisAbility$ True | SubAbility$ DBCleanup SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/vesuvan_doppelganger.jpg Oracle:You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability." From e78028a2541ac36c9fe725ef1c1031e886eae081 Mon Sep 17 00:00:00 2001 From: swordshine Date: Thu, 11 Oct 2018 16:41:41 +0800 Subject: [PATCH 112/143] - Updated Genesis Storm --- .../game/ability/effects/DigUntilEffect.java | 20 ++++++++++++------- forge-gui/res/cardsfolder/g/genesis_storm.txt | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java index 5615f70b2de..46935002a90 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigUntilEffect.java @@ -105,6 +105,7 @@ public class DigUntilEffect extends SpellAbilityEffect { final ZoneType digSite = sa.hasParam("DigZone") ? ZoneType.smartValueOf(sa.getParam("DigZone")) : ZoneType.Library; boolean shuffle = sa.hasParam("Shuffle"); final boolean optional = sa.hasParam("Optional"); + final boolean optionalFound = sa.hasParam("OptionalFoundMove"); for (final Player p : getTargetPlayers(sa)) { if (p == null) { @@ -156,15 +157,20 @@ public class DigUntilEffect extends SpellAbilityEffect { final Iterator itr = found.iterator(); while (itr.hasNext()) { final Card c = itr.next(); - if (sa.hasParam("GainControl") && foundDest.equals(ZoneType.Battlefield)) { - c.setController(sa.getActivatingPlayer(), game.getNextTimestamp()); - game.getAction().moveTo(c.getController().getZone(foundDest), c, sa); - } else if (sa.hasParam("NoMoveFound") && foundDest.equals(ZoneType.Library)) { - //Don't do anything + if (optionalFound && !p.getController().confirmAction(sa, null, + "Do you want to put that card to " + foundDest.name() + "?")) { + continue; } else { - game.getAction().moveTo(foundDest, c, foundLibPos, sa); + if (sa.hasParam("GainControl") && foundDest.equals(ZoneType.Battlefield)) { + c.setController(sa.getActivatingPlayer(), game.getNextTimestamp()); + game.getAction().moveTo(c.getController().getZone(foundDest), c, sa); + } else if (sa.hasParam("NoMoveFound") && foundDest.equals(ZoneType.Library)) { + //Don't do anything + } else { + game.getAction().moveTo(foundDest, c, foundLibPos, sa); + } + revealed.remove(c); } - revealed.remove(c); } } diff --git a/forge-gui/res/cardsfolder/g/genesis_storm.txt b/forge-gui/res/cardsfolder/g/genesis_storm.txt index 46632f96e5e..ed19640f1f0 100644 --- a/forge-gui/res/cardsfolder/g/genesis_storm.txt +++ b/forge-gui/res/cardsfolder/g/genesis_storm.txt @@ -4,5 +4,5 @@ Types:Sorcery T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigCopy | TriggerDescription$ When you cast this spell, copy it for each time you've cast your commander from the command zone this game. SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Amount$ X | References$ X SVar:X:Count$TotalCommanderCastFromCommandZone -A:SP$ DigUntil | Cost$ 4 G G | Valid$ Permanent.nonland | ValidDescription$ nonland permanent | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SpellDescription$ Reveal cards from the top of your library until you reveal a nonland permanent card. You may put that card onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield on the bottom of your library in a random order. +A:SP$ DigUntil | Cost$ 4 G G | Valid$ Permanent.nonland | ValidDescription$ nonland permanent | FoundDestination$ Battlefield | OptionalFoundMove$ True | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SpellDescription$ Reveal cards from the top of your library until you reveal a nonland permanent card. You may put that card onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield on the bottom of your library in a random order. Oracle:When you cast this spell, copy it for each time you've cast your commander from the command zone this game. You may choose new targets for the copies.\nReveal cards from the top of your library until you reveal a nonland permanent card. You may put that card onto the battlefield. Then put all cards revealed this way that weren't put onto the battlefield on the bottom of your library in a random order. From 6924e8073b028632b54dfb083e31289e24038fdd Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 12 Oct 2018 08:50:41 +0300 Subject: [PATCH 113/143] - Added AI draft deck hints for Guilds of Ravnica. --- forge-gui/res/cardsfolder/a/arclight_phoenix.txt | 1 + forge-gui/res/cardsfolder/a/assure_assemble.txt | 3 ++- forge-gui/res/cardsfolder/a/attendant_of_vraska.txt | 1 + forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt | 1 + forge-gui/res/cardsfolder/b/barging_sergeant.txt | 1 + forge-gui/res/cardsfolder/b/barrier_of_bones.txt | 1 + forge-gui/res/cardsfolder/b/beacon_bolt.txt | 1 + forge-gui/res/cardsfolder/b/beamsplitter_mage.txt | 1 + forge-gui/res/cardsfolder/b/blade_instructor.txt | 1 + forge-gui/res/cardsfolder/b/boros_challenger.txt | 1 + forge-gui/res/cardsfolder/c/chamber_sentry.txt | 1 + forge-gui/res/cardsfolder/c/charnel_troll.txt | 2 ++ forge-gui/res/cardsfolder/c/citywatch_sphinx.txt | 1 + forge-gui/res/cardsfolder/c/connive_concoct.txt | 1 + forge-gui/res/cardsfolder/c/crackling_drake.txt | 1 + forge-gui/res/cardsfolder/d/darkblade_agent.txt | 1 + forge-gui/res/cardsfolder/d/dazzling_lights.txt | 1 + forge-gui/res/cardsfolder/d/deadly_visit.txt | 1 + forge-gui/res/cardsfolder/d/dimir_informant.txt | 1 + forge-gui/res/cardsfolder/d/dimir_spybug.txt | 2 ++ forge-gui/res/cardsfolder/d/discovery_dispersal.txt | 1 + forge-gui/res/cardsfolder/d/disinformation_campaign.txt | 1 + forge-gui/res/cardsfolder/d/doom_whisperer.txt | 1 + forge-gui/res/cardsfolder/d/dream_eater.txt | 1 + forge-gui/res/cardsfolder/d/drowned_secrets.txt | 1 + forge-gui/res/cardsfolder/e/electrostatic_field.txt | 1 + forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt | 1 + forge-gui/res/cardsfolder/e/enhanced_surveillance.txt | 1 + forge-gui/res/cardsfolder/e/erratic_cyclops.txt | 1 + forge-gui/res/cardsfolder/f/find_finality.txt | 1 + forge-gui/res/cardsfolder/f/fire_urchin.txt | 1 + forge-gui/res/cardsfolder/f/fireminds_research.txt | 1 + forge-gui/res/cardsfolder/g/gird_for_battle.txt | 1 + forge-gui/res/cardsfolder/g/glowspore_shaman.txt | 1 + forge-gui/res/cardsfolder/g/goblin_banneret.txt | 1 + forge-gui/res/cardsfolder/g/golgari_raiders.txt | 1 + forge-gui/res/cardsfolder/g/gruesome_menagerie.txt | 1 + forge-gui/res/cardsfolder/g/guildmages_forum.txt | 1 + forge-gui/res/cardsfolder/h/haazda_marshal.txt | 1 + forge-gui/res/cardsfolder/h/hammer_dropper.txt | 1 + forge-gui/res/cardsfolder/h/house_guildmage.txt | 1 + forge-gui/res/cardsfolder/i/invert_invent.txt | 1 + forge-gui/res/cardsfolder/i/ironshell_beetle.txt | 1 + forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt | 1 + forge-gui/res/cardsfolder/k/knight_of_autumn.txt | 1 + forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt | 1 + forge-gui/res/cardsfolder/l/league_guildmage.txt | 1 + forge-gui/res/cardsfolder/l/leapfrog.txt | 1 + forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt | 1 + forge-gui/res/cardsfolder/m/mephitic_vapors.txt | 1 + forge-gui/res/cardsfolder/m/mission_briefing.txt | 1 + forge-gui/res/cardsfolder/m/murmuring_mystic.txt | 2 ++ forge-gui/res/cardsfolder/n/nightveil_sprite.txt | 1 + forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt | 1 + forge-gui/res/cardsfolder/n/notion_rain.txt | 1 + forge-gui/res/cardsfolder/p/parhelion_patrol.txt | 1 + forge-gui/res/cardsfolder/p/pelt_collector.txt | 1 + forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt | 1 + forge-gui/res/cardsfolder/p/price_of_fame.txt | 1 + forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt | 2 ++ forge-gui/res/cardsfolder/r/rals_staticaster.txt | 1 + forge-gui/res/cardsfolder/r/rampaging_monument.txt | 1 + forge-gui/res/cardsfolder/r/rhizome_lurcher.txt | 1 + forge-gui/res/cardsfolder/r/runaway_steam_kin.txt | 1 + forge-gui/res/cardsfolder/s/sinister_sabotage.txt | 1 + forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt | 2 +- forge-gui/res/cardsfolder/s/sprouting_renewal.txt | 1 + forge-gui/res/cardsfolder/s/sunhome_stalwart.txt | 1 + forge-gui/res/cardsfolder/t/tajic_legions_edge.txt | 1 + forge-gui/res/cardsfolder/t/thought_erasure.txt | 1 + forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt | 2 ++ forge-gui/res/cardsfolder/t/thousand_year_storm.txt | 1 + forge-gui/res/cardsfolder/t/trostani_discordant.txt | 1 + forge-gui/res/cardsfolder/t/truefire_captain.txt | 1 + forge-gui/res/cardsfolder/u/unexplained_disappearance.txt | 1 + forge-gui/res/cardsfolder/v/venerated_loxodon.txt | 1 + forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt | 1 + forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt | 1 + forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt | 1 + forge-gui/res/cardsfolder/w/wee_dragonauts.txt | 1 + forge-gui/res/cardsfolder/w/whisper_agent.txt | 1 + forge-gui/res/cardsfolder/w/whispering_snitch.txt | 1 + forge-gui/res/cardsfolder/w/wojek_bodyguard.txt | 1 + forge-gui/res/cardsfolder/w/worldsoul_colossus.txt | 1 + 84 files changed, 90 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt index f5ea5df6ed9..026a1c61c69 100644 --- a/forge-gui/res/cardsfolder/a/arclight_phoenix.txt +++ b/forge-gui/res/cardsfolder/a/arclight_phoenix.txt @@ -7,4 +7,5 @@ K:Haste T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Graveyard | CheckSVar$ X | SVarCompare$ GE3 | Execute$ TrigReturn | OptionalDecider$ You | TriggerDescription$ At the beginning of combat on your turn, if you've cast three or more instant and sorcery spells this turn, you may return CARDNAME from your graveyard to the battlefield. SVar:TrigReturn:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl +DeckNeeds:Type$Instant|Sorcery Oracle:Flying, Haste\nAt the beginning of combat on your turn, if you've cast three or more instant and sorcery spells this turn, you may return Arclight Phoenix from your graveyard to the battlefield. diff --git a/forge-gui/res/cardsfolder/a/assure_assemble.txt b/forge-gui/res/cardsfolder/a/assure_assemble.txt index eb67e2204a3..092e54f9cc1 100644 --- a/forge-gui/res/cardsfolder/a/assure_assemble.txt +++ b/forge-gui/res/cardsfolder/a/assure_assemble.txt @@ -4,6 +4,7 @@ Types:Instant AlternateMode:Split A:SP$ PutCounter | Cost$ G/W G/W | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPump | SpellDescription$ Put a +1/+1 counter on target creature. It gains indestructible until end of turn. SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Indestructible +DeckHas:Ability$Counters & Ability$Token Oracle:Put a +1/+1 counter on target creature. It gains indestructible until end of turn. ALTERNATE @@ -12,5 +13,5 @@ Name:Assemble ManaCost:4 G W Types:Instant A:SP$ Token | Cost$ 4 G W | TokenAmount$ 3 | TokenScript$ wg_2_2_elf_knight_vigilance | SpellDescription$ Create three 2/2 green and white Elf Knight creature tokens with vigilance. -DeckHas:Ability$Token +DeckHas:Ability$Counters & Ability$Token Oracle:Create three 2/2 green and white Elf Knight creature tokens with vigilance. diff --git a/forge-gui/res/cardsfolder/a/attendant_of_vraska.txt b/forge-gui/res/cardsfolder/a/attendant_of_vraska.txt index d31ef72a28f..f02fdcd7d51 100644 --- a/forge-gui/res/cardsfolder/a/attendant_of_vraska.txt +++ b/forge-gui/res/cardsfolder/a/attendant_of_vraska.txt @@ -5,4 +5,5 @@ PT:3/3 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | IsPresent$ Planeswalker.Vraska+YouCtrl | Execute$ TrigGainLife | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, if you control a Vraska planeswalker, you gain life equal to CARDNAME's power. SVar:TrigGainLife:DB$GainLife | Defined$ You | LifeAmount$ X | References$ X SVar:X:TriggeredCard$CardPower +DeckNeeds:Type$Vraska Oracle:When Attendant of Vraska dies, if you control a Vraska planeswalker, you gain life equal to Attendant of Vraska's power. diff --git a/forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt b/forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt index 5920bd231d3..b2a20a416f1 100644 --- a/forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt +++ b/forge-gui/res/cardsfolder/a/aurelia_exemplar_of_justice.txt @@ -9,4 +9,5 @@ SVar:DBPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | NumAtt$ 2 | RememberTargets SVar:DBPump1:DB$Pump | Defined$ Remembered | KW$ Trample | ConditionDefined$ Remembered | ConditionPresent$ Card.Red | SubAbility$ DBPump2 SVar:DBPump2:DB$Pump | Defined$ Remembered | KW$ Vigilance | ConditionDefined$ Remembered | ConditionPresent$ Card.White | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +DeckHas:Ability$Counters Oracle:Flying\nMentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\nAt the beginning of combat on your turn, choose up to one target creature you control. Until end of turn, that creature gets +2/+0, gains trample if it's red, and gains vigilance if it's white. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/b/barging_sergeant.txt b/forge-gui/res/cardsfolder/b/barging_sergeant.txt index e0e24d93c6f..595eb1697f0 100644 --- a/forge-gui/res/cardsfolder/b/barging_sergeant.txt +++ b/forge-gui/res/cardsfolder/b/barging_sergeant.txt @@ -4,4 +4,5 @@ Types:Creature Minotaur Soldier PT:4/2 K:Haste K:Mentor +DeckHas:Ability$Counters Oracle:Haste\nMentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) diff --git a/forge-gui/res/cardsfolder/b/barrier_of_bones.txt b/forge-gui/res/cardsfolder/b/barrier_of_bones.txt index 4c092100c9f..ae3c126b121 100644 --- a/forge-gui/res/cardsfolder/b/barrier_of_bones.txt +++ b/forge-gui/res/cardsfolder/b/barrier_of_bones.txt @@ -5,4 +5,5 @@ PT:0/3 K:Defender T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) SVar:TrigSurveil:DB$ Surveil | Amount$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Defender\nWhen Barrier of Bones enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) diff --git a/forge-gui/res/cardsfolder/b/beacon_bolt.txt b/forge-gui/res/cardsfolder/b/beacon_bolt.txt index 76ebddf053b..52b23157897 100644 --- a/forge-gui/res/cardsfolder/b/beacon_bolt.txt +++ b/forge-gui/res/cardsfolder/b/beacon_bolt.txt @@ -5,4 +5,5 @@ K:Jump-start A:SP$ DealDamage | Cost$ 1 U R | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ X | References$ X,Y | SpellDescription$ CARDNAME deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard. SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn/Plus.Y SVar:Y:Count$ValidExile Instant.YouOwn,Sorcery.YouOwn +DeckHints:Type$Instant|Sorcery Oracle:Beacon Bolt deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard.\nJump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.) diff --git a/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt index 66f2bc8fe77..a83584e2a6c 100644 --- a/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt +++ b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt @@ -4,4 +4,5 @@ Types:Creature Vedalken Wizard PT:2/2 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | IsSingleTarget$ True | TargetsValid$ Card.Self | CanTargetOtherCondition$ Creature.YouCtrl | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery that targets only CARDNAME, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ You | CopyForEachCanTarget$ Creature.YouCtrl | ChooseOnlyOne$ True +DeckHints:Ability$Instant|Sorcery Oracle:Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. diff --git a/forge-gui/res/cardsfolder/b/blade_instructor.txt b/forge-gui/res/cardsfolder/b/blade_instructor.txt index a8969b6e857..dc0478e63b6 100644 --- a/forge-gui/res/cardsfolder/b/blade_instructor.txt +++ b/forge-gui/res/cardsfolder/b/blade_instructor.txt @@ -3,4 +3,5 @@ ManaCost:2 W Types:Creature Human Soldier PT:3/1 K:Mentor +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) diff --git a/forge-gui/res/cardsfolder/b/boros_challenger.txt b/forge-gui/res/cardsfolder/b/boros_challenger.txt index 5e2da20eaf6..4106f4ddc17 100644 --- a/forge-gui/res/cardsfolder/b/boros_challenger.txt +++ b/forge-gui/res/cardsfolder/b/boros_challenger.txt @@ -4,4 +4,5 @@ Types:Creature Human Soldier PT:2/3 K:Mentor A:AB$ Pump | Cost$ 2 R W | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn. +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\n{2}{R}{W}: Boros Challenger gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/c/chamber_sentry.txt b/forge-gui/res/cardsfolder/c/chamber_sentry.txt index 3816568e85d..cbaa7f301cb 100644 --- a/forge-gui/res/cardsfolder/c/chamber_sentry.txt +++ b/forge-gui/res/cardsfolder/c/chamber_sentry.txt @@ -8,4 +8,5 @@ A:AB$ DealDamage | Announce$ X | Cost$ X T SubCounter | ValidTgts$ Creat SVar:X:Count$xPaid A:AB$ ChangeZone | Cost$ W U B R G | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | SpellDescription$ Return CARDNAME from your graveyard to your hand. SVar:DiscardMe:1 +DeckHas:Ability$Counters Oracle:Chamber Sentry enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.\n{X}, {T}, Remove X +1/+1 counters from Chamber Sentry: It deals X damage to any target.\n{W}{U}{B}{R}{G}: Return Chamber Sentry from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/c/charnel_troll.txt b/forge-gui/res/cardsfolder/c/charnel_troll.txt index 6ce2cf5f619..ab2e2318e6d 100644 --- a/forge-gui/res/cardsfolder/c/charnel_troll.txt +++ b/forge-gui/res/cardsfolder/c/charnel_troll.txt @@ -10,4 +10,6 @@ SVar:DBSac:DB$ Sacrifice | SacValid# Self | ConditionDefined$ Remembered | Condi SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True A:AB$ PutCounter | Cost$ B G Discard<1/Creature> | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on CARDNAME. SVar:RemRandomDeck:True +DeckNeeds:Ability$Graveyard +DeckHas:Ability$Counters Oracle:Trample\nAt the beginning of your upkeep, exile a creature card from your graveyard. If you do, put a +1/+1 counter on Charnel Troll. Otherwise sacrifice it.\n{B}{G}, Discard a creature card: Put a +1/+1 counter on Charnel Troll. diff --git a/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt b/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt index 1e759f40719..9f332935c10 100644 --- a/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt +++ b/forge-gui/res/cardsfolder/c/citywatch_sphinx.txt @@ -5,4 +5,5 @@ PT:5/4 K:Flying T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME dies, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) SVar:TrigSurveil:DB$Surveil | Defined$ You | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flying\nWhen Citywatch Sphinx dies, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/c/connive_concoct.txt b/forge-gui/res/cardsfolder/c/connive_concoct.txt index 3bc243c7625..1e45b353c28 100644 --- a/forge-gui/res/cardsfolder/c/connive_concoct.txt +++ b/forge-gui/res/cardsfolder/c/connive_concoct.txt @@ -12,4 +12,5 @@ ManaCost:3 U B Types:Sorcery A:SP$ Surveil | Cost$ 3 U B | Amount$ 3 | SubAbility$ DBReturn | SpellDescription$ Surveil 3, then return a creature card from your graveyard to the battlefield. SVar:DBReturn:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature.YouCtrl | ChangeNum$ 1 | Hidden$ True +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Surveil 3, then return a creature card from your graveyard to the battlefield. diff --git a/forge-gui/res/cardsfolder/c/crackling_drake.txt b/forge-gui/res/cardsfolder/c/crackling_drake.txt index a5a51fb25ad..9cdd75848e4 100644 --- a/forge-gui/res/cardsfolder/c/crackling_drake.txt +++ b/forge-gui/res/cardsfolder/c/crackling_drake.txt @@ -9,4 +9,5 @@ SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 SVar:GraveCount:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn SVar:ExileCount:Count$ValidExile Instant.YouOwn,Sorcery.YouOwn SVar:X:SVar$GraveCount/Plus.ExileCount +DeckNeeds:Type$Instant|Sorcery Oracle:Flying\nCrackling Drake's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard.\nWhen Crackling Drake enters the battlefield, draw a card. diff --git a/forge-gui/res/cardsfolder/d/darkblade_agent.txt b/forge-gui/res/cardsfolder/d/darkblade_agent.txt index a3ce8c4a4ae..d3a1b48e76e 100644 --- a/forge-gui/res/cardsfolder/d/darkblade_agent.txt +++ b/forge-gui/res/cardsfolder/d/darkblade_agent.txt @@ -6,4 +6,5 @@ S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Deathtouch | AddTrigger$ SVar:Trig1:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDraw | TriggerDescription$ Whenever this creature deals combat damage to a player, draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 SVar:X:Count$YouSurveilThisTurn +DeckHints:Ability$Surveil Oracle:As long as you've surveilled this turn, Darkblade Agent has deathtouch and "Whenever this creature deals combat damage to a player, draw a card." diff --git a/forge-gui/res/cardsfolder/d/dazzling_lights.txt b/forge-gui/res/cardsfolder/d/dazzling_lights.txt index 76b9fdb89d6..8745c904b1a 100644 --- a/forge-gui/res/cardsfolder/d/dazzling_lights.txt +++ b/forge-gui/res/cardsfolder/d/dazzling_lights.txt @@ -3,4 +3,5 @@ ManaCost:U Types:Instant A:SP$ Pump | Cost$ U | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -3 | IsCurse$ True | Subability$ DBSurveil | SpellDescription$ Target creature gets -3/-0 until end of turn. Surveil 2. SVar:DBSurveil:DB$ Surveil | Defined$ You | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Target creature gets -3/-0 until end of turn.\nSurveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/d/deadly_visit.txt b/forge-gui/res/cardsfolder/d/deadly_visit.txt index 26792d9be3a..d211ef31cfb 100644 --- a/forge-gui/res/cardsfolder/d/deadly_visit.txt +++ b/forge-gui/res/cardsfolder/d/deadly_visit.txt @@ -3,4 +3,5 @@ ManaCost:3 B B Types:Sorcery A:SP$ Destroy | Cost$ 3 B B | ValidTgts$ Creature | TgtPrompt$ Select target creature | Subability$ DBSurveil | SpellDescription$ Destroy target creature. Surveil 2 (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) SVar:DBSurveil:DB$ Surveil | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Destroy target creature.\nSurveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/d/dimir_informant.txt b/forge-gui/res/cardsfolder/d/dimir_informant.txt index 5cb18e6f8a1..cd9104c4b42 100644 --- a/forge-gui/res/cardsfolder/d/dimir_informant.txt +++ b/forge-gui/res/cardsfolder/d/dimir_informant.txt @@ -4,4 +4,5 @@ Types:Creature Human Rogue PT:1/4 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, then surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) SVar:TrigSurveil:DB$Surveil | Defined$ You | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:When Dimir Informant enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/d/dimir_spybug.txt b/forge-gui/res/cardsfolder/d/dimir_spybug.txt index a0ab2b0ff30..4880d824087 100644 --- a/forge-gui/res/cardsfolder/d/dimir_spybug.txt +++ b/forge-gui/res/cardsfolder/d/dimir_spybug.txt @@ -6,4 +6,6 @@ K:Flying K:Menace T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, put a +1/+1 counter on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +DeckHints:Ability$Surveil +DeckHas:Ability$Counters Oracle:Flying\nMenace (This creature can't be blocked except by two or more creatures.)\nWhenever you surveil, put a +1/+1 counter on Dimir Spybug. diff --git a/forge-gui/res/cardsfolder/d/discovery_dispersal.txt b/forge-gui/res/cardsfolder/d/discovery_dispersal.txt index 43176fc47dd..bcf7d315b13 100644 --- a/forge-gui/res/cardsfolder/d/discovery_dispersal.txt +++ b/forge-gui/res/cardsfolder/d/discovery_dispersal.txt @@ -4,6 +4,7 @@ Types:Sorcery AlternateMode:Split A:SP$ Surveil | Cost$ 1 U/B | Amount$ 2 | SubAbility$ DBDraw | SpellDescription$ Surveil 2, then draw a card. SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Surveil 2, then draw a card. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) ALTERNATE diff --git a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt index 17be691d384..4f4cc7c1072 100644 --- a/forge-gui/res/cardsfolder/d/disinformation_campaign.txt +++ b/forge-gui/res/cardsfolder/d/disinformation_campaign.txt @@ -6,4 +6,5 @@ SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBDiscard SVar:DBDiscard:DB$ Discard | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, return CARDNAME to its owner's hand. SVar:TrigBounce:DB$ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self +DeckHints:Ability$Surveil Oracle:When Disinformation Campaign enters the battlefield, you draw a card and each opponent discards a card.\nWhenever you surveil, return Disinformation Campaign to its owner's hand. diff --git a/forge-gui/res/cardsfolder/d/doom_whisperer.txt b/forge-gui/res/cardsfolder/d/doom_whisperer.txt index ea6bdf4f39a..469af683112 100644 --- a/forge-gui/res/cardsfolder/d/doom_whisperer.txt +++ b/forge-gui/res/cardsfolder/d/doom_whisperer.txt @@ -5,4 +5,5 @@ PT:6/6 K:Flying K:Trample A:AB$ Surveil | Cost$ PayLife<2> | Amount$ 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flying, trample\nPay 2 life: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/d/dream_eater.txt b/forge-gui/res/cardsfolder/d/dream_eater.txt index fddbdb90ac9..99a06b972ac 100644 --- a/forge-gui/res/cardsfolder/d/dream_eater.txt +++ b/forge-gui/res/cardsfolder/d/dream_eater.txt @@ -8,4 +8,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigSurveil:DB$ Surveil | Defined$ You | Amount$ 4 | SubAbility$ TrigImmediate SVar:TrigImmediate:DB$ ImmediateTrigger | Execute$ TrigBounce | OptionalDecider$ You | TriggerDescription$ When you do, you may return target nonland permanent an opponent controls to its owner's hand. SVar:TrigBounce:DB$ ChangeZone | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Select target nonland permanent an opponent controls | Origin$ Battlefield | Destination$ Hand +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flash\nFlying\nWhen Dream Eater enters the battlefield, surveil 4. When you do, you may return target nonland permanent an opponent controls to its owner's hand. (To surveil 4, look at the top four cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/d/drowned_secrets.txt b/forge-gui/res/cardsfolder/d/drowned_secrets.txt index 2bf1b893bc0..55e3fdba195 100644 --- a/forge-gui/res/cardsfolder/d/drowned_secrets.txt +++ b/forge-gui/res/cardsfolder/d/drowned_secrets.txt @@ -4,4 +4,5 @@ Types:Enchantment T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you cast a blue spell, target player puts the top two cards if their library into their graveyard. SVar:TrigMill:DB$Mill | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Select target player SVar:BuffedBy:Card.Blue +DeckHas:Ability$Graveyard Oracle:Whenever you cast a blue spell, target player puts the top two cards if their library into their graveyard. diff --git a/forge-gui/res/cardsfolder/e/electrostatic_field.txt b/forge-gui/res/cardsfolder/e/electrostatic_field.txt index fbb8fdd3b2d..21044c85700 100644 --- a/forge-gui/res/cardsfolder/e/electrostatic_field.txt +++ b/forge-gui/res/cardsfolder/e/electrostatic_field.txt @@ -5,4 +5,5 @@ PT:0/4 K:Defender T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ When you cast an instant or sorcery spell, CARDNAME deals 1 damage to each opponent. SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 1 +DeckHints:Type$Instant|Sorcery Oracle:Defender\nWhen you cast an instant or sorcery spell, Electrostatic Field deals 1 damage to each opponent. diff --git a/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt b/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt index 44da9af66e5..4c998fe93ce 100644 --- a/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt +++ b/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt @@ -4,4 +4,5 @@ Types:Legendary Creature Elf Cleric PT:2/2 T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME becomes tapped, create a 1/1 white Soldier creature token with lifelink. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink +DeckHas:Ability$Token Oracle:Whenever Emmara, Soul of the Accord becomes tapped, create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/e/enhanced_surveillance.txt b/forge-gui/res/cardsfolder/e/enhanced_surveillance.txt index d8bb73b521c..e1f2f07462c 100644 --- a/forge-gui/res/cardsfolder/e/enhanced_surveillance.txt +++ b/forge-gui/res/cardsfolder/e/enhanced_surveillance.txt @@ -5,4 +5,5 @@ R:Event$ Surveil | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ Ad SVar:AddTwoMore:DB$ ReplaceEffect | VarName$ SurveilNum | VarValue$ X | References$ X SVar:X:ReplaceCount$SurveilNum/Plus.2 A:AB$ ChangeZoneAll | Cost$ Exile<1/CARDNAME> | ChangeType$ Card.YouOwn | Origin$ Graveyard | Destination$ Library | Shuffle$ True | SpellDescription$ Shuffle your graveyard into your library. +DeckNeeds:Ability$Surveil Oracle:You may look at an additional two cards each you surveil.\nExile Enhanced Surveillance: Shuffle your graveyard into your library. diff --git a/forge-gui/res/cardsfolder/e/erratic_cyclops.txt b/forge-gui/res/cardsfolder/e/erratic_cyclops.txt index 269664a5423..38c790f9854 100644 --- a/forge-gui/res/cardsfolder/e/erratic_cyclops.txt +++ b/forge-gui/res/cardsfolder/e/erratic_cyclops.txt @@ -7,4 +7,5 @@ T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | Tr SVar:TrigPump:DB$ Pump | NumAtt$ +X | References$ X SVar:X:TriggerCount$CastSACMC SVar:BuffedBy:Instant,Sorcery +DeckHints:Type$Instant|Sorcery Oracle:Trample\nWhenever you cast an instant or sorcery spell, Erratic Cyclops gets +X/+0 until end of turn, where X is that spell's converted mana cost. diff --git a/forge-gui/res/cardsfolder/f/find_finality.txt b/forge-gui/res/cardsfolder/f/find_finality.txt index 28a07e6d50f..2b85d2313fd 100644 --- a/forge-gui/res/cardsfolder/f/find_finality.txt +++ b/forge-gui/res/cardsfolder/f/find_finality.txt @@ -14,4 +14,5 @@ A:SP$ ChooseCard | Cost$ 4 B G | Defined$ You | Amount$ 1 | MinAmount$ 0 | Choic SVar:DBPutCounter:DB$ PutCounter | Defined$ ChosenCard | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBPumpAll SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature | NumAtt$ -4 | NumDef$ -4 | IsCurse$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +DeckHas:Ability$Counters Oracle:You may put two +1/+1 counters on a creature you control. Then all creatures get -4/-4 until end of turn. diff --git a/forge-gui/res/cardsfolder/f/fire_urchin.txt b/forge-gui/res/cardsfolder/f/fire_urchin.txt index 4e4e22a9def..02cc79bb57e 100644 --- a/forge-gui/res/cardsfolder/f/fire_urchin.txt +++ b/forge-gui/res/cardsfolder/f/fire_urchin.txt @@ -6,4 +6,5 @@ K:Trample T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast an instant or sorcery spell, CARDNAME gets +1/+0 until end of turn. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 SVar:BuffedBy:Instant,Sorcery +DeckHints:Type$Instant|Sorcery Oracle:Trample\nWhenever you cast an instant or sorcery spell, Fire Urchin gets +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/f/fireminds_research.txt b/forge-gui/res/cardsfolder/f/fireminds_research.txt index b2a23c01b04..fc7c35836ce 100644 --- a/forge-gui/res/cardsfolder/f/fireminds_research.txt +++ b/forge-gui/res/cardsfolder/f/fireminds_research.txt @@ -8,4 +8,5 @@ DeckHints:Type$Instant | Sorcery A:AB$ Draw | Cost$ 1 U SubCounter<2/CHARGE> | NumCards$ 1 | SpellDescription$ Draw a card. A:AB$ DealDamage | Cost$ 1 R SubCounter<5/CHARGE> | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 5 | SpellDescription$ CARDNAME deals 5 damage to any target. SVar:RemRandomDeck:True +DeckNeeds:Type$Instant|Sorcery Oracle:Whenever you cast an instant or sorcery spell, put a charge counter on Firemind's Research.\n{1}{U}, Remove two charge counters from Firemind's Research: Draw a card.\n{1}{R}, Remove five charge counters from Firemind's Research: It deals 5 damage to any target. diff --git a/forge-gui/res/cardsfolder/g/gird_for_battle.txt b/forge-gui/res/cardsfolder/g/gird_for_battle.txt index 305c43656e3..0f10b839ce2 100644 --- a/forge-gui/res/cardsfolder/g/gird_for_battle.txt +++ b/forge-gui/res/cardsfolder/g/gird_for_battle.txt @@ -2,4 +2,5 @@ Name:Gird for Battle ManaCost:W Types:Sorcery A:SP$ PutCounter | Cost$ W | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ Put a +1/+1 counter on each of up to two target creatures. +DeckHas:Ability$Counters Oracle:Put a +1/+1 counter on each of up to two target creatures. diff --git a/forge-gui/res/cardsfolder/g/glowspore_shaman.txt b/forge-gui/res/cardsfolder/g/glowspore_shaman.txt index 518b808f7c1..c5c3d74e1e7 100644 --- a/forge-gui/res/cardsfolder/g/glowspore_shaman.txt +++ b/forge-gui/res/cardsfolder/g/glowspore_shaman.txt @@ -5,4 +5,5 @@ PT:3/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigMill | TriggerDescription$ When CARDNAME enters the battlefield, put the top three cards of your library into your graveyard. You may put a land card from your graveyard on top of your library. SVar:TrigMill:DB$ Mill | NumCards$ 3 | Defined$ You | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | OptionalDecider$ You | ChangeType$ Land.YouOwn | ChangeNum$ 1 | Hidden$ True | Optional$ True +DeckHas:Ability$Graveyard Oracle:When Glowspore Shaman enters the battlefield, put the top three cards of your library into your graveyard. You may put a land card from your graveyard on top of your library. diff --git a/forge-gui/res/cardsfolder/g/goblin_banneret.txt b/forge-gui/res/cardsfolder/g/goblin_banneret.txt index 5419f82bfbc..b1bcc1bccd3 100644 --- a/forge-gui/res/cardsfolder/g/goblin_banneret.txt +++ b/forge-gui/res/cardsfolder/g/goblin_banneret.txt @@ -4,4 +4,5 @@ Types:Creature Goblin Soldier PT:1/1 K:Mentor A:AB$ Pump | Cost$ 1 R | NumAtt$ +2 | SpellDescription$ CARDNAME gets +2/+0 until end of turn. +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\n{1}{R}: Goblin Banneret gets +2/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/g/golgari_raiders.txt b/forge-gui/res/cardsfolder/g/golgari_raiders.txt index 2edb4dec836..68b269f346b 100644 --- a/forge-gui/res/cardsfolder/g/golgari_raiders.txt +++ b/forge-gui/res/cardsfolder/g/golgari_raiders.txt @@ -6,4 +6,5 @@ K:Haste K:etbCounter:P1P1:X:no Condition:Undergrowth - CARDNAME enters the battlefield with a +1/+1 counter on it for each creature card in your graveyard. SVar:X:Count$LastStateGraveyard Creature.YouCtrl SVar:NeedsToPlayVar:X GE3 +DeckHas:Ability$Counters Oracle:Haste\nUndergrowth — Golgari Raiders enters the battlefield with a +1/+1 counter on it for each creature card in your graveyard. diff --git a/forge-gui/res/cardsfolder/g/gruesome_menagerie.txt b/forge-gui/res/cardsfolder/g/gruesome_menagerie.txt index 46c3ea0f004..8a28cd52744 100644 --- a/forge-gui/res/cardsfolder/g/gruesome_menagerie.txt +++ b/forge-gui/res/cardsfolder/g/gruesome_menagerie.txt @@ -6,4 +6,5 @@ SVar:DBChoose2:DB$ ChooseCard | Defined$ You | Choices$ Creature.YouOwn+cmcEQ2 | SVar:DBChoose3:DB$ ChooseCard | Defined$ You | Choices$ Creature.YouOwn+cmcEQ3 | ChoiceZone$ Graveyard | Amount$ 1 | SubAbility$ DBReturn | RememberChosen$ True | SpellDescription$ Choose a creature card with converted mana cost 3 in your graveyard. SVar:DBReturn:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Card.IsRemembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:NeedsToPlay:Creature.YouCtrl+inZoneGraveyard+cmcLE3 Oracle:Choose a creature card with converted mana cost 1 in your graveyard, then do the same for creature cards with converted mana costs 2 and 3. Return those cards to the battlefield. diff --git a/forge-gui/res/cardsfolder/g/guildmages_forum.txt b/forge-gui/res/cardsfolder/g/guildmages_forum.txt index 1eb1bca9658..0dfcfc4b524 100644 --- a/forge-gui/res/cardsfolder/g/guildmages_forum.txt +++ b/forge-gui/res/cardsfolder/g/guildmages_forum.txt @@ -2,4 +2,5 @@ Name:Guildmages' Forum Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Mana | Cost$ 1 T | Produced$ Any | AddsCounters$ Card.Creature+MultiColor_P1P1_1 | SpellDescription$ Add one mana of any color. If that mana is spent on a multicolored creature spell, that creature enters the battlefield with an additional +1/+1 counter on it. +DeckHas:Ability$Counters Oracle:{T}: Add {C}.\n{1}, {T}: Add one mana of any color. If that mana is spent on a multicolored creature spell, that creature enters the battlefield with an additional +1/+1 counter on it. diff --git a/forge-gui/res/cardsfolder/h/haazda_marshal.txt b/forge-gui/res/cardsfolder/h/haazda_marshal.txt index 5eb0f677523..62edb4876d3 100644 --- a/forge-gui/res/cardsfolder/h/haazda_marshal.txt +++ b/forge-gui/res/cardsfolder/h/haazda_marshal.txt @@ -5,4 +5,5 @@ PT:1/1 T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | CheckSVar$ AttackerTest | SVarCompare$ GE2 | NoResolvingCheck$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME and at least two other creatures attack, create a 1/1 white Soldier creature token with lifelink. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink SVar:AttackerTest:Count$Valid Creature.attacking+Other +DeckHas:Ability$Token Oracle:Whenever Haazda Marshal and at least two other creatures attack, create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/h/hammer_dropper.txt b/forge-gui/res/cardsfolder/h/hammer_dropper.txt index d0d0d0a3193..dd2b2f37495 100644 --- a/forge-gui/res/cardsfolder/h/hammer_dropper.txt +++ b/forge-gui/res/cardsfolder/h/hammer_dropper.txt @@ -3,4 +3,5 @@ ManaCost:2 R W Types:Creature Giant Soldier PT:5/2 K:Mentor +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) diff --git a/forge-gui/res/cardsfolder/h/house_guildmage.txt b/forge-gui/res/cardsfolder/h/house_guildmage.txt index 08847cc9e65..4a0c6f751c1 100644 --- a/forge-gui/res/cardsfolder/h/house_guildmage.txt +++ b/forge-gui/res/cardsfolder/h/house_guildmage.txt @@ -4,4 +4,5 @@ Types:Creature Human Wizard PT:2/2 A:AB$ Pump | Cost$ 1 U T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True | IsCurse$ True | SpellDescription$ Target creature doesn't untap during its controller's next untap step. A:AB$ Surveil | Cost$ 2 B T | Amount$ 2 | SpellDescription$ Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:{1}{U}, {T}: Target creature doesn't untap during its controller's next untap step.\n{2}{B}, {T}: Surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/i/invert_invent.txt b/forge-gui/res/cardsfolder/i/invert_invent.txt index 9e5803db4e7..63f7d936e87 100644 --- a/forge-gui/res/cardsfolder/i/invert_invent.txt +++ b/forge-gui/res/cardsfolder/i/invert_invent.txt @@ -13,4 +13,5 @@ Types:Instant A:SP$ ChangeZone | Cost$ 4 U R | Origin$ Library | Destination$ Hand | ChangeType$ Instant | ChangeNum$ 1 | SubAbility$ DBChange | SpellDescription$ Search your library for and instant permanent and/or a sorcery card, reveal them, put them into your hand, then shuffle your library. SVar:DBChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Sorcery | ChangeNum$ 1 | Shuffle$ True SVar:RemRandomDeck:True +DeckHints:Type$Instant|Sorcery Oracle:Search your library for an instant card and/or a sorcery card, reveal them, put them into your hand, then shuffle your library. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/i/ironshell_beetle.txt b/forge-gui/res/cardsfolder/i/ironshell_beetle.txt index 39ad66852ba..6cde56e4cc5 100644 --- a/forge-gui/res/cardsfolder/i/ironshell_beetle.txt +++ b/forge-gui/res/cardsfolder/i/ironshell_beetle.txt @@ -4,5 +4,6 @@ Types:Creature Insect PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPut | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on target creature. SVar:TrigPut:DB$PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters SVar:Picture:http://www.wizards.com/global/images/magic/general/ironshell_beetle.jpg Oracle:When Ironshell Beetle enters the battlefield, put a +1/+1 counter on target creature. diff --git a/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt b/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt index c5fd38febe0..caf403eb29a 100644 --- a/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt +++ b/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt @@ -7,4 +7,5 @@ SVar:TrigToken:DB$Token | TokenAmount$ X | TokenName$ Insect | TokenTypes$ Creat SVar:X:Count$TypeInYourYard.Creature A:AB$ GainLife | Cost$ B G Sac<1/Creature.Other/another creature> | Defined$ You | LifeAmount$ 1 | SubAbility$ DBDraw | SpellDescription$ You gain 1 life and draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 +DeckHas:Ability$Token Oracle:Undergrowth — When Izoni, Thousand-Eyed enters the battlefield, create a 1/1 black and green Insect creature token for each creature card in your graveyard.\n{B}{G}, Sacrifice another creature: You gain 1 life and draw a card. diff --git a/forge-gui/res/cardsfolder/k/knight_of_autumn.txt b/forge-gui/res/cardsfolder/k/knight_of_autumn.txt index 907e199df3c..773ea6207c9 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_autumn.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_autumn.txt @@ -7,4 +7,5 @@ SVar:TrigCharm:DB$ Charm | Choices$ DBPump,DBDestroy,DBGainLife SVar:DBPump:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 2 | SpellDescription$ Put two +1/+1 counters on CARDNAME. SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SpellDescription$ Destroy target artifact or enchantment. SVar:DBGainLife:DB$ GainLife | LifeAmount$ 4 | SpellDescription$ You gain 4 life. +DeckHas:Ability$Counters Oracle:When Knight of Autumn enters the battlefield, choose one —\n• Put two +1/+1 counters on Knight of Autumn.\n• Destroy target artifact or enchantment.\n• You gain 4 life. diff --git a/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt index 57ab5d3a9fa..374c88202d1 100644 --- a/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt +++ b/forge-gui/res/cardsfolder/l/lazav_the_multifarious.txt @@ -6,4 +6,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigSurveil:DB$ Surveil | Amount$ 1 A:AB$ Clone | Cost$ X | ValidTgts$ Creature.YouOwn | References$ X | TgtZone$ Graveyard | TgtPrompt$ Select target creature card in your graveyard | AddTypes$ Legendary | NewName$ Lazav, the Multifarious | GainThisAbility$ True | SpellDescription$ CARDNAME becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is CARDNAME, it's legendary in addition to it's other types, and it has this ability. SVar:X:Targeted$CardManaCost +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:When Lazav, the Multifarious enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.)\n{X}: Lazav, the Multifarious becomes a copy of target creature card in your graveyard with converted mana cost X, except its name is Lazav, the Multifarious, it's legendary in addition to its other types, and it has this ability. diff --git a/forge-gui/res/cardsfolder/l/league_guildmage.txt b/forge-gui/res/cardsfolder/l/league_guildmage.txt index 1c07ac501bf..c0cdc4c664c 100644 --- a/forge-gui/res/cardsfolder/l/league_guildmage.txt +++ b/forge-gui/res/cardsfolder/l/league_guildmage.txt @@ -5,4 +5,5 @@ PT:2/2 A:AB$ Draw | Cost$ 3 U T | NumCards$ 1 | SpellDescription$ Draw a card. A:AB$ CopySpellAbility | Cost$ X R T | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | TargetType$ Spell | SpellDescription$ Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy. SVar:X:Targeted$CardManaCost +DeckHints:Type$Instant|Sorcery Oracle:{3}{U}, {T}: Draw a card.\n{X}{R}, {T}: Copy target instant or sorcery spell you control with converted mana cost X. You may choose new targets for the copy. diff --git a/forge-gui/res/cardsfolder/l/leapfrog.txt b/forge-gui/res/cardsfolder/l/leapfrog.txt index 7a7ada2f5a2..345db3634bb 100644 --- a/forge-gui/res/cardsfolder/l/leapfrog.txt +++ b/forge-gui/res/cardsfolder/l/leapfrog.txt @@ -4,4 +4,5 @@ Types:Creature Frog PT:3/1 S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Flying | CheckSVar$ X | SVarCompare$ GE1 | Description$ CARDNAME has flying as long as you've cast and instant or sorcery spell this turn. SVar:X:Count$ThisTurnCast_Instant.YouCtrl,Sorcery.YouCtrl +DeckHints:Type$Instant|Sorcery Oracle:Leapfrog has flying as long as you've cast and instant or sorcery spell this turn. diff --git a/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt b/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt index 693f71a3d99..c9a7aac646e 100644 --- a/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt +++ b/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt @@ -4,4 +4,5 @@ Types:Instant K:Convoke A:SP$ Token | Cost$ X G W W | TokenAmount$ X | References$ X | TokenScript$ w_1_1_soldier_lifelink | SpellDescription$ Create X 1/1 white Soldier creature tokens with lifelink. SVar:X:Count$xPaid +DeckHas:Ability$Token Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nCreate X 1/1 white Soldier creature tokens with lifelink. diff --git a/forge-gui/res/cardsfolder/m/mephitic_vapors.txt b/forge-gui/res/cardsfolder/m/mephitic_vapors.txt index 20328c8009e..eeca0cc0668 100644 --- a/forge-gui/res/cardsfolder/m/mephitic_vapors.txt +++ b/forge-gui/res/cardsfolder/m/mephitic_vapors.txt @@ -3,4 +3,5 @@ ManaCost:2 B Types:Sorcery A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | Subability$ DBSurveil | SpellDescription$ All creatures get -1/-1 until end of turn. SVar:DBSurveil:DB$ Surveil | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:All creatures get -1/-1 until end of turn.\nSurveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/m/mission_briefing.txt b/forge-gui/res/cardsfolder/m/mission_briefing.txt index 8c0d5ca1156..3fc8640f76e 100644 --- a/forge-gui/res/cardsfolder/m/mission_briefing.txt +++ b/forge-gui/res/cardsfolder/m/mission_briefing.txt @@ -9,5 +9,6 @@ SVar:ReplaceGraveyard:Event$ Moved | ValidCard$ Card.IsRemembered | Origin$ Stac SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Exile SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:RemAIDeck:True +DeckHas:Ability$Surveil & Ability$Graveyard SVar:Picture:http://www.wizards.com/global/images/magic/general/mission_briefing.jpg Oracle:Surveil 2, then choose an instant or sorcery card in your graveyard. You may cast that card this turn. If that card would be put into your graveyard this turn, exile it instead. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/m/murmuring_mystic.txt b/forge-gui/res/cardsfolder/m/murmuring_mystic.txt index e564cee9162..7947d0ef419 100644 --- a/forge-gui/res/cardsfolder/m/murmuring_mystic.txt +++ b/forge-gui/res/cardsfolder/m/murmuring_mystic.txt @@ -5,4 +5,6 @@ PT:1/5 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast an instant or sorcery spell, create a 1/1 blue Bird Illusion creature token with flying. SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenScript$ u_1_1_bird_illusion_flying SVar:BuffedBy:Instant,Sorcery +DeckHints:Ability$Instant|Sorcery +DeckHas:Ability$Token Oracle:Whenever you cast an instant or sorcery spell, create a 1/1 blue Bird Illusion creature token with flying. diff --git a/forge-gui/res/cardsfolder/n/nightveil_sprite.txt b/forge-gui/res/cardsfolder/n/nightveil_sprite.txt index 82043a4765a..bd2c50afe9f 100644 --- a/forge-gui/res/cardsfolder/n/nightveil_sprite.txt +++ b/forge-gui/res/cardsfolder/n/nightveil_sprite.txt @@ -6,4 +6,5 @@ K:Flying T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) SVar:TrigSurveil:DB$ Surveil | Amount$ 1 SVar:HasAttackEffect:TRUE +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flying\nWhenever Nightveil Sprite attacks, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) diff --git a/forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt b/forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt index 5e02fcdb3b0..225b2a575c5 100644 --- a/forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt +++ b/forge-gui/res/cardsfolder/n/niv_mizzet_parun.txt @@ -8,4 +8,5 @@ T:Mode$ Drawn | ValidCard$ Card.YouOwn | TriggerZones$ Battlefield | Execute$ Tr SVar:TrigDealDamage:DB$DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a player casts an instant or sorcery spell, you draw a card. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 +DeckHints:Type$Instant|Sorcery Oracle:Niv-Mizzet, Parun can't be countered.\nFlying\nWhenever you draw a card, Niv-Mizzet, Parun deals 1 damage to any target.\nWhenever a player casts an instant or sorcery spell, you draw a card. diff --git a/forge-gui/res/cardsfolder/n/notion_rain.txt b/forge-gui/res/cardsfolder/n/notion_rain.txt index 2e49bc7cf74..c932c15d821 100644 --- a/forge-gui/res/cardsfolder/n/notion_rain.txt +++ b/forge-gui/res/cardsfolder/n/notion_rain.txt @@ -4,4 +4,5 @@ Types:Sorcery A:SP$ Surveil | Cost$ 1 U B | Amount$ 2 | SubAbility$ DBDraw | SpellDescription$ Surveil 2, then draw two cards. CARDNAME deals 2 damage to you. SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 2 | SubAbility$ DBDamage SVar:DBDamage:DB$ DealDamage | Defined$ You | NumDmg$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Surveil 2, then draw two cards. Rain of Notions deals 2 damage to you. (To surveil 2, look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/p/parhelion_patrol.txt b/forge-gui/res/cardsfolder/p/parhelion_patrol.txt index 35265bd259b..d4ed407ad8a 100644 --- a/forge-gui/res/cardsfolder/p/parhelion_patrol.txt +++ b/forge-gui/res/cardsfolder/p/parhelion_patrol.txt @@ -5,4 +5,5 @@ PT:2/3 K:Flying K:Vigilance K:Mentor +DeckHas:Ability$Counters Oracle:Flying, vigilance\nMentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) diff --git a/forge-gui/res/cardsfolder/p/pelt_collector.txt b/forge-gui/res/cardsfolder/p/pelt_collector.txt index 1057ed08c4e..56e8b90ad45 100644 --- a/forge-gui/res/cardsfolder/p/pelt_collector.txt +++ b/forge-gui/res/cardsfolder/p/pelt_collector.txt @@ -7,4 +7,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creatu T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+powerGTX+Other | References$ X | TriggerZones$ Battlefield | Secondary$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature you control enters the battlefield or dies, if that creature's power is greater than CARDNAME's, put a +1/+1 counter on CARDNAME. SVar:X:Count$CardPower SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters Oracle:Whenever another creature you control enters the battlefield or dies, if that creature's power is greater than Pelt Collector's, put a +1/+1 counter on Pelt Collector.\nAs long as Pelt Collector has three or more +1/+1 counters on it, it has trample. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt b/forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt index 6382caaec7c..c632d6cad7b 100644 --- a/forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt +++ b/forge-gui/res/cardsfolder/p/piston_fist_cyclops.txt @@ -6,4 +6,5 @@ K:Defender S:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME can attack as though it didn't have defender. | CheckSVar$ X | SVarCompare$ GE1 | Description$ As long as you've cast an instant or sorcery spell this turn, CARDNAME can attack as though it didn't have defender. SVar:X:Count$ThisTurnCast_Instant.YouOwn,Sorcery.YouOwn SVar:BuffedBy:Instant,Sorcery +DeckHints:Type$Instant|Sorcery Oracle:Defender\nAs long as you've cast an instant or sorcery spell this turn, Piston-Fist Cyclops can attack as though it didn't have defender. diff --git a/forge-gui/res/cardsfolder/p/price_of_fame.txt b/forge-gui/res/cardsfolder/p/price_of_fame.txt index 4383c468503..83fd2baf529 100644 --- a/forge-gui/res/cardsfolder/p/price_of_fame.txt +++ b/forge-gui/res/cardsfolder/p/price_of_fame.txt @@ -6,4 +6,5 @@ A:SP$ Destroy | Cost$ 3 B | ValidTgts$ Creature | SubAbility$ DBSurveil | TgtPro SVar:CostReduction:Count$Compare CheckTgt GE1.2.0 SVar:CheckTgt:Targeted$Valid Creature.Legendary SVar:DBSurveil:DB$ Surveil | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:This spell costs {2} less to cast if it targets a legendary creature.\nDestroy target creature.\nSurveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt b/forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt index 82e83d9f78b..1383177de97 100644 --- a/forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt +++ b/forge-gui/res/cardsfolder/r/ral_izzet_viceroy.txt @@ -12,4 +12,6 @@ SVar:TrigSpellCast:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatin SVar:EffSpellCast:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 4 | SubAbility$ EffDraw SVar:EffDraw:DB$ Draw | Defined$ You | NumCards$ 2 SVar:BuffedBy:Instant,Sorcery +DeckHints:Type$Instant|Sorcery +DeckHas:Ability$Graveyard Oracle:[+1]: Look at the top two cards of your library. Put one of them into your hand and the other into your graveyard.\n[-3]: Ral, Izzet Viceroy deals damage to target creature equal to the total number of instant and sorcery cards you own in exile and in your graveyard.\n[-8]: You get an emblem with "Whenever you cast an instant or sorcery spell, this emblem deals 4 damage to any target and you draw two cards." diff --git a/forge-gui/res/cardsfolder/r/rals_staticaster.txt b/forge-gui/res/cardsfolder/r/rals_staticaster.txt index 10dee68d58c..1c179895b30 100644 --- a/forge-gui/res/cardsfolder/r/rals_staticaster.txt +++ b/forge-gui/res/cardsfolder/r/rals_staticaster.txt @@ -7,4 +7,5 @@ T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | IsPresent$ Planeswa SVar:TrigPump:DB$ Pump | NumAtt$ X | References$ X SVar:X:Count$InYourHand SVar:BuffedBy:Ral +DeckNeeds:Type$Ral Oracle:Trample (This creature can deal excess combat damage to the player or planeswalker it's attacking.)\nWhenever Ral's Staticaster attacks, if you control a Ral planeswalker, Ral's Staticaster gets +1/+0 for each card in your hand until end of turn. diff --git a/forge-gui/res/cardsfolder/r/rampaging_monument.txt b/forge-gui/res/cardsfolder/r/rampaging_monument.txt index 82bd021bbef..b5b7db7fb21 100644 --- a/forge-gui/res/cardsfolder/r/rampaging_monument.txt +++ b/forge-gui/res/cardsfolder/r/rampaging_monument.txt @@ -7,4 +7,5 @@ K:etbCounter:P1P1:3 T:Mode$ SpellCast | ValidCard$ Card.MultiColor | ValidActivatingPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a multicolored spell, put a +1/+1 counter on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:BuffedBy:Card.MultiColor +DeckHas:Ability$Counters Oracle:Trample\nRampaging Monument enters the battlefield with three +1/+1 counters on it.\nWhenever you cast a multicolored spell, put a +1/+1 counter on Rampaging Monument. diff --git a/forge-gui/res/cardsfolder/r/rhizome_lurcher.txt b/forge-gui/res/cardsfolder/r/rhizome_lurcher.txt index cee27cca260..0d374e6d17c 100644 --- a/forge-gui/res/cardsfolder/r/rhizome_lurcher.txt +++ b/forge-gui/res/cardsfolder/r/rhizome_lurcher.txt @@ -5,4 +5,5 @@ PT:2/2 K:etbCounter:P1P1:X:no Condition:Undergrowth - CARDNAME enters the battlefield with a number of +1/+1 counters on it equal to the number of creature cards in your graveyard. SVar:X:Count$TypeInYourYard.Creature SVar:NeedsToPlayVar:X GE1 +DeckHas:Ability$Counters Oracle:Undergrowth — Rhizome Lurcher enters the battlefield with a number of +1/+1 counters on it equal to the number of creature cards in your graveyard. diff --git a/forge-gui/res/cardsfolder/r/runaway_steam_kin.txt b/forge-gui/res/cardsfolder/r/runaway_steam_kin.txt index f43e7afe1e2..5c70f04198e 100644 --- a/forge-gui/res/cardsfolder/r/runaway_steam_kin.txt +++ b/forge-gui/res/cardsfolder/r/runaway_steam_kin.txt @@ -5,4 +5,5 @@ PT:1/1 T:Mode$ SpellCast | ValidCard$ Card.Red | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | IsPresent$ Card.Self+counters_LE2_P1P1 | Execute$ TrigPutCounter | TriggerDescription$ Whenever you cast a red spell, if CARDNAME has fewer than three +1/+1 counters on it, put a +1/+1 counter on CARDNAME. SVar:TrigPutCounter:DB$PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 A:AB$ Mana | Cost$ SubCounter<3/P1P1> | Produced$ R | Amount$ 3 | SpellDescription$ Add {R}{R}{R}. +DeckHas:Ability$Counters Oracle:Whenever you cast a red spell, if Runaway Steam-Kin has fewer than three +1/+1 counters on it, put a +1/+1 counter on Runaway Steam-Kin.\nRemove three +1/+1 counters from Runaway Steam-Kin: Add {R}{R}{R}. diff --git a/forge-gui/res/cardsfolder/s/sinister_sabotage.txt b/forge-gui/res/cardsfolder/s/sinister_sabotage.txt index 5dcbd3c772a..26b0076b909 100644 --- a/forge-gui/res/cardsfolder/s/sinister_sabotage.txt +++ b/forge-gui/res/cardsfolder/s/sinister_sabotage.txt @@ -3,4 +3,5 @@ ManaCost:1 U U Types:Instant A:SP$ Counter | Cost$ 1 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | Subability$ DBSurveil | SpellDescription$ Counter target spell. Surveil 1 (Look at the top card of your library. You may put that card into your graveyard.) SVar:DBSurveil:DB$ Surveil | Amount$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Counter target spell.\nSurveil 1. (Look at the top card of your library. You may put that card into your graveyard.) diff --git a/forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt b/forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt index 8c51a87d9a2..3c563b2f46a 100644 --- a/forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt +++ b/forge-gui/res/cardsfolder/s/smelt_ward_minotaur.txt @@ -5,5 +5,5 @@ PT:2/3 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast an instant or sorcery spell, target creature an opponent controls can't block this turn. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | KW$ HIDDEN CARDNAME can't block. | IsCurse$ True SVar:BuffedBy:Instant,Sorcery -DeckHints:Type$Instant | Sorcery +DeckHints:Type$Instant|Sorcery Oracle:Whenever you cast an instant or sorcery spell, target creature an opponent controls can't block this turn. diff --git a/forge-gui/res/cardsfolder/s/sprouting_renewal.txt b/forge-gui/res/cardsfolder/s/sprouting_renewal.txt index 133ca46ab57..9f75927afbd 100644 --- a/forge-gui/res/cardsfolder/s/sprouting_renewal.txt +++ b/forge-gui/res/cardsfolder/s/sprouting_renewal.txt @@ -5,4 +5,5 @@ K:Convoke A:SP$ Charm | Cost$ 2 G | Choices$ DBToken,DBDestroy SVar:DBDestroy:DB$ Destroy | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SpellDescription$ Destroy target artifact or enchantment. SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ wg_2_2_elf_knight_vigilance | SpellDescription$ Create a 2/2 green and white Elf Knight creature token with vigilance. +DeckHas:Ability$Token Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nChoose one —\n• Create a 2/2 green and white Elf Knight creature token with vigilance.\n• Destroy target artifact or enchantment. diff --git a/forge-gui/res/cardsfolder/s/sunhome_stalwart.txt b/forge-gui/res/cardsfolder/s/sunhome_stalwart.txt index 108c54611cd..3619e11a263 100644 --- a/forge-gui/res/cardsfolder/s/sunhome_stalwart.txt +++ b/forge-gui/res/cardsfolder/s/sunhome_stalwart.txt @@ -4,4 +4,5 @@ Types:Creature Human Soldier PT:2/2 K:First Strike K:Mentor +DeckHas:Ability$Counters Oracle:First strike\nMentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.) diff --git a/forge-gui/res/cardsfolder/t/tajic_legions_edge.txt b/forge-gui/res/cardsfolder/t/tajic_legions_edge.txt index 4fd9fb0b3a4..dc2adc1103c 100644 --- a/forge-gui/res/cardsfolder/t/tajic_legions_edge.txt +++ b/forge-gui/res/cardsfolder/t/tajic_legions_edge.txt @@ -6,4 +6,5 @@ K:Haste K:Mentor R:Event$ DamageDone | ActiveZones$ Battlefield | Prevent$ True | ValidTarget$ Creature.Other+YouCtrl | IsCombat$ False | Description$ Prevent all noncombat damage that would be dealt to other creatures you control. A:AB$ Pump | Cost$ R W | Defined$ Self | KW$ First Strike | SpellDescription$ CARDNAME gains first strike until end of turn. +DeckHas:Ability$Counters Oracle:Haste\nMentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\nPrevent all noncombat damage that would be dealt to other creatures you control.\n{R}{W}: Tajic, Legion's Edge gains first strike until end of turn. diff --git a/forge-gui/res/cardsfolder/t/thought_erasure.txt b/forge-gui/res/cardsfolder/t/thought_erasure.txt index 02aab8b1c92..57bdc88fe1c 100644 --- a/forge-gui/res/cardsfolder/t/thought_erasure.txt +++ b/forge-gui/res/cardsfolder/t/thought_erasure.txt @@ -3,4 +3,5 @@ ManaCost:U B Types:Sorcery A:SP$ Discard | Cost$ U B | ValidTgts$ Opponent | DiscardValid$ Card.nonLand | NumCards$ 1 | Mode$ RevealYouChoose | Subability$ DBSurveil | SpellDescription$ Target opponent reveals their hand. You choose a nonland card from it. That player discards that card. Surveil 1 (Look at the top card of your library. You may put that card into your graveyard.) SVar:DBSurveil:DB$ Surveil | Amount$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Target opponent reveals their hand. You choose a nonland card from it. That player discards that card.\nSurveil 1. (Look at the top card of your library. You may put it into your graveyard.) diff --git a/forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt b/forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt index 718268ba991..f2c53932858 100644 --- a/forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt +++ b/forge-gui/res/cardsfolder/t/thoughtbound_phantasm.txt @@ -6,4 +6,6 @@ K:Defender T:Mode$ Surveil | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever you surveil, put a +1/+1 counter on CARDNAME SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 S:Mode$ Continuous | Affected$ Card.Self+counters_GE3_P1P1 | AddHiddenKeyword$ CARDNAME can attack as though it didn't have defender. | Description$ As long as CARDNAME has three or more +1/+1 counters on it, it can attack +DeckNeeds:Ability$Surveil +DeckHas:Ability$Counters Oracle:Defender\nWhenever you surveil, put a +1/+1 counter on Thoughtbound Phantasm.\nAs long as Thoughtbound Phantasm has three or more +1/+1 counters on it, it can attack as though it didn't have defender. diff --git a/forge-gui/res/cardsfolder/t/thousand_year_storm.txt b/forge-gui/res/cardsfolder/t/thousand_year_storm.txt index 2ca167294a7..e4425747b73 100644 --- a/forge-gui/res/cardsfolder/t/thousand_year_storm.txt +++ b/forge-gui/res/cardsfolder/t/thousand_year_storm.txt @@ -4,4 +4,5 @@ Types:Enchantment T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery spell, copy it for each other instant and sorcery spell you've cast before it this turn. You may choose new targets for the copies. SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Amount$ X | References$ X SVar:X:TriggerObjectsCurrentCastSpells$Valid Sorcery.YouCtrl,Instant.YouCtrl/Minus.1 +DeckHints:Type$Instant|Sorcery Oracle:Whenever you cast an instant or sorcery spell, copy it for each other instant and sorcery spell you've cast before it this turn. You may choose new targets for the copies. diff --git a/forge-gui/res/cardsfolder/t/trostani_discordant.txt b/forge-gui/res/cardsfolder/t/trostani_discordant.txt index 53c3ed895e4..a6c268ead08 100644 --- a/forge-gui/res/cardsfolder/t/trostani_discordant.txt +++ b/forge-gui/res/cardsfolder/t/trostani_discordant.txt @@ -8,4 +8,5 @@ SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ w_1_1_soldier_lifelink T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainControl | TriggerDescription$ At the beginning of your end step, each player gains control of all creatures they own. SVar:TrigGainControl:DB$ RepeatEach | RepeatPlayers$ Player | AILogic$ GainControlOwns | RepeatSubAbility$ DBGainControl | SpellDescription$ Each player gains control of all creatures they own. SVar:DBGainControl:DB$ GainControl | AllValid$ Creature.RememberedPlayerOwn | NewController$ Player.IsRemembered +DeckHas:Ability$Token Oracle:Other creatures you control get +1/+1.\nWhen Trostani Discordant enters the battlefield, create two 1/1 white Soldier creature tokens with lifelink.\nAt the beginning of your end step, each player gains control of all creatures they own. diff --git a/forge-gui/res/cardsfolder/t/truefire_captain.txt b/forge-gui/res/cardsfolder/t/truefire_captain.txt index 9686427b472..3c254c3ef0f 100644 --- a/forge-gui/res/cardsfolder/t/truefire_captain.txt +++ b/forge-gui/res/cardsfolder/t/truefire_captain.txt @@ -7,4 +7,5 @@ T:Mode$ DamageDoneOnce | Execute$ TrigDamage | ValidTarget$ Card.Self | TriggerZ SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Player | TgtPrompt$ Select target player | NumDmg$ X | References$ X SVar:X:TriggerCount$DamageAmount SVar:HasCombatEffect:TRUE +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\nWhenever Truefire Captain is dealt damage, it deals that much damage to target player. diff --git a/forge-gui/res/cardsfolder/u/unexplained_disappearance.txt b/forge-gui/res/cardsfolder/u/unexplained_disappearance.txt index 5f90caabb59..761e0b83aea 100644 --- a/forge-gui/res/cardsfolder/u/unexplained_disappearance.txt +++ b/forge-gui/res/cardsfolder/u/unexplained_disappearance.txt @@ -3,4 +3,5 @@ ManaCost:1 U Types:Instant A:SP$ ChangeZone | Cost$ 1 U | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | Subability$ DBSurveil | SpellDescription$ Return target creature to its owner's hand. Surveil 1 (Look at the top card of your library. You may put that card into your graveyard.) SVar:DBSurveil:DB$ Surveil | Amount$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Return target creature to its owner's hand.\nSurveil 1. (Look at the top card of your library. You may put that card into your graveyard.) diff --git a/forge-gui/res/cardsfolder/v/venerated_loxodon.txt b/forge-gui/res/cardsfolder/v/venerated_loxodon.txt index f5add8bf2ce..09f861fd655 100644 --- a/forge-gui/res/cardsfolder/v/venerated_loxodon.txt +++ b/forge-gui/res/cardsfolder/v/venerated_loxodon.txt @@ -5,4 +5,5 @@ PT:4/4 K:Convoke T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPutCounterAll | TriggerDescription$ When CARDNAME enters the battlefield, put a +1/+1 counter on each creature that convoked it. SVar:TrigPutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.convoked | CounterType$ P1P1 | CounterNum$ 1 +DeckHas:Ability$Counters Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nWhen Venerated Loxodon enters the battlefield, put a +1/+1 counter on each creature that convoked it. diff --git a/forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt b/forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt index af5df6d1ba6..97a352881c4 100644 --- a/forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt +++ b/forge-gui/res/cardsfolder/v/vraska_regal_gorgon.txt @@ -7,4 +7,5 @@ SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Menace A:AB$ Destroy | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Destroy target creature. A:AB$ PutCounterAll | Cost$ SubCounter<10/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ X | Reference$ X | SpellDescription$ For each creature card in your graveyard, put a +1/+1 counter on each creature you control. SVar:X:Count$ValidGraveyard Creature.YouCtrl +DeckHas:Ability$Counters Oracle:[+2]: Put a +1/+1 counter on up to one target creature. That creature gains menace until end of turn.\n[-3]: Destroy target creature.\n[-10]: For each creature card in your graveyard, put a +1/+1 counter on each creature you control. diff --git a/forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt b/forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt index f110a982d8d..bea9f97917b 100644 --- a/forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt +++ b/forge-gui/res/cardsfolder/w/wand_of_vertebrae.txt @@ -3,4 +3,5 @@ ManaCost:1 Types:Artifact A:AB$ Mill | Cost$ T | Defined$ You | NumCards$ 1 | SpellDescription$ Put the top card of your library into your graveyard. A:AB$ ChangeZone | Cost$ 2 T Exile<1/CARDNAME> | Origin$ Graveyard | Destination$ Library | TargetMin$ 0 | TargetMax$ 5 | Shuffle$ True | TgtPrompt$ Select target card in your graveyard | ValidTgts$ Card.YouCtrl | SpellDescription$ Shuffle up to five target cards from your graveyard into your library. +DeckHas:Ability$Graveyard Oracle:{T}: Put the top card of your library into your graveyard.\n{2}, {T}, Exile Wand of Vertebrae: Shuffle up to five target cards from your graveyard into your library. diff --git a/forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt b/forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt index ba3f6aa313e..e2caac36008 100644 --- a/forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt +++ b/forge-gui/res/cardsfolder/w/watcher_in_the_mist.txt @@ -5,4 +5,5 @@ PT:3/4 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) SVar:TrigSurveil:DB$ Surveil | Defined$ You | Amount$ 2 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flying\nWhen Watcher in the Mist enters the battlefield, surveil 2. (Look at the top two cards of your library, then put any number of them into your graveyard and the rest on the top of your library in any order.) diff --git a/forge-gui/res/cardsfolder/w/wee_dragonauts.txt b/forge-gui/res/cardsfolder/w/wee_dragonauts.txt index 029b30cf7d6..ca007c6b11c 100644 --- a/forge-gui/res/cardsfolder/w/wee_dragonauts.txt +++ b/forge-gui/res/cardsfolder/w/wee_dragonauts.txt @@ -6,5 +6,6 @@ K:Flying T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast an instant or sorcery spell, CARDNAME gets +2/+0 until end of turn. SVar:TrigPump:DB$Pump | Defined$ Self | NumAtt$ 2 SVar:BuffedBy:Instant,Sorcery +DeckHints:Type$Instant|Sorcery SVar:Picture:http://www.wizards.com/global/images/magic/general/wee_dragonauts.jpg Oracle:Flying\nWhenever you cast an instant or sorcery spell, Wee Dragonauts gets +2/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/w/whisper_agent.txt b/forge-gui/res/cardsfolder/w/whisper_agent.txt index b681e45523c..8ed6266614a 100644 --- a/forge-gui/res/cardsfolder/w/whisper_agent.txt +++ b/forge-gui/res/cardsfolder/w/whisper_agent.txt @@ -5,4 +5,5 @@ PT:3/2 K:Flash T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When CARDNAME enters the battlefield, surveil 1. (Look at the top card of your library. You may put it into your graveyard.) SVar:TrigSurveil:DB$ Surveil | Amount$ 1 +DeckHas:Ability$Surveil & Ability$Graveyard Oracle:Flash\nWhen Whisper Agent enters the battlefield, surveil 1. (Look at the top card of your library. You may put it into your graveyard.) diff --git a/forge-gui/res/cardsfolder/w/whispering_snitch.txt b/forge-gui/res/cardsfolder/w/whispering_snitch.txt index d14a81ca909..3ae5c96b86e 100644 --- a/forge-gui/res/cardsfolder/w/whispering_snitch.txt +++ b/forge-gui/res/cardsfolder/w/whispering_snitch.txt @@ -5,5 +5,6 @@ PT:1/3 T:Mode$ Surveil | ValidPlayer$ You | TriggerZones$ Battlefield | OnlyFirst$ True | Execute$ TrigDamageAll | TriggerDescription$ Whenever you surveil for the first time each turn, CARDNAME deals 1 damage to each opponent and you gain 1 life. SVar:TrigDamageAll:DB$ DamageAll | ValidPlayers$ Player.Opponent | NumDmg$ 1 | SubAbility$ DBGainLife SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 +DeckNeeds:Ability$Surveil DeckHas:Ability$LifeGain Oracle:Whenever you surveil for the first time each turn, Whispering Snitch deals 1 damage to each opponent and you gain 1 life. diff --git a/forge-gui/res/cardsfolder/w/wojek_bodyguard.txt b/forge-gui/res/cardsfolder/w/wojek_bodyguard.txt index 99a850f5738..10290fc1976 100644 --- a/forge-gui/res/cardsfolder/w/wojek_bodyguard.txt +++ b/forge-gui/res/cardsfolder/w/wojek_bodyguard.txt @@ -4,4 +4,5 @@ Types:Creature Human Soldier PT:3/3 K:Mentor K:CARDNAME can't attack or block alone. +DeckHas:Ability$Counters Oracle:Mentor (Whenever this creature attacks, put a +1/+1 counter on target attacking creature with lesser power.)\nWojek Bodyguard can't attack or block alone. diff --git a/forge-gui/res/cardsfolder/w/worldsoul_colossus.txt b/forge-gui/res/cardsfolder/w/worldsoul_colossus.txt index 65cc976eb40..959f30246da 100644 --- a/forge-gui/res/cardsfolder/w/worldsoul_colossus.txt +++ b/forge-gui/res/cardsfolder/w/worldsoul_colossus.txt @@ -5,4 +5,5 @@ PT:0/0 K:Convoke K:etbCounter:P1P1:X SVar:X:Count$xPaid +DeckHas:Ability$Counters Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nWorldsoul Colossus enters the battlefield with X +1/+1 counters on it. From 30ea787f18b3d748e73b7b2de28e64994ff650df Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 12 Oct 2018 09:01:55 +0300 Subject: [PATCH 114/143] - Removed a duplicate DeckHas in Assure // Assemble. --- forge-gui/res/cardsfolder/a/assure_assemble.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/a/assure_assemble.txt b/forge-gui/res/cardsfolder/a/assure_assemble.txt index 092e54f9cc1..255b81014fe 100644 --- a/forge-gui/res/cardsfolder/a/assure_assemble.txt +++ b/forge-gui/res/cardsfolder/a/assure_assemble.txt @@ -4,7 +4,6 @@ Types:Instant AlternateMode:Split A:SP$ PutCounter | Cost$ G/W G/W | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPump | SpellDescription$ Put a +1/+1 counter on target creature. It gains indestructible until end of turn. SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Indestructible -DeckHas:Ability$Counters & Ability$Token Oracle:Put a +1/+1 counter on target creature. It gains indestructible until end of turn. ALTERNATE From 0cb3dfe9cb4b39b730106cd45ed654abc7ca94cb Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 12 Oct 2018 11:03:25 +0300 Subject: [PATCH 115/143] - Ability$Instant... -> Type$Instant --- forge-gui/res/cardsfolder/b/beamsplitter_mage.txt | 2 +- forge-gui/res/cardsfolder/m/murmuring_mystic.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt index a83584e2a6c..771b067a897 100644 --- a/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt +++ b/forge-gui/res/cardsfolder/b/beamsplitter_mage.txt @@ -4,5 +4,5 @@ Types:Creature Vedalken Wizard PT:2/2 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | IsSingleTarget$ True | TargetsValid$ Card.Self | CanTargetOtherCondition$ Creature.YouCtrl | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast an instant or sorcery that targets only CARDNAME, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredSpellAbility | Controller$ You | CopyForEachCanTarget$ Creature.YouCtrl | ChooseOnlyOne$ True -DeckHints:Ability$Instant|Sorcery +DeckHints:Type$Instant|Sorcery Oracle:Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. diff --git a/forge-gui/res/cardsfolder/m/murmuring_mystic.txt b/forge-gui/res/cardsfolder/m/murmuring_mystic.txt index 7947d0ef419..76f848425af 100644 --- a/forge-gui/res/cardsfolder/m/murmuring_mystic.txt +++ b/forge-gui/res/cardsfolder/m/murmuring_mystic.txt @@ -5,6 +5,6 @@ PT:1/5 T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast an instant or sorcery spell, create a 1/1 blue Bird Illusion creature token with flying. SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenScript$ u_1_1_bird_illusion_flying SVar:BuffedBy:Instant,Sorcery -DeckHints:Ability$Instant|Sorcery +DeckHints:Type$Instant|Sorcery DeckHas:Ability$Token Oracle:Whenever you cast an instant or sorcery spell, create a 1/1 blue Bird Illusion creature token with flying. From 9f640b90ba3c675f46714dbebfc52fb15569e240 Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 12 Oct 2018 12:32:40 +0300 Subject: [PATCH 116/143] - Added Ability$LifeGain hint to several cards. --- forge-gui/res/cardsfolder/d/dawn_of_hope.txt | 2 +- forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt | 2 +- forge-gui/res/cardsfolder/h/haazda_marshal.txt | 2 +- forge-gui/res/cardsfolder/h/hunted_witness.txt | 2 +- forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt | 2 +- forge-gui/res/cardsfolder/l/ledev_champion.txt | 2 +- forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt | 2 +- forge-gui/res/cardsfolder/s/sworn_companions.txt | 2 +- forge-gui/res/cardsfolder/t/trostani_discordant.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/forge-gui/res/cardsfolder/d/dawn_of_hope.txt b/forge-gui/res/cardsfolder/d/dawn_of_hope.txt index b53adb802e6..65c4c6d514d 100644 --- a/forge-gui/res/cardsfolder/d/dawn_of_hope.txt +++ b/forge-gui/res/cardsfolder/d/dawn_of_hope.txt @@ -4,5 +4,5 @@ Types:Enchantment T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigDraw | TriggerDescription$ Whenever you gain life, you may pay {2}. If you do, draw a card. SVar:TrigDraw:AB$Draw | Cost$ 2 | Defined$ You | NumCards$ 1 A:AB$ Token | Cost$ 3 W | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink | SpellDescription$ Create a 1/1 white Soldier creature token with lifelink. -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Whenever you gain life, you may pay {2}. If you do, draw a card.\n{3}{W}: Create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt b/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt index 4c998fe93ce..dcb4c3710bb 100644 --- a/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt +++ b/forge-gui/res/cardsfolder/e/emmara_soul_of_the_accord.txt @@ -4,5 +4,5 @@ Types:Legendary Creature Elf Cleric PT:2/2 T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME becomes tapped, create a 1/1 white Soldier creature token with lifelink. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Whenever Emmara, Soul of the Accord becomes tapped, create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/h/haazda_marshal.txt b/forge-gui/res/cardsfolder/h/haazda_marshal.txt index 62edb4876d3..06e8c1bce95 100644 --- a/forge-gui/res/cardsfolder/h/haazda_marshal.txt +++ b/forge-gui/res/cardsfolder/h/haazda_marshal.txt @@ -5,5 +5,5 @@ PT:1/1 T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | CheckSVar$ AttackerTest | SVarCompare$ GE2 | NoResolvingCheck$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME and at least two other creatures attack, create a 1/1 white Soldier creature token with lifelink. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink SVar:AttackerTest:Count$Valid Creature.attacking+Other -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Whenever Haazda Marshal and at least two other creatures attack, create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/h/hunted_witness.txt b/forge-gui/res/cardsfolder/h/hunted_witness.txt index 3f6aa70e840..39f16b0a11d 100644 --- a/forge-gui/res/cardsfolder/h/hunted_witness.txt +++ b/forge-gui/res/cardsfolder/h/hunted_witness.txt @@ -4,6 +4,6 @@ Types:Creature Human PT:1/1 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, create a 1/1 white Soldier creature token with lifelink. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain SVar:SacMe:1 Oracle:When Hunted Witness dies, create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt b/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt index caf403eb29a..4f92a03e2f1 100644 --- a/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt +++ b/forge-gui/res/cardsfolder/i/izoni_thousand_eyed.txt @@ -7,5 +7,5 @@ SVar:TrigToken:DB$Token | TokenAmount$ X | TokenName$ Insect | TokenTypes$ Creat SVar:X:Count$TypeInYourYard.Creature A:AB$ GainLife | Cost$ B G Sac<1/Creature.Other/another creature> | Defined$ You | LifeAmount$ 1 | SubAbility$ DBDraw | SpellDescription$ You gain 1 life and draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Undergrowth — When Izoni, Thousand-Eyed enters the battlefield, create a 1/1 black and green Insect creature token for each creature card in your graveyard.\n{B}{G}, Sacrifice another creature: You gain 1 life and draw a card. diff --git a/forge-gui/res/cardsfolder/l/ledev_champion.txt b/forge-gui/res/cardsfolder/l/ledev_champion.txt index 4f8e53d5f15..761277c4199 100644 --- a/forge-gui/res/cardsfolder/l/ledev_champion.txt +++ b/forge-gui/res/cardsfolder/l/ledev_champion.txt @@ -11,5 +11,5 @@ SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$Valid Creature.YouCtrl SVar:Y:Remembered$Amount A:AB$ Token | Cost$ 3 G W | TokenAmount$ 1 | TokenScript$ w_1_1_soldier_lifelink | SpellDescription$ Create a 1/1 white Soldier creature token with lifelink. -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Whenever Ledev Champion attacks, you may tap any number of untapped creatures you control. Ledev Champion gets +1/+1 until end of turn for each creature tapped this way.\n{3}{G}{W}: Create a 1/1 white Soldier creature token with lifelink. diff --git a/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt b/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt index c9a7aac646e..9eefe598548 100644 --- a/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt +++ b/forge-gui/res/cardsfolder/m/march_of_the_multitudes.txt @@ -4,5 +4,5 @@ Types:Instant K:Convoke A:SP$ Token | Cost$ X G W W | TokenAmount$ X | References$ X | TokenScript$ w_1_1_soldier_lifelink | SpellDescription$ Create X 1/1 white Soldier creature tokens with lifelink. SVar:X:Count$xPaid -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of the creature's color.)\nCreate X 1/1 white Soldier creature tokens with lifelink. diff --git a/forge-gui/res/cardsfolder/s/sworn_companions.txt b/forge-gui/res/cardsfolder/s/sworn_companions.txt index e2ed080c0a3..6504302ef29 100644 --- a/forge-gui/res/cardsfolder/s/sworn_companions.txt +++ b/forge-gui/res/cardsfolder/s/sworn_companions.txt @@ -2,5 +2,5 @@ Name:Sworn Companions ManaCost:2 W Types:Sorcery A:SP$ Token | Cost$ 2 W | TokenAmount$ 2 | TokenScript$ w_1_1_soldier_lifelink -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Creature two 1/1 white Soldier creature tokens with lifelink. diff --git a/forge-gui/res/cardsfolder/t/trostani_discordant.txt b/forge-gui/res/cardsfolder/t/trostani_discordant.txt index a6c268ead08..f93ad01c605 100644 --- a/forge-gui/res/cardsfolder/t/trostani_discordant.txt +++ b/forge-gui/res/cardsfolder/t/trostani_discordant.txt @@ -8,5 +8,5 @@ SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ w_1_1_soldier_lifelink T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainControl | TriggerDescription$ At the beginning of your end step, each player gains control of all creatures they own. SVar:TrigGainControl:DB$ RepeatEach | RepeatPlayers$ Player | AILogic$ GainControlOwns | RepeatSubAbility$ DBGainControl | SpellDescription$ Each player gains control of all creatures they own. SVar:DBGainControl:DB$ GainControl | AllValid$ Creature.RememberedPlayerOwn | NewController$ Player.IsRemembered -DeckHas:Ability$Token +DeckHas:Ability$Token & Ability$LifeGain Oracle:Other creatures you control get +1/+1.\nWhen Trostani Discordant enters the battlefield, create two 1/1 white Soldier creature tokens with lifelink.\nAt the beginning of your end step, each player gains control of all creatures they own. From 6b96129c253db6af82782748f9e8347c18410472 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Sat, 13 Oct 2018 05:04:50 +0000 Subject: [PATCH 117/143] Chaos draft --- .../item/generation/ChaosBoosterSupplier.java | 26 ++++++++++++ .../main/java/forge/limited/BoosterDraft.java | 40 +++++++++++++++++++ .../java/forge/limited/LimitedPoolType.java | 3 +- 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 forge-core/src/main/java/forge/item/generation/ChaosBoosterSupplier.java diff --git a/forge-core/src/main/java/forge/item/generation/ChaosBoosterSupplier.java b/forge-core/src/main/java/forge/item/generation/ChaosBoosterSupplier.java new file mode 100644 index 00000000000..a6dc60d6d83 --- /dev/null +++ b/forge-core/src/main/java/forge/item/generation/ChaosBoosterSupplier.java @@ -0,0 +1,26 @@ +package forge.item.generation; + +import forge.card.CardEdition; +import forge.item.BoosterPack; +import forge.item.PaperCard; + +import java.util.List; + +public class ChaosBoosterSupplier implements IUnOpenedProduct { + private List sets; + + public ChaosBoosterSupplier(List sets) { + this.sets = sets; + } + + @Override + public List get() { + if (sets.size() == 0) { + System.out.println("No chaos boosters left to supply."); + return null; + } + final CardEdition set = sets.remove(0); + final BoosterPack pack = new BoosterPack(set.getCode(), set.getBoosterTemplate()); + return pack.getCards(); + } +} diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraft.java b/forge-gui/src/main/java/forge/limited/BoosterDraft.java index c2fcfe9e3c0..ef22d7b8e76 100644 --- a/forge-gui/src/main/java/forge/limited/BoosterDraft.java +++ b/forge-gui/src/main/java/forge/limited/BoosterDraft.java @@ -17,12 +17,17 @@ */ package forge.limited; +import com.google.common.base.Predicate; import com.google.common.base.Supplier; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import forge.StaticData; import forge.card.CardEdition; import forge.deck.CardPool; import forge.deck.Deck; import forge.item.PaperCard; import forge.item.SealedProduct; +import forge.item.generation.ChaosBoosterSupplier; import forge.item.generation.IUnOpenedProduct; import forge.item.generation.UnOpenedProduct; import forge.model.CardBlock; @@ -35,6 +40,7 @@ import forge.util.TextUtil; import forge.util.gui.SGuiChoose; import forge.util.gui.SOptionPane; import forge.util.storage.IStorage; +import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.ArrayUtils; import java.io.File; @@ -168,6 +174,40 @@ public class BoosterDraft implements IBoosterDraft { } break; + case Chaos: + final CardEdition.Collection allEditions = StaticData.instance().getEditions(); + final Iterable chaosDraftEditions = Iterables.filter(allEditions.getOrderedEditions(), new Predicate() { + @Override + public boolean apply(final CardEdition cardEdition) { + boolean isExpansion = cardEdition.getType().equals(CardEdition.Type.EXPANSION); + boolean isCoreSet = cardEdition.getType().equals(CardEdition.Type.CORE); + boolean isReprintSet = cardEdition.getType().equals(CardEdition.Type.REPRINT); + if (isExpansion || isCoreSet || isReprintSet) { + // Only allow sets with 15 cards in booster packs + if (cardEdition.hasBoosterTemplate()) { + final List> slots = cardEdition.getBoosterTemplate().getSlots(); + int boosterSize = 0; + for (Pair slot : slots) { + boosterSize += slot.getRight(); + } + return boosterSize == 15; + } + } + return false; + } + }); + + // Randomize order of sets + List shuffled = Lists.newArrayList(chaosDraftEditions); + Collections.shuffle(shuffled); + + final Supplier> ChaosDraftSupplier = new ChaosBoosterSupplier(shuffled); + + for (int i = 0; i < 3; i++) { + this.product.add(ChaosDraftSupplier); + } + break; + default: throw new NoSuchElementException("Draft for mode " + this.draftFormat + " has not been set up!"); } diff --git a/forge-gui/src/main/java/forge/limited/LimitedPoolType.java b/forge-gui/src/main/java/forge/limited/LimitedPoolType.java index 758d892a8fa..2f52015e1e8 100644 --- a/forge-gui/src/main/java/forge/limited/LimitedPoolType.java +++ b/forge-gui/src/main/java/forge/limited/LimitedPoolType.java @@ -4,7 +4,8 @@ public enum LimitedPoolType { Full("Full Cardpool"), Block("Block / Set"), FantasyBlock("Fantasy Block"), - Custom("Custom Cube"); + Custom("Custom Cube"), + Chaos("Chaos Draft"); private final String displayName; private LimitedPoolType(String name) { From cd5b95ca0e975c1e33ae5a278f12cc3b7f40469b Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 08:10:06 +0300 Subject: [PATCH 118/143] - Increase the default memory size values for Android Maven project to allow it to compile with the growing code base. --- forge-gui-android/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index cff63a76f66..686f4a26ecc 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -5,8 +5,8 @@ yyyyMMdd-HHmm jar - -Xms128m - -Xmx1024m + -Xms1024m + -Xmx1536m 1.6.16.001 keystore alias From 6019d486d2b6ba6f203d42db8658593cbb256029 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sat, 13 Oct 2018 11:34:05 -0400 Subject: [PATCH 119/143] Updating release files --- forge-gui/release-files/ANNOUNCEMENTS.txt | 2 +- forge-gui/release-files/CHANGES.txt | 3 ++- forge-gui/release-files/ISSUES.txt | 6 +----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/forge-gui/release-files/ANNOUNCEMENTS.txt b/forge-gui/release-files/ANNOUNCEMENTS.txt index 973e7e98943..554eaa194c4 100644 --- a/forge-gui/release-files/ANNOUNCEMENTS.txt +++ b/forge-gui/release-files/ANNOUNCEMENTS.txt @@ -1,5 +1,5 @@ #Add one announcement per line -M19 is here! Report your issues in the release thread, and we'll kick off a new release soon with fixes. +GRN is finished! Please let us know if you see any other bugs most especially for the newers cards. [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]! Online Multiplayer is once again functional! \ No newline at end of file diff --git a/forge-gui/release-files/CHANGES.txt b/forge-gui/release-files/CHANGES.txt index 2040ced2470..d162b6af1d5 100644 --- a/forge-gui/release-files/CHANGES.txt +++ b/forge-gui/release-files/CHANGES.txt @@ -1,5 +1,5 @@ - Guilds of Ravnica - -Most of Guilds of Ravnica has been implemented and is available in this release. We're working hard on getting the last few cards added. +All of Guilds of Ravnica has been implemented and is available in this release. - Token Changes - Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. @@ -9,4 +9,5 @@ Added Randomized Standard Quest World with LDA archetype generated decks as duel In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. - Bug fixes - +Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. diff --git a/forge-gui/release-files/ISSUES.txt b/forge-gui/release-files/ISSUES.txt index 00a6e947bd4..3755d9b8044 100644 --- a/forge-gui/release-files/ISSUES.txt +++ b/forge-gui/release-files/ISSUES.txt @@ -1,7 +1,3 @@ -Online multiplayer functionality has been restored, but is still a Work in Progress. We do have a dedicated developer actively working on the online multiplayer feature. - -"When you pay a cost" trigger for M19 cards don't work 100% correctly yet. We're still working on it. - -Other known issues are here: https://git.cardforge.org/core-developers/forge/issues +Known issues are here: https://git.cardforge.org/core-developers/forge/issues Feel free to report your own there if you have any. \ No newline at end of file From c5fb6c5fd124acc78e2a68023c042b18090d7cc0 Mon Sep 17 00:00:00 2001 From: tehdiplomat Date: Sat, 13 Oct 2018 11:36:40 -0400 Subject: [PATCH 120/143] Update GRN rankings --- forge-gui/res/draft/rankings.txt | 479 +++++++++++++++---------------- 1 file changed, 237 insertions(+), 242 deletions(-) diff --git a/forge-gui/res/draft/rankings.txt b/forge-gui/res/draft/rankings.txt index f5db72c1884..da3b4448a9d 100644 --- a/forge-gui/res/draft/rankings.txt +++ b/forge-gui/res/draft/rankings.txt @@ -3,256 +3,251 @@ #2|Aurelia, Exemplar of Justice|M|GRN #3|Light of the Legion|R|GRN #4|Dream Eater|M|GRN -#5|March of the Multitudes|M|GRN +#5|Izoni, Thousand-Eyed|R|GRN #6|Vraska, Golgari Queen|M|GRN -#7|Assassin's Trophy|R|GRN -#8|Underrealm Lich|M|GRN -#9|Niv-Mizzet, Parun|R|GRN -#10|Trostani Discordant|M|GRN +#7|Niv-Mizzet, Parun|R|GRN +#8|Assassin's Trophy|R|GRN +#9|Trostani Discordant|M|GRN +#10|Underrealm Lich|M|GRN #11|Status Statue|U|GRN -#12|Price of Fame|U|GRN -#13|Conclave Tribunal|U|GRN -#14|Izoni, Thousand-Eyed|R|GRN -#15|Lava Coil|U|GRN -#16|Dawn of Hope|R|GRN -#17|Legion Warboss|R|GRN -#18|Find|R|GRN -#19|Integrity Intervention|U|GRN -#20|Justice Strike|U|GRN -#21|Tajic, Legion's Edge|R|GRN -#22|Pelt Collector|R|GRN -#23|Ral, Izzet Viceroy|M|GRN -#24|Emmara, Soul of the Accord|R|GRN -#25|Swiftblade Vindicator|R|GRN -#26|Assure|R|GRN -#27|Chamber Sentry|R|GRN -#28|Bounty of Might|R|GRN -#29|Nightveil Predator|U|GRN -#30|Venerated Loxodon|R|GRN +#12|Find Finality|R|GRN +#13|March of the Multitudes|M|GRN +#14|Price of Fame|U|GRN +#15|Conclave Tribunal|U|GRN +#16|Nullhide Ferox|M|GRN +#17|Tajic, Legion's Edge|R|GRN +#18|Ral, Izzet Viceroy|M|GRN +#19|Lava Coil|U|GRN +#20|Integrity Intervention|U|GRN +#21|Dawn of Hope|R|GRN +#22|Legion Warboss|R|GRN +#23|Venerated Loxodon|R|GRN +#24|Justice Strike|U|GRN +#25|Pelt Collector|R|GRN +#26|Swiftblade Vindicator|R|GRN +#27|Assure Assemble|R|GRN +#28|Chamber Sentry|R|GRN +#29|Bounty of Might|R|GRN +#30|Nightveil Predator|U|GRN #31|Crackling Drake|U|GRN #32|Etrata, the Silencer|R|GRN -#33|Nullhide Ferox|M|GRN -#34|Golgari Findbroker|U|GRN -#35|Knight of Autumn|R|GRN -#36|Conclave Cavalier|U|GRN -#37|Thief of Sanity|R|GRN -#38|Response|R|GRN -#39|Deafening Clarion|R|GRN -#40|Truefire Captain|U|GRN -#41|Deadly Visit|C|GRN -#42|Midnight Reaper|R|GRN -#43|Lazav, the Multifarious|M|GRN -#44|Boros Challenger|U|GRN -#45|Ritual of Soot|R|GRN -#46|Rampaging Monument|U|GRN -#47|Luminous Bonds|C|GRN -#48|Chemister's Insight|U|GRN -#49|Artful Takedown|C|GRN -#50|Beast Whisperer|R|GRN -#51|Expansion|R|GRN -#52|Affectionate Indrik|U|GRN -#53|Connive|R|GRN -#54|Hatchery Spider|R|GRN -#55|Charnel Troll|R|GRN -#56|Rosemane Centaur|C|GRN -#57|Hypothesizzle|C|GRN -#58|Arclight Phoenix|M|GRN -#59|Swarm Guildmage|U|GRN -#60|House Guildmage|U|GRN -#61|League Guildmage|U|GRN -#62|Legion Guildmage|U|GRN -#63|Glowspore Shaman|U|GRN -#64|Wee Dragonauts|U|GRN -#65|Kraul Harpooner|U|GRN -#66|Gravitic Punch|C|GRN -#67|Dead Weight|C|GRN -#68|District Guide|U|GRN -#69|Command the Storm|C|GRN -#70|Inescapable Blaze|U|GRN -#71|Conclave Guildmage|U|GRN -#72|Ledev Champion|U|GRN -#73|Discovery|U|GRN -#74|Roc Charger|U|GRN -#75|Citywide Bust|R|GRN -#76|Plaguecrafter|U|GRN -#77|Camaraderie|R|GRN -#78|Hired Poisoner|C|GRN -#79|Capture Sphere|C|GRN -#80|Firemind's Research|R|GRN -#81|Quasiduplicate|R|GRN -#82|Arboretum Elemental|U|GRN -#83|Unexplained Disappearance|C|GRN -#84|Sunhome Stalwart|U|GRN -#85|Chromatic Lantern|R|GRN -#86|Goblin Cratermaker|U|GRN -#87|Notion Rain|C|GRN -#88|Invert|U|GRN +#33|Emmara, Soul of the Accord|R|GRN +#34|Beast Whisperer|R|GRN +#35|Golgari Findbroker|U|GRN +#36|Knight of Autumn|R|GRN +#37|Blood Operative|R|GRN +#38|Conclave Cavalier|U|GRN +#39|Thief of Sanity|R|GRN +#40|Charnel Troll|R|GRN +#41|Deafening Clarion|R|GRN +#42|Truefire Captain|U|GRN +#43|Connive Concoct|R|GRN +#44|Hatchery Spider|R|GRN +#45|Quasiduplicate|R|GRN +#46|Response Resurgence|R|GRN +#47|Arclight Phoenix|M|GRN +#48|Midnight Reaper|R|GRN +#49|Lazav, the Multifarious|M|GRN +#50|Ritual of Soot|R|GRN +#51|Boros Challenger|U|GRN +#52|Deadly Visit|C|GRN +#53|Roc Charger|U|GRN +#54|Rampaging Monument|U|GRN +#55|Luminous Bonds|C|GRN +#56|Artful Takedown|C|GRN +#57|Expansion Explosion|R|GRN +#58|Murmuring Mystic|U|GRN +#59|Nightveil Sprite|U|GRN +#60|Swarm Guildmage|U|GRN +#61|House Guildmage|U|GRN +#62|League Guildmage|U|GRN +#63|Legion Guildmage|U|GRN +#64|Glowspore Shaman|U|GRN +#65|Disinformation Campaign|U|GRN +#66|Wee Dragonauts|U|GRN +#67|Discovery Dispersal|U|GRN +#68|Kraul Harpooner|U|GRN +#69|Flower Flourish|U|GRN +#70|Dead Weight|C|GRN +#71|Rosemane Centaur|C|GRN +#72|Hypothesizzle|C|GRN +#73|District Guide|U|GRN +#74|Chemister's Insight|U|GRN +#75|Command the Storm|C|GRN +#76|Inescapable Blaze|U|GRN +#77|Invert Invent|U|GRN +#78|Conclave Guildmage|U|GRN +#79|Affectionate Indrik|U|GRN +#80|Dimir Spybug|U|GRN +#81|Citywide Bust|R|GRN +#82|Plaguecrafter|U|GRN +#83|Camaraderie|R|GRN +#84|Capture Sphere|C|GRN +#85|Firemind's Research|R|GRN +#86|Arboretum Elemental|U|GRN +#87|Sunhome Stalwart|U|GRN +#88|Goblin Cratermaker|U|GRN #89|Erratic Cyclops|R|GRN #90|Citywatch Sphinx|U|GRN #91|Skyknight Legionnaire|C|GRN #92|Watcher in the Mist|C|GRN -#93|Dimir Spybug|U|GRN -#94|Siege Wurm|C|GRN -#95|Risk Factor|R|GRN -#96|Flower|U|GRN -#97|Inspiring Unicorn|U|GRN -#98|Prey Upon|C|GRN -#99|Severed Strands|C|GRN -#100|Kraul Swarm|U|GRN -#101|Demotion|U|GRN -#102|Murmuring Mystic|U|GRN -#103|Healer's Hawk|C|GRN -#104|Direct Current|C|GRN -#105|Nightveil Sprite|U|GRN -#106|Darkblade Agent|C|GRN -#107|Blood Operative|R|GRN -#108|Swathcutter Giant|U|GRN -#109|Loxodon Restorer|C|GRN -#110|Sprouting Renewal|U|GRN -#111|Beacon Bolt|U|GRN -#112|Undercity Uprising|C|GRN -#113|Flight of Equenauts|U|GRN -#114|Experimental Frenzy|R|GRN -#115|Undercity Necrolisk|U|GRN -#116|Selective Snare|U|GRN -#117|Collar the Culprit|C|GRN -#118|Sacred Foundry|R|GRN -#119|Watery Grave|R|GRN -#120|Temple Garden|R|GRN -#121|Overgrown Tomb|R|GRN -#122|Steam Vents|R|GRN -#123|Dimir Informant|C|GRN -#124|Runaway Steam-Kin|R|GRN -#125|Ionize|R|GRN -#126|Garrison Sergeant|C|GRN -#127|Hunted Witness|C|GRN -#128|Disinformation Campaign|U|GRN -#129|Piston-Fist Cyclops|C|GRN -#130|Parhelion Patrol|C|GRN -#131|Join Shields|U|GRN -#132|Gird for Battle|U|GRN -#133|Gatekeeper Gargoyle|U|GRN -#134|Drowned Secrets|R|GRN -#135|Hellkite Whelp|U|GRN -#136|Spinal Centipede|C|GRN -#137|Burglar Rat|C|GRN -#138|Righteous Blow|C|GRN -#139|Golgari Guildgate|C|GRN -#140|Izzet Guildgate|C|GRN -#141|Selesnya Guildgate|C|GRN -#142|Dimir Guildgate|C|GRN -#143|Boros Guildgate|C|GRN -#144|Thought Erasure|U|GRN -#145|Necrotic Wound|U|GRN -#146|Guild Summit|U|GRN -#147|Whispering Snitch|U|GRN -#148|Vivid Revival|R|GRN -#149|Guildmages' Forum|R|GRN -#150|Molderhulk|U|GRN -#151|Gruesome Menagerie|R|GRN -#152|Centaur Peacemaker|C|GRN -#153|Thoughtbound Phantasm|U|GRN -#154|Ochran Assassin|U|GRN -#155|Circuitous Route|U|GRN -#156|Lotleth Giant|U|GRN -#157|Book Devourer|U|GRN -#158|Worldsoul Colossus|U|GRN -#159|Haazda Marshal|U|GRN -#160|Erstwhile Trooper|C|GRN -#161|Might of the Masses|U|GRN -#162|Wild Ceratok|C|GRN -#163|Ironshell Beetle|C|GRN -#164|Smelt-Ward Minotaur|U|GRN -#165|Cosmotronic Wave|C|GRN -#166|Douser of Lights|C|GRN -#167|Sworn Companions|C|GRN -#168|Intrusive Packbeast|C|GRN -#169|Sinister Sabotage|U|GRN -#170|Barging Sergeant|C|GRN -#171|Hammer Dropper|C|GRN -#172|Goblin Electromancer|C|GRN -#173|Sumala Woodshaper|C|GRN -#174|Bounty Agent|R|GRN -#175|Blade Instructor|C|GRN -#176|Gateway Plaza|C|GRN -#177|Disdainful Stroke|C|GRN -#178|Goblin Banneret|U|GRN -#179|Wojek Bodyguard|C|GRN -#180|Enhanced Surveillance|U|GRN -#181|Ledev Guardian|C|GRN -#182|Beamsplitter Mage|U|GRN -#183|Generous Stray|C|GRN -#184|Vernadi Shieldmate|C|GRN -#185|Pitiless Gorgon|C|GRN -#186|Vigorspore Wurm|C|GRN -#187|Pack's Favor|C|GRN -#188|Hitchclaw Recluse|C|GRN -#189|Sure Strike|C|GRN -#190|Rubblebelt Boar|C|GRN -#191|Ornery Goblin|C|GRN -#192|Fire Urchin|C|GRN -#193|Pilfering Imp|U|GRN -#194|Bartizan Bats|C|GRN -#195|Vedalken Mesmerist|C|GRN -#196|Muse Drake|C|GRN -#197|Leapfrog|C|GRN -#198|Skyline Scout|C|GRN -#199|Radical Idea|C|GRN -#200|Moodmark Painter|C|GRN -#201|Fresh-Faced Recruit|C|GRN -#202|Whisper Agent|C|GRN -#203|Golgari Raiders|U|GRN -#204|Mission Briefing|R|GRN -#205|Chance for Glory|M|GRN -#206|Kraul Foragers|C|GRN -#207|Rhizome Lurcher|C|GRN -#208|Electrostatic Field|U|GRN -#209|Street Riot|U|GRN -#210|Fearless Halberdier|C|GRN -#211|Veiled Shade|C|GRN -#212|Child of Night|C|GRN -#213|Wishcoin Crab|C|GRN -#214|Tenth District Guard|C|GRN -#215|Take Heart|C|GRN -#216|Devkarin Dissident|C|GRN -#217|Narcomoeba|R|GRN -#218|Sonic Assault|C|GRN -#219|Wary Okapi|C|GRN -#220|Izzet Locket|C|GRN -#221|Selesnya Locket|C|GRN -#222|Golgari Locket|C|GRN -#223|Dimir Locket|C|GRN -#224|Boros Locket|C|GRN -#225|Passwall Adept|C|GRN -#226|Omnispell Adept|R|GRN -#227|Wand of Vertebrae|U|GRN -#228|Divine Visitation|M|GRN -#229|Mnemonic Betrayal|M|GRN -#230|Urban Utopia|C|GRN -#231|Wall of Mist|C|GRN -#232|Dazzling Lights|C|GRN -#233|Candlelight Vigil|C|GRN -#234|Mausoleum Secrets|R|GRN -#235|Glaive of the Guildpact|U|GRN -#236|Maximize Velocity|C|GRN -#237|Goblin Locksmith|C|GRN -#238|Grappling Sundew|U|GRN -#239|Crushing Canopy|C|GRN -#240|Torch Courier|C|GRN -#241|Maximize Altitude|C|GRN -#242|Never Happened|C|GRN -#243|Thousand-Year Storm|M|GRN -#244|Silent Dart|U|GRN -#245|Portcullis Vine|C|GRN -#246|Mephitic Vapors|C|GRN -#247|Crush Contraband|U|GRN -#248|Barrier of Bones|C|GRN -#249|Devious Cover-Up|C|GRN -#250|Maniacal Rage|C|GRN -#251|Pause for Reflection|C|GRN -#252|Vicious Rumors|C|GRN -#253|Creeping Chill|U|GRN -#254|Unmoored Ego|R|GRN +#93|Siege Wurm|C|GRN +#94|Risk Factor|R|GRN +#95|Kraul Swarm|U|GRN +#96|Demotion|U|GRN +#97|Healer's Hawk|C|GRN +#98|Direct Current|C|GRN +#99|Unexplained Disappearance|C|GRN +#100|Whisper Agent|C|GRN +#101|Notion Rain|C|GRN +#102|Ledev Champion|U|GRN +#103|Beacon Bolt|U|GRN +#104|Flight of Equenauts|U|GRN +#105|Experimental Frenzy|R|GRN +#106|Inspiring Unicorn|U|GRN +#107|Prey Upon|C|GRN +#108|Severed Strands|C|GRN +#109|Hired Poisoner|C|GRN +#110|Selective Snare|U|GRN +#111|Sacred Foundry|R|GRN +#112|Watery Grave|R|GRN +#113|Temple Garden|R|GRN +#114|Overgrown Tomb|R|GRN +#115|Steam Vents|R|GRN +#116|Chromatic Lantern|R|GRN +#117|Runaway Steam-Kin|R|GRN +#118|Ionize|R|GRN +#119|Whispering Snitch|U|GRN +#120|Goblin Banneret|U|GRN +#121|Thoughtbound Phantasm|U|GRN +#122|Swathcutter Giant|U|GRN +#123|Hunted Witness|C|GRN +#124|Enhanced Surveillance|U|GRN +#125|Piston-Fist Cyclops|C|GRN +#126|Parhelion Patrol|C|GRN +#127|Gird for Battle|U|GRN +#128|Undercity Uprising|C|GRN +#129|Gatekeeper Gargoyle|U|GRN +#130|Hellkite Whelp|U|GRN +#131|Undercity Necrolisk|U|GRN +#132|Spinal Centipede|C|GRN +#133|Burglar Rat|C|GRN +#134|Collar the Culprit|C|GRN +#135|Thought Erasure|U|GRN +#136|Necrotic Wound|U|GRN +#137|Hammer Dropper|C|GRN +#138|Dimir Informant|C|GRN +#139|Guild Summit|U|GRN +#140|Vivid Revival|R|GRN +#141|Guildmages' Forum|R|GRN +#142|Molderhulk|U|GRN +#143|Gruesome Menagerie|R|GRN +#144|Centaur Peacemaker|C|GRN +#145|Darkblade Agent|C|GRN +#146|Wojek Bodyguard|C|GRN +#147|Ochran Assassin|U|GRN +#148|Circuitous Route|U|GRN +#149|Loxodon Restorer|C|GRN +#150|Haazda Marshal|U|GRN +#151|Rhizome Lurcher|C|GRN +#152|Might of the Masses|U|GRN +#153|Generous Stray|C|GRN +#154|Wild Ceratok|C|GRN +#155|Ironshell Beetle|C|GRN +#156|Smelt-Ward Minotaur|U|GRN +#157|Rubblebelt Boar|C|GRN +#158|Cosmotronic Wave|C|GRN +#159|Muse Drake|C|GRN +#160|Sworn Companions|C|GRN +#161|Skyline Scout|C|GRN +#162|Righteous Blow|C|GRN +#163|Intrusive Packbeast|C|GRN +#164|Sinister Sabotage|U|GRN +#165|Barging Sergeant|C|GRN +#166|Sonic Assault|C|GRN +#167|Goblin Electromancer|C|GRN +#168|Sumala Woodshaper|C|GRN +#169|Fresh-Faced Recruit|C|GRN +#170|Bounty Agent|R|GRN +#171|Blade Instructor|C|GRN +#172|Gateway Plaza|C|GRN +#173|Disdainful Stroke|C|GRN +#174|Mission Briefing|R|GRN +#175|Lotleth Giant|U|GRN +#176|Book Devourer|U|GRN +#177|Sprouting Renewal|U|GRN +#178|Worldsoul Colossus|U|GRN +#179|Beamsplitter Mage|U|GRN +#180|Vernadi Shieldmate|C|GRN +#181|Pitiless Gorgon|C|GRN +#182|Vigorspore Wurm|C|GRN +#183|Pack's Favor|C|GRN +#184|Hitchclaw Recluse|C|GRN +#185|Sure Strike|C|GRN +#186|Fire Urchin|C|GRN +#187|Pilfering Imp|U|GRN +#188|Douser of Lights|C|GRN +#189|Bartizan Bats|C|GRN +#190|Leapfrog|C|GRN +#191|Take Heart|C|GRN +#192|Devkarin Dissident|C|GRN +#193|Radical Idea|C|GRN +#194|Golgari Raiders|U|GRN +#195|Ledev Guardian|C|GRN +#196|Chance for Glory|M|GRN +#197|Kraul Foragers|C|GRN +#198|Erstwhile Trooper|C|GRN +#199|Street Riot|U|GRN +#200|Ornery Goblin|C|GRN +#201|Gravitic Punch|C|GRN +#202|Child of Night|C|GRN +#203|Dazzling Lights|C|GRN +#204|Tenth District Guard|C|GRN +#205|Moodmark Painter|C|GRN +#206|Izzet Locket|C|GRN +#207|Selesnya Locket|C|GRN +#208|Golgari Locket|C|GRN +#209|Dimir Locket|C|GRN +#210|Boros Locket|C|GRN +#211|Maximize Altitude|C|GRN +#212|Passwall Adept|C|GRN +#213|Garrison Sergeant|C|GRN +#214|Omnispell Adept|R|GRN +#215|Join Shields|U|GRN +#216|Mnemonic Betrayal|M|GRN +#217|Electrostatic Field|U|GRN +#218|Urban Utopia|C|GRN +#219|Portcullis Vine|C|GRN +#220|Fearless Halberdier|C|GRN +#221|Veiled Shade|C|GRN +#222|Vedalken Mesmerist|C|GRN +#223|Wary Okapi|C|GRN +#224|Mausoleum Secrets|R|GRN +#225|Glaive of the Guildpact|U|GRN +#226|Maximize Velocity|C|GRN +#227|Divine Visitation|M|GRN +#228|Devious Cover-Up|C|GRN +#229|Goblin Locksmith|C|GRN +#230|Drowned Secrets|R|GRN +#231|Grappling Sundew|U|GRN +#232|Crushing Canopy|C|GRN +#233|Maniacal Rage|C|GRN +#234|Mephitic Vapors|C|GRN +#235|Wishcoin Crab|C|GRN +#236|Wall of Mist|C|GRN +#237|Candlelight Vigil|C|GRN +#238|Narcomoeba|R|GRN +#239|Never Happened|C|GRN +#240|Thousand-Year Storm|M|GRN +#241|Silent Dart|U|GRN +#242|Torch Courier|C|GRN +#243|Barrier of Bones|C|GRN +#244|Crush Contraband|U|GRN +#245|Wand of Vertebrae|U|GRN +#246|Creeping Chill|U|GRN +#247|Pause for Reflection|C|GRN +#248|Vicious Rumors|C|GRN +#249|Unmoored Ego|R|GRN //Rank|Name|Rarity|Set #1|Chromium, the Mutable|M|M19 #2|Palladia-Mors, the Ruiner|M|M19 From 512565a36fef72181f180e4dfbcb3a70936eb651 Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Sat, 13 Oct 2018 15:40:09 +0000 Subject: [PATCH 121/143] Update README.txt for release --- forge-gui/README.txt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/forge-gui/README.txt b/forge-gui/README.txt index 9bfcd4e83ef..6d5adeec3c1 100644 --- a/forge-gui/README.txt +++ b/forge-gui/README.txt @@ -1,6 +1,6 @@ -Forge: 09/29/2018 ver 1.6.16 +Forge: 10/13/2018 ver 1.6.17 -18176 cards in total. +18204 cards in total. -------------- @@ -8,10 +8,10 @@ Release Notes: -------------- - New Cards - -Vigorspore Wurm; Vedalken Mesmerist; Vernadi Shieldmate; Vraska, Regal Gorgon; Vivid Revival; Vraska's Stoneglare; Vicious Rumors; Veiled Shade; Knight of Autumn; Kraul Foragers; Kraul Raider; Kraul Harpooner; Kraul Swarm; Tajic, Legion's Edge; Take Heart; Torch Courier; Truefire Captain; Thoughtbound Phantasm; Tenth District Guard; Thought Erasure; Trostani Discordant; Circuitous Route; Citywatch Sphinx; Citywide Bust; Conclave Tribunal; Collar the Culprit; Connive; Conclave Guildmage; Crackling Drake; Creeping Chill; Centaur Peacemaker; Camaraderie; Capture Sphere; Cosmotronic Wave; Chance for Glory; Command the Storm; Conclave Cavalier; Chamber Sentry; Crush Contraband; Chemister's Insight; Candlelight Vigil; Guildmages' Forum; Gateway Plaza; Golgari Raiders; Gatekeeper Gargoyle; Golgari Locket; Goblin Banneret; Grappling Sundew; Guild Summit; Garrison Sergeant; Gruesome Menagerie; Golgari Findbroker; Glowspore Shaman; Gird for Battle; Goblin Cratermaker; Glaive of the Guildpact; Generous Stray; Gravitic Punch; Goblin Locksmith; Worldsoul Colossus; Wary Okapi; Watcher in the Mist; Wand of Vertebrae; Wild Ceratok; Wojek Bodyguard; Wishcoin Crab; Whisper Agent; Whispering Snitch; Impervious Greatwurm; Izzet Locket; Ionize; Inescapable Blaze; Invert; Integrity; Inspiring Unicorn; Izoni, Thousand-Eyed; Intrusive Packbeast; Douser of Lights; Dawn of Hope; Demotion; Deafening Clarion; Dimir Spybug; Dimir Informant; Doom Whisperer; District Guide; Dream Eater; Divine Visitation; Deadly Visit; Dazzling Lights; Disinformation Campaign; Darkblade Agent; Drowned Secrets; Devkarin Dissident; Direct Current; Devious Cover-Up; Dimir Locket; Justice Strike; Join Shields; Attendant of Vraska; Assure; Affectionate Indrik; Artful Takedown; Assassin's Trophy; Arboretum Elemental; Aurelia, Exemplar of Justice; Arclight Phoenix; Pelt Collector; Precision Bolt; Passwall Adept; Pitiless Gorgon; Price of Fame; Pause for Reflection; Pack's Favor; Parhelion Patrol; Pilfering Imp; Portcullis Vine; Piston-Fist Cyclops; Ral, Caller of Storms; Rhizome Lurcher; Ral's Dispersal; Roc Charger; Ral's Staticaster; Rosemane Centaur; Ral, Izzet Viceroy; Radical Idea; Ritual of Soot; Risk Factor; Runaway Steam-Kin; Rampaging Monument; Response; Rubblebelt Boar; Light of the Legion; Ledev Champion; Lava Coil; Leapfrog; Lotleth Giant; Loxodon Restorer; Ledev Guardian; Legion Warboss; League Guildmage; Legion Guildmage; Heavenly Blademaster; Hired Poisoner; Haazda Marshal; Hatchery Spider; Hunted Witness; House Guildmage; Healer's Hawk; Hammer Dropper; Hypothesizzle; Hellkite Whelp; Niv-Mizzet, Parun; Never Happened; Notion Rain; Necrotic Wound; Nightveil Sprite; Najeela, the Blade-Blossom ; Nullhide Ferox; Nightveil Predator; Smelt-Ward Minotaur; Swarm Guildmage; Sumala Woodshaper; Sonic Assault; Spinal Centipede; Severed Strands; Sunhome Stalwart; Skyline Scout; Swathcutter Giant; Selesnya Locket; Swiftblade Vindicator; Sprouting Renewal; Status; Silent Dart; Sinister Sabotage; Sworn Companions; Street Riot; Blade Instructor; Book Devourer; Barrier of Bones; Blood Operative; Boros Challenger; Burglar Rat; Barging Sergeant; Bartizan Bats; Bounty Agent; Boros Locket; Beast Whisperer; Bounty of Might; Beacon Bolt; Expansion; Electrostatic Field; Etrata, the Silencer; Experimental Frenzy; Erstwhile Trooper; Emmara, Soul of the Accord; Enhanced Surveillance; Erratic Cyclops; Underrealm Lich; Unexplained Disappearance; Urban Utopia; Undercity Uprising; Undercity Necrolisk; Ornery Goblin; Omnispell Adept; Ochran Assassin; Find; Fire Urchin; Flight of Equenauts; Fearless Halberdier; Fresh-Faced Recruit; Firemind's Research; Flower; Molderhulk; Mausoleum Secrets; Moodmark Painter; Maximize Altitude; Murmuring Mystic; March of the Multitudes; Muse Drake; Mephitic Vapors; Maximize Velocity; Midnight Reaper; Quasiduplicate +Venerated Loxodon; Vraska, Golgari Queen; Thief of Sanity; Thousand-Year Storm; Treasure Nabber; Charnel Troll; Coveted Jewel; Cheering Fanatic; Genesis Storm; Geode Golem; Isolated Watchtower; Discovery; Azra Bladeseeker; Aminatou, the Fateshifter; Primordial Mist; Plaguecrafter; Lazav, the Multifarious; Nimbus Champion; Selective Snare; Stadium Vendors; Sentinel Tower; Skull Storm; Beamsplitter Mage; Echo Storm; Unmoored Ego; Fury Storm; Mission Briefing; Mnemonic Betrayal - Guilds of Ravnica - -Most of Guilds of Ravnica has been implemented and is available in this release. We're working hard on getting the last few cards added. +All of Guilds of Ravnica has been implemented and is available in this release. - Token Changes - Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. @@ -21,17 +21,14 @@ Added Randomized Standard Quest World with LDA archetype generated decks as duel In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. - Bug fixes - +Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. ------------- Known Issues: ------------- -Online multiplayer functionality has been restored, but is still a Work in Progress. We do have a dedicated developer actively working on the online multiplayer feature. - -"When you pay a cost" trigger for M19 cards don't work 100% correctly yet. We're still working on it. - -Other known issues are here: https://git.cardforge.org/core-developers/forge/issues +Known issues are here: https://git.cardforge.org/core-developers/forge/issues Feel free to report your own there if you have any. From 95e59f6d83608f755a01b024f0bd2091a7ef3ee2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 18:40:48 +0300 Subject: [PATCH 122/143] - Fixed Drowned Secrets oracle text and description. --- forge-gui/res/cardsfolder/d/drowned_secrets.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/d/drowned_secrets.txt b/forge-gui/res/cardsfolder/d/drowned_secrets.txt index 55e3fdba195..d8e0e2153d0 100644 --- a/forge-gui/res/cardsfolder/d/drowned_secrets.txt +++ b/forge-gui/res/cardsfolder/d/drowned_secrets.txt @@ -1,8 +1,8 @@ Name:Drowned Secrets ManaCost:1 U Types:Enchantment -T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you cast a blue spell, target player puts the top two cards if their library into their graveyard. +T:Mode$ SpellCast | ValidCard$ Card.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigMill | TriggerDescription$ Whenever you cast a blue spell, target player puts the top two cards of their library into their graveyard. SVar:TrigMill:DB$Mill | NumCards$ 2 | ValidTgts$ Player | TgtPrompt$ Select target player SVar:BuffedBy:Card.Blue DeckHas:Ability$Graveyard -Oracle:Whenever you cast a blue spell, target player puts the top two cards if their library into their graveyard. +Oracle:Whenever you cast a blue spell, target player puts the top two cards of their library into their graveyard. From d404979d59655b60817ffe266887d45d4d2219bc Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 18:49:58 +0300 Subject: [PATCH 123/143] - Updating CHANGES.txt. --- forge-gui/release-files/CHANGES.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/forge-gui/release-files/CHANGES.txt b/forge-gui/release-files/CHANGES.txt index d162b6af1d5..5d89dc73c97 100644 --- a/forge-gui/release-files/CHANGES.txt +++ b/forge-gui/release-files/CHANGES.txt @@ -8,6 +8,9 @@ Some work that streamlines tokens is going on under the hood. This may be the ca Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. +- Chaos Draft - +Chaos Draft is now available in both desktop and mobile Forge, where each player starts with three boosters belonging to random sets from Magic: the Gathering history (only 15-card booster packs are used). To start a Chaos Draft, choose the appropriate menu item after starting a booster draft. + - Bug fixes - Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. From 2a1a75318235e346837c86eed65db5ad68304133 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 19:48:05 +0300 Subject: [PATCH 124/143] - Minor mistype fix in SurveilEffect. --- .../src/main/java/forge/game/ability/effects/SurveilEffect.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/SurveilEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SurveilEffect.java index 740ce564b33..f93f1765383 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SurveilEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SurveilEffect.java @@ -18,7 +18,7 @@ public class SurveilEffect extends SpellAbilityEffect { num = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Amount"), sa); } - sb.append(" surveil (").append(num).append(")."); + sb.append(" surveils (").append(num).append(")."); return sb.toString(); } From c952354f56d29b41765807245477420216b122f5 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 20:13:25 +0300 Subject: [PATCH 125/143] - Fixed Sumala Woodshaper not revealing cards to the controller (the "look at" part of DB Dig). --- forge-gui/res/cardsfolder/s/sumala_woodshaper.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/sumala_woodshaper.txt b/forge-gui/res/cardsfolder/s/sumala_woodshaper.txt index 26db8431693..d398de4b996 100644 --- a/forge-gui/res/cardsfolder/s/sumala_woodshaper.txt +++ b/forge-gui/res/cardsfolder/s/sumala_woodshaper.txt @@ -3,5 +3,5 @@ ManaCost:2 G W Types:Creature Elf Druid PT:2/1 T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top four cards of your library. You may reveal a creature or enchantment 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$ 4 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature,Enchantment | RestRandomOrder$ True +SVar:TrigDig:DB$ Dig | DigNum$ 4 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Creature,Enchantment | RestRandomOrder$ True Oracle:When Sumala Woodshaper enters the battlefield, look at the top four cards of your library. You may reveal a creature or enchantment card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. From 46c764d5abbd5e297561203ac63b93362c520e1a Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 13 Oct 2018 21:02:47 +0300 Subject: [PATCH 126/143] - Temporarily revert a change in CostPartMana to avoid breaking Convoke, Improvise, and Delve. --- forge-game/src/main/java/forge/game/cost/CostPartMana.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/CostPartMana.java b/forge-game/src/main/java/forge/game/cost/CostPartMana.java index 1fd0b568131..32f1ae41f7b 100644 --- a/forge-game/src/main/java/forge/game/cost/CostPartMana.java +++ b/forge-game/src/main/java/forge/game/cost/CostPartMana.java @@ -21,7 +21,6 @@ import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; import forge.game.mana.ManaConversionMatrix; import forge.game.player.Player; -import forge.game.spellability.AbilityActivated; import forge.game.spellability.SpellAbility; /** @@ -152,9 +151,8 @@ public class CostPartMana extends CostPart { // TODO Auto-generated method stub sa.clearManaPaid(); - boolean isActivated = sa instanceof AbilityActivated; // decision not used here, the whole payment is interactive! - return payer.getController().payManaCost(this, sa, null, cardMatrix, isActivated); + return payer.getController().payManaCost(this, sa, null, cardMatrix, true); } } From 279c7ed97b5d82bdf2a91132a744f92c63437381 Mon Sep 17 00:00:00 2001 From: Sol Date: Sat, 13 Oct 2018 19:46:12 +0000 Subject: [PATCH 127/143] Update sworn_companions.txt --- forge-gui/res/cardsfolder/s/sworn_companions.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/sworn_companions.txt b/forge-gui/res/cardsfolder/s/sworn_companions.txt index 6504302ef29..e8b5d817986 100644 --- a/forge-gui/res/cardsfolder/s/sworn_companions.txt +++ b/forge-gui/res/cardsfolder/s/sworn_companions.txt @@ -1,6 +1,6 @@ Name:Sworn Companions ManaCost:2 W Types:Sorcery -A:SP$ Token | Cost$ 2 W | TokenAmount$ 2 | TokenScript$ w_1_1_soldier_lifelink +A:SP$ Token | Cost$ 2 W | TokenAmount$ 2 | TokenScript$ w_1_1_soldier_lifelink | SpellDescription$ Creature two 1/1 white Soldier creature tokens with lifelink. DeckHas:Ability$Token & Ability$LifeGain Oracle:Creature two 1/1 white Soldier creature tokens with lifelink. From 3889c75e32b60b2cb0d5de6d27031000326e6b3b Mon Sep 17 00:00:00 2001 From: Chris H Date: Sat, 13 Oct 2018 19:14:19 -0400 Subject: [PATCH 128/143] Improve flashback zone display --- forge-game/src/main/java/forge/game/zone/PlayerZone.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/zone/PlayerZone.java b/forge-game/src/main/java/forge/game/zone/PlayerZone.java index 0e9b48143b1..762ab38ae4b 100644 --- a/forge-game/src/main/java/forge/game/zone/PlayerZone.java +++ b/forge-game/src/main/java/forge/game/zone/PlayerZone.java @@ -63,6 +63,8 @@ public class PlayerZone extends Zone { return true; } + boolean graveyardCastable = c.hasKeyword(Keyword.FLASHBACK) || + c.hasKeyword(Keyword.RETRACE) || c.hasKeyword(Keyword.JUMP_START); for (final SpellAbility sa : c.getSpellAbilities()) { final ZoneType restrictZone = sa.getRestrictions().getZone(); @@ -76,7 +78,7 @@ public class PlayerZone extends Zone { } if (sa.isSpell() - && (c.hasKeyword(Keyword.FLASHBACK) && PlayerZone.this.is(ZoneType.Graveyard)) + && (graveyardCastable && PlayerZone.this.is(ZoneType.Graveyard)) && restrictZone.equals(ZoneType.Hand)) { return true; } From 8653338f56f3811b2517ac072bee310e1bdbab01 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 14 Oct 2018 08:57:06 +0300 Subject: [PATCH 129/143] - Underrealm Lich should not reveal a card going to hand. --- .../src/main/java/forge/game/ability/effects/DigEffect.java | 2 +- forge-gui/res/cardsfolder/u/underrealm_lich.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java index 365adf0855a..efa91cea1d2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/DigEffect.java @@ -286,7 +286,7 @@ public class DigEffect extends SpellAbilityEffect { } } - if (!changeValid.isEmpty() && !sa.hasParam("ExileFaceDown")) { + if (!changeValid.isEmpty() && !sa.hasParam("ExileFaceDown") && !sa.hasParam("NoReveal")) { game.getAction().reveal(movedCards, chooser, true, chooser + " picked " + (movedCards.size() == 1 ? "this card" : "these cards") + " from "); } diff --git a/forge-gui/res/cardsfolder/u/underrealm_lich.txt b/forge-gui/res/cardsfolder/u/underrealm_lich.txt index 5a4e13c31c1..31302c0e0b6 100644 --- a/forge-gui/res/cardsfolder/u/underrealm_lich.txt +++ b/forge-gui/res/cardsfolder/u/underrealm_lich.txt @@ -3,7 +3,7 @@ ManaCost:3 B G Types:Creature Zombie Elf Shaman PT:4/3 R:Event$ Draw | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ Dig | Description$ If you would draw a card, instead look at the top three cards of your library, then put one into your hand and the rest into your graveyard. -SVar:Dig:DB$Dig | DigNum$ 3 | ChangeNum$ 1 | ChangeValid$ Card | DestinationZone2$ Graveyard +SVar:Dig:DB$Dig | DigNum$ 3 | ChangeNum$ 1 | ChangeValid$ Card | DestinationZone2$ Graveyard | NoReveal$ True A:AB$ Pump | Cost$ PayLife<4> | Defined$ Self | KW$ Indestructible | SubAbility$ DBTap | SpellDescription$ CARDNAME gains indestructible until end of turn. Tap it. SVar:DBTap:DB$Tap | Defined$ Self Oracle:If you would draw a card, instead look at the top three cards of your library, then put one into your hand and the rest into your graveyard.\nPay 4 life: Underrealm Lich gains indestructible until end of turn. Tap it. From 1955b453fdaf143a56050e23ba19ef930df5374b Mon Sep 17 00:00:00 2001 From: Sol Date: Sun, 14 Oct 2018 12:30:13 +0000 Subject: [PATCH 130/143] Update teferi_hero_of_dominaria.txt --- forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt b/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt index 29919a6d2e4..6d914ba5f2e 100644 --- a/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt +++ b/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt @@ -4,7 +4,7 @@ Types:Legendary Planeswalker Teferi Loyalty:4 A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 1 | SubAbility$ DelTrigUntap | SpellDescription$ Draw a card. At the beginning of the next end step, untap two lands. SVar:DelTrigUntap:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigUntap | TriggerDescription$ At the beginning of the next end step, untap two lands. -SVar:TrigUntap:DB$ Untap | UntapExactly$ True | UntapType$ Land | Amount$ 2 | Defined$ You +SVar:TrigUntap:DB$ Untap | UntapUpTo$ True | UntapType$ Land | Amount$ 2 | Defined$ You A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 2 | IsCurse$ True | SpellDescription$ Put target nonland permanent into its owner's library third from the top. A:AB$ Effect | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Teferi, Hero of Dominaria | Image$ emblem_teferi_hero_of_dominaria | Triggers$ TrigDraw | SVars$ EffSpellCast | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls." SVar:TrigDraw:Mode$ Drawn | ValidCard$ Card.YouCtrl | Execute$ EffSpellCast | TriggerDescription$ Whenever you draw a card, exile target permanent an opponent controls. From 308c6bbccf87d8ab6c8ab875528960b984e54cd4 Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 15 Oct 2018 02:02:07 +0000 Subject: [PATCH 131/143] Update forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt --- forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt b/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt index 6d914ba5f2e..48f40466192 100644 --- a/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt +++ b/forge-gui/res/cardsfolder/t/teferi_hero_of_dominaria.txt @@ -2,7 +2,7 @@ Name:Teferi, Hero of Dominaria ManaCost:3 W U Types:Legendary Planeswalker Teferi Loyalty:4 -A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 1 | SubAbility$ DelTrigUntap | SpellDescription$ Draw a card. At the beginning of the next end step, untap two lands. +A:AB$ Draw | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Defined$ You | NumCards$ 1 | SubAbility$ DelTrigUntap | SpellDescription$ Draw a card. At the beginning of the next end step, untap up to two lands. SVar:DelTrigUntap:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigUntap | TriggerDescription$ At the beginning of the next end step, untap two lands. SVar:TrigUntap:DB$ Untap | UntapUpTo$ True | UntapType$ Land | Amount$ 2 | Defined$ You A:AB$ ChangeZone | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 2 | IsCurse$ True | SpellDescription$ Put target nonland permanent into its owner's library third from the top. @@ -10,4 +10,4 @@ A:AB$ Effect | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True SVar:TrigDraw:Mode$ Drawn | ValidCard$ Card.YouCtrl | Execute$ EffSpellCast | TriggerDescription$ Whenever you draw a card, exile target permanent an opponent controls. SVar:EffSpellCast:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Permanent.OppCtrl | TgtPrompt$ Select target permanent an opponent controls SVar:Picture:http://www.wizards.com/global/images/magic/general/teferi_hero_of_dominaria.jpg -Oracle:[+1]: Draw a card. At the beginning of the next end step, untap two lands.\n[-3]: Put target nonland permanent into its owner's library third from the top.\n[-8]: You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls." +Oracle:[+1]: Draw a card. At the beginning of the next end step, untap up to two lands.\n[-3]: Put target nonland permanent into its owner's library third from the top.\n[-8]: You get an emblem with "Whenever you draw a card, exile target permanent an opponent controls." From 361927c100c9dba4aab83bae63c5ea5216f578b6 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Mon, 15 Oct 2018 13:25:43 +0200 Subject: [PATCH 132/143] Brawl GRN format update --- forge-gui/res/formats/Casual/Brawl.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/formats/Casual/Brawl.txt b/forge-gui/res/formats/Casual/Brawl.txt index 84972f54ee9..8a2125573a6 100644 --- a/forge-gui/res/formats/Casual/Brawl.txt +++ b/forge-gui/res/formats/Casual/Brawl.txt @@ -3,5 +3,5 @@ Name:Brawl Order:101 Type:Casual Subtype:Commander -Sets:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19 -Banned:Baral, Chief of Compliance;Smuggler's Copter;Sorcerous Spyglass \ No newline at end of file +Sets:XLN, RIX, DOM, M19, GRN +Banned:Sorcerous Spyglass \ No newline at end of file From 8780b18ca5d12c53e42daa1828a56b3ad1c9131e Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Mon, 15 Oct 2018 13:32:19 +0200 Subject: [PATCH 133/143] Update standard ban list: remove cards that rotated --- forge-gui/res/formats/Sanctioned/Standard.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/formats/Sanctioned/Standard.txt b/forge-gui/res/formats/Sanctioned/Standard.txt index 2093082499f..7413d4d97d2 100644 --- a/forge-gui/res/formats/Sanctioned/Standard.txt +++ b/forge-gui/res/formats/Sanctioned/Standard.txt @@ -4,4 +4,4 @@ Order:101 Subtype:Standard Type:Sanctioned Sets:XLN, RIX, DOM, M19, GRN -Banned: Attune with Aether; Rogue Refiner; Rampaging Ferocidon; Ramunap Ruins; Smuggler's Copter; Aetherworks Marvel; Felidar Guardian +Banned: Rampaging Ferocidon From 87f10ea7423cc6e5cb7baa45f1ff690fed46e2e9 Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Mon, 15 Oct 2018 15:40:05 +0000 Subject: [PATCH 134/143] Update README.txt for release --- forge-gui/README.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/forge-gui/README.txt b/forge-gui/README.txt index 6d5adeec3c1..ffd1f5926ba 100644 --- a/forge-gui/README.txt +++ b/forge-gui/README.txt @@ -1,4 +1,4 @@ -Forge: 10/13/2018 ver 1.6.17 +Forge: 10/15/2018 ver 1.6.17 18204 cards in total. @@ -20,6 +20,9 @@ Some work that streamlines tokens is going on under the hood. This may be the ca Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. +- Chaos Draft - +Chaos Draft is now available in both desktop and mobile Forge, where each player starts with three boosters belonging to random sets from Magic: the Gathering history (only 15-card booster packs are used). To start a Chaos Draft, choose the appropriate menu item after starting a booster draft. + - Bug fixes - Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. From a8fbfce51ff4ccd85751b8a29e6d4ccdcd3303ed Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Mon, 15 Oct 2018 15:42:12 +0000 Subject: [PATCH 135/143] [maven-release-plugin] prepare release forge-1.6.17 --- forge-ai/pom.xml | 5 +- forge-core/pom.xml | 5 +- forge-game/pom.xml | 5 +- forge-gui-android/pom.xml | 58 +++----- forge-gui-desktop/pom.xml | 273 ++++++++++++++--------------------- forge-gui-ios/pom.xml | 5 +- forge-gui-mobile-dev/pom.xml | 5 +- forge-gui-mobile/pom.xml | 5 +- forge-gui/pom.xml | 5 +- pom.xml | 13 +- 10 files changed, 150 insertions(+), 229 deletions(-) diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml index 5c2e49733c3..a5ecbb4ea94 100644 --- a/forge-ai/pom.xml +++ b/forge-ai/pom.xml @@ -1,13 +1,12 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-ai diff --git a/forge-core/pom.xml b/forge-core/pom.xml index 43ca41a1bbc..d4e40426300 100644 --- a/forge-core/pom.xml +++ b/forge-core/pom.xml @@ -1,13 +1,12 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-core diff --git a/forge-game/pom.xml b/forge-game/pom.xml index e432898b34c..48d48cf71c1 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -1,13 +1,12 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-game diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 686f4a26ecc..ac43f1ac128 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -1,5 +1,4 @@ - + 4.0.0 @@ -20,7 +19,7 @@ forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui-android @@ -215,7 +214,7 @@ true true - + ${project.build.directory}/${project.build.finalName}.apk @@ -278,29 +277,22 @@ - - - - - - - + + + + + + + - - + + - - - - + + + + @@ -346,22 +338,16 @@ package - - + + - - + + - + - + diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index c0d6f955b9c..6946e02a7e8 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -1,11 +1,10 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui-desktop @@ -275,46 +274,38 @@ - + - - - - - - - + + + + + + + - - + + - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + @@ -437,53 +428,41 @@ - + - - - - - - - - - - + + + + + + + + + + - - + + - - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + @@ -561,61 +540,41 @@ pre-integration-test - + - - - - - - - + + + + + + + - - - - - @@ -695,54 +654,38 @@ pre-integration-test - + - - - - + + + + - - - - - diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index 75741f26559..f06901f867a 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -1,5 +1,4 @@ - + 4.0.0 @@ -13,7 +12,7 @@ forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui-ios diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 4c6a43115c8..c644e2a87ba 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -1,11 +1,10 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui-mobile-dev diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 7880adfd083..452b69ed10d 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -1,11 +1,10 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui-mobile diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 3b9d8055d54..663f2a1831b 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -1,11 +1,10 @@ - + 4.0.0 forge forge - 1.6.17-SNAPSHOT + 1.6.17 forge-gui diff --git a/pom.xml b/pom.xml index 0c0da905a9d..5f95155e376 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,11 @@ - + 4.0.0 forge forge pom Forge Parent - 1.6.17-SNAPSHOT + 1.6.17 Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules. @@ -176,7 +175,7 @@ scm:git:ssh://git@git.cardforge.org/core-developers/forge.git scm:git:ssh://git@git.cardforge.org/core-developers/forge.git - HEAD + forge-1.6.17 @@ -376,7 +375,7 @@ - + @@ -390,7 +389,7 @@ - + @@ -403,7 +402,7 @@ - + From b11830a12afb836842a79001b844c0a352450186 Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Mon, 15 Oct 2018 15:42:16 +0000 Subject: [PATCH 136/143] [maven-release-plugin] prepare for next development iteration --- forge-ai/pom.xml | 2 +- forge-core/pom.xml | 2 +- forge-game/pom.xml | 2 +- forge-gui-android/pom.xml | 2 +- forge-gui-desktop/pom.xml | 2 +- forge-gui-ios/pom.xml | 2 +- forge-gui-mobile-dev/pom.xml | 2 +- forge-gui-mobile/pom.xml | 2 +- forge-gui/pom.xml | 2 +- pom.xml | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/forge-ai/pom.xml b/forge-ai/pom.xml index a5ecbb4ea94..b3b53fc120f 100644 --- a/forge-ai/pom.xml +++ b/forge-ai/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-ai diff --git a/forge-core/pom.xml b/forge-core/pom.xml index d4e40426300..33171490943 100644 --- a/forge-core/pom.xml +++ b/forge-core/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-core diff --git a/forge-game/pom.xml b/forge-game/pom.xml index 48d48cf71c1..c9659499c2d 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -6,7 +6,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-game diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index ac43f1ac128..83e876ec6c9 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -19,7 +19,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui-android diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index 6946e02a7e8..6b78bad350c 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui-desktop diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index f06901f867a..c34c7688255 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -12,7 +12,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui-ios diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index c644e2a87ba..86c59d8ffe0 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui-mobile-dev diff --git a/forge-gui-mobile/pom.xml b/forge-gui-mobile/pom.xml index 452b69ed10d..cfaebbc7f52 100644 --- a/forge-gui-mobile/pom.xml +++ b/forge-gui-mobile/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui-mobile diff --git a/forge-gui/pom.xml b/forge-gui/pom.xml index 663f2a1831b..1af393d28a6 100644 --- a/forge-gui/pom.xml +++ b/forge-gui/pom.xml @@ -4,7 +4,7 @@ forge forge - 1.6.17 + 1.6.18-SNAPSHOT forge-gui diff --git a/pom.xml b/pom.xml index 5f95155e376..f5046bc50ec 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ forge pom Forge Parent - 1.6.17 + 1.6.18-SNAPSHOT Forge lets you play the card game Magic: The Gathering against a computer opponent using all of the rules. @@ -175,7 +175,7 @@ scm:git:ssh://git@git.cardforge.org/core-developers/forge.git scm:git:ssh://git@git.cardforge.org/core-developers/forge.git - forge-1.6.17 + HEAD From 32b336274e6a7c6bca12f867b1107015a3cd9bda Mon Sep 17 00:00:00 2001 From: Blacksmith Date: Mon, 15 Oct 2018 15:47:03 +0000 Subject: [PATCH 137/143] Clear out release files in preparation for next release --- forge-gui/README.txt | 94 +---------------------------- forge-gui/release-files/CHANGES.txt | 14 ----- 2 files changed, 1 insertion(+), 107 deletions(-) diff --git a/forge-gui/README.txt b/forge-gui/README.txt index ffd1f5926ba..11b369846f2 100644 --- a/forge-gui/README.txt +++ b/forge-gui/README.txt @@ -1,93 +1 @@ -Forge: 10/15/2018 ver 1.6.17 - -18204 cards in total. - - --------------- -Release Notes: --------------- - -- New Cards - -Venerated Loxodon; Vraska, Golgari Queen; Thief of Sanity; Thousand-Year Storm; Treasure Nabber; Charnel Troll; Coveted Jewel; Cheering Fanatic; Genesis Storm; Geode Golem; Isolated Watchtower; Discovery; Azra Bladeseeker; Aminatou, the Fateshifter; Primordial Mist; Plaguecrafter; Lazav, the Multifarious; Nimbus Champion; Selective Snare; Stadium Vendors; Sentinel Tower; Skull Storm; Beamsplitter Mage; Echo Storm; Unmoored Ego; Fury Storm; Mission Briefing; Mnemonic Betrayal - -- Guilds of Ravnica - -All of Guilds of Ravnica has been implemented and is available in this release. - -- Token Changes - -Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. - -- Random Quest World - -Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. -In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. - -- Chaos Draft - -Chaos Draft is now available in both desktop and mobile Forge, where each player starts with three boosters belonging to random sets from Magic: the Gathering history (only 15-card booster packs are used). To start a Chaos Draft, choose the appropriate menu item after starting a booster draft. - -- Bug fixes - -Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. -As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. - -------------- -Known Issues: -------------- - -Known issues are here: https://git.cardforge.org/core-developers/forge/issues - -Feel free to report your own there if you have any. - -------------- -Installation: -------------- - -The Forge archive includes a MANUAL.txt file and we ask that you spend a few minutes reading this file as it contains some information that may prove useful. We do tend to update this file at times and you should quickly read this file and look for new information for each and every new release. Thank you. - -The archive format used for the Forge distribution is ".tar.bz2". There are utilities for Windows, Mac OS and the various *nix's that can be used to extract/decompress these ".tar.bz2" archives. We recommend that you extract/decompress the Forge archive into a new and unused folder. - -Some people use the Windows application 7zip. This utility can be found at http://www.7-zip.org/download.html. Mac users can double click on the archive and the application Archive Utility will launch and extract the archive. Mac users do not need to download a separate utility. - -Once the Forge archive has been decompressed you should then be able to launch Forge by using the included launcher. Launching Forge by double clicking on the forge jar file in the past caused a java heap space error. Forge's memory requirements have increased over time and the launchers increase the java heap space available to Forge. Currently you can launch Forge by double clicking on the forge jar file without a java heap space error but this is likely to change as we add in more sounds, icons, etc. - -- The Mac OS application version - -We haven't been able to distribute the OS X Application version of Forge in sometime. We've recently automated our release tools, and will continue to look in the viability of creating this file now that things are autoamted. - - -- Online Multiplayer - -For local network play you should only need two systems running Forge. One to host and one to join and play. For remote (over the Internet) play you will need to ensure that the port used (36743 by default) is forwarded to the hosting machine. - --------------------- -Active Contributors: --------------------- - -Agetian -Austinio7116 -Churrufli -DrDev -excessum -Gos -Hanmac -Indigo Dragon -Jamin Collins -KrazyTheFox -Luke -Marek14 -mcrawford620 -Meerkov -Myrd -nefigah -OgreBattlecruiser -pfps -Seravy -Sirspud -Sloth -slyfox7777777 -Sol -Swordshine -tjtillman -tojammot -torridus -Xyx -Zuchinni - -(Quest icons used created by Teekatas, from his Legendora set http://raindropmemory.deviantart.com) -(Thanks to the XMage team for permission to use their targeting arrows.) -(Thanks to http://www.freesound.org/browse/ for providing some sound files.) \ No newline at end of file +This file is automatically updated by our release bot on Discord, Blacksmith. It is created from the files present in the 'release-files' directory. Please do not hand-edit this file if using the bot to perform a release, as your changes will be overwritten. \ No newline at end of file diff --git a/forge-gui/release-files/CHANGES.txt b/forge-gui/release-files/CHANGES.txt index 5d89dc73c97..05f0bf1829e 100644 --- a/forge-gui/release-files/CHANGES.txt +++ b/forge-gui/release-files/CHANGES.txt @@ -1,16 +1,2 @@ -- Guilds of Ravnica - -All of Guilds of Ravnica has been implemented and is available in this release. - -- Token Changes - -Some work that streamlines tokens is going on under the hood. This may be the cause of missing/incorrect token images if you notice any, though we don't expect there to be any issues. - -- Random Quest World - -Added Randomized Standard Quest World with LDA archetype generated decks as duels and standard card pool - this is designed so that there is always a quest world representing the current standard metagame - with a standard cardpool and decks generated using the LDA archetype based deck generation. To access this mode, select the "Random Standard" world in the world selection dropdown. -In this world as well as the random duel opponents, there are randomly generated challenges of varying difficulty and of 2 different types. One type pits your standard decks against modern, legacy or vintage opponents, the other gives the AI a standard deck, but with a headstart of one or more cards on the battlefield. - -- Chaos Draft - -Chaos Draft is now available in both desktop and mobile Forge, where each player starts with three boosters belonging to random sets from Magic: the Gathering history (only 15-card booster packs are used). To start a Chaos Draft, choose the appropriate menu item after starting a booster draft. - - Bug fixes - -Gonti (and friends) should be fixed now. Let us know if you see anything wonky with mana pools. As always, this release of Forge features an assortment of bug fixes and improvements based on user feedback during the previous release run. From 81776f88a6bffea4ac43f2c01c4d8c18de1a82fc Mon Sep 17 00:00:00 2001 From: Agetian Date: Mon, 15 Oct 2018 19:51:45 +0300 Subject: [PATCH 138/143] - Preparing Forge for Android publish 1.6.17.001 [incremental]. --- forge-gui-android/pom.xml | 2 +- forge-gui-ios/pom.xml | 2 +- forge-gui-mobile/src/forge/Forge.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 83e876ec6c9..6e925598a72 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -6,7 +6,7 @@ jar -Xms1024m -Xmx1536m - 1.6.16.001 + 1.6.17.001 keystore alias storepass diff --git a/forge-gui-ios/pom.xml b/forge-gui-ios/pom.xml index c34c7688255..3a5a9720a78 100644 --- a/forge-gui-ios/pom.xml +++ b/forge-gui-ios/pom.xml @@ -6,7 +6,7 @@ jar -Xms128m -Xmx2048m - 1.6.16.001 + 1.6.17.001 diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 9c56811a115..ad9e7363cd6 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -34,7 +34,7 @@ import java.util.List; import java.util.Stack; public class Forge implements ApplicationListener { - public static final String CURRENT_VERSION = "1.6.16.001"; + public static final String CURRENT_VERSION = "1.6.17.001"; private static final ApplicationListener app = new Forge(); private static Clipboard clipboard; From 6c2dfcffff898cec39668b085236e98ec0094d36 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Mon, 15 Oct 2018 22:05:13 +0200 Subject: [PATCH 139/143] Epic rework --- .../ability/effects/CopySpellAbilityEffect.java | 15 ++++++++++++++- .../java/forge/game/card/CardFactoryUtil.java | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java index 6d7b25e97d0..26ca842301d 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java @@ -167,7 +167,20 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { "Select a spell to copy", ImmutableMap.of()); chosenSA.setActivatingPlayer(controller); for (int i = 0; i < amount; i++) { - copies.add(CardFactory.copySpellAbilityAndPossiblyHost(card, chosenSA.getHostCard(), chosenSA, true)); + SpellAbility copy = CardFactory.copySpellAbilityAndPossiblyHost( + card, chosenSA.getHostCard(), chosenSA, true); + + // extra case for Epic to remove the keyword and the last part of the SpellAbility + if (sa.hasParam("Epic")) { + copy.getHostCard().removeIntrinsicKeyword("Epic"); + SpellAbility sub = copy; + while (sub.getSubAbility() != null) { + sub = sub.getSubAbility(); + } + sub.getParent().setSubAbility(null); + } + + copies.add(copy); } } diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 6f0b68c466f..3d62dde6fbe 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -3759,14 +3759,14 @@ public class CardFactoryUtil { // Epic does modify existing SA, and does not add new one // Add the Epic effect as a subAbility - String dbStr = "DB$ Effect | Triggers$ EpicTrigger | SVars$ EpicCopy | StaticAbilities$ EpicCantBeCast | Duration$ Permanent | Unique$ True"; + String dbStr = "DB$ Effect | Triggers$ EpicTrigger | SVars$ EpicCopy | StaticAbilities$ EpicCantBeCast | Duration$ Permanent"; final AbilitySub newSA = (AbilitySub) AbilityFactory.getAbility(dbStr.toString(), card); card.setSVar("EpicCantBeCast", "Mode$ CantBeCast | ValidCard$ Card | Caster$ You | EffectZone$ Command | Description$ For the rest of the game, you can't cast spells."); card.setSVar("EpicTrigger", "Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ EpicCopy | TriggerDescription$ " + "At the beginning of each of your upkeeps, copy " + card.toString() + " except for its epic ability."); - card.setSVar("EpicCopy", "DB$ CopySpellAbility | Defined$ EffectSource"); + card.setSVar("EpicCopy", "DB$ CopySpellAbility | Defined$ EffectSource | Epic$ True"); final SpellAbility origSA = card.getFirstSpellAbility(); From ac3370e83a76d95cbd4f0d6d234f6565eb188019 Mon Sep 17 00:00:00 2001 From: Sol Date: Tue, 16 Oct 2018 01:55:49 +0000 Subject: [PATCH 140/143] Update kraul_harpooner.txt not up to targeting --- forge-gui/res/cardsfolder/k/kraul_harpooner.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/k/kraul_harpooner.txt b/forge-gui/res/cardsfolder/k/kraul_harpooner.txt index 539450d9419..0fde4013fb2 100644 --- a/forge-gui/res/cardsfolder/k/kraul_harpooner.txt +++ b/forge-gui/res/cardsfolder/k/kraul_harpooner.txt @@ -5,6 +5,6 @@ PT:3/2 K:Reach T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, choose up to one target creature with flying you don't control. CARDNAME gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard, then you may have CARDNAME fight that creature. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ X | References$ X | SubAbility$ DBFight -SVar:DBFight:DB$ Fight | Defined$ Self | ValidTgts$ Creature.withFlying+YouDontCtrl | TgtPrompt$ Select target creature with flying you don't control +SVar:DBFight:DB$ Fight | Defined$ Self | ValidTgts$ Creature.withFlying+YouDontCtrl | TgtPrompt$ Select target creature with flying you don't control | TargetMin$ 0 | TargetMax$ 1 SVar:X:Count$TypeInYourYard.Creature Oracle:Reach\nUndergrowth — When Kraul Harpooner enters the battlefield, choose up to one target creature with flying you don't control. Kraul Harpooner gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard, then you may have Kraul Harpooner fight that creature. From a80396ae97595201f7970867d58135f553a2ec3b Mon Sep 17 00:00:00 2001 From: Chris H Date: Mon, 15 Oct 2018 22:18:23 -0400 Subject: [PATCH 141/143] Convert FullCost to PermanentCreature --- .../main/java/forge/game/card/CardFactoryUtil.java | 13 ------------- forge-gui/res/cardsfolder/c/caller_of_the_hunt.txt | 2 +- forge-gui/res/cardsfolder/h/headless_skaab.txt | 2 +- forge-gui/res/cardsfolder/i/imperiosaur.txt | 3 +-- forge-gui/res/cardsfolder/m/makeshift_mauler.txt | 2 +- forge-gui/res/cardsfolder/m/myr_superion.txt | 2 +- forge-gui/res/cardsfolder/r/relentless_skaabs.txt | 2 +- forge-gui/res/cardsfolder/s/skaab_goliath.txt | 2 +- forge-gui/res/cardsfolder/s/skaab_ruinator.txt | 2 +- forge-gui/res/cardsfolder/s/stitched_drake.txt | 2 +- 10 files changed, 9 insertions(+), 23 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 452f49d69ea..85243184cd8 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2010,18 +2010,6 @@ public class CardFactoryUtil { inst.createTraits(card, true); } - // AddCost - if (card.hasSVar("FullCost")) { - String k[] = card.getSVar("FullCost").split(":"); - final SpellAbility sa1 = card.getFirstSpellAbility(); - if (sa1 != null && sa1.isSpell()) { - sa1.setPayCosts(new Cost(k[0], sa1.isAbility())); - if (k.length > 1) { - sa1.getMapParams().put("AILogic", k[1]); - } - } - } - // AltCost String altCost = card.getSVar("AltCost"); if (StringUtils.isNotBlank(altCost)) { @@ -2030,7 +2018,6 @@ public class CardFactoryUtil { card.addSpellAbility(makeAltCostAbility(card, altCost, sa1)); } } - } private static ReplacementEffect createETBReplacement(final Card card, ReplacementLayer layer, diff --git a/forge-gui/res/cardsfolder/c/caller_of_the_hunt.txt b/forge-gui/res/cardsfolder/c/caller_of_the_hunt.txt index e973b31e704..84849bc4d9d 100644 --- a/forge-gui/res/cardsfolder/c/caller_of_the_hunt.txt +++ b/forge-gui/res/cardsfolder/c/caller_of_the_hunt.txt @@ -2,8 +2,8 @@ Name:Caller of the Hunt ManaCost:2 G Types:Creature Human PT:*/* +A:SP$ PermanentCreature | Cost$ 2 G ChooseCreatureType<1> | AILogic$ MostProminentOnBattlefield S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of creatures of the chosen type on the battlefield. SVar:X:Count$Valid Creature.ChosenType -SVar:FullCost:2 G ChooseCreatureType<1>:MostProminentOnBattlefield SVar:Picture:http://www.wizards.com/global/images/magic/general/caller_of_the_hunt.jpg Oracle:As an additional cost to cast this spell, choose a creature type.\nCaller of the Hunt's power and toughness are each equal to the number of creatures of the chosen type on the battlefield. diff --git a/forge-gui/res/cardsfolder/h/headless_skaab.txt b/forge-gui/res/cardsfolder/h/headless_skaab.txt index 7d321382402..44f9e3cc5d1 100644 --- a/forge-gui/res/cardsfolder/h/headless_skaab.txt +++ b/forge-gui/res/cardsfolder/h/headless_skaab.txt @@ -3,6 +3,6 @@ ManaCost:2 U Types:Creature Zombie Warrior PT:3/6 K:CARDNAME enters the battlefield tapped. -SVar:FullCost:2 U ExileFromGrave<1/Creature> +A:SP$ PermanentCreature | Cost$ 2 U ExileFromGrave<1/Creature> SVar:Picture:http://www.wizards.com/global/images/magic/general/headless_skaab.jpg Oracle:As an additional cost to cast Headless Skaab, exile a creature card from your graveyard.\nHeadless Skaab enters the battlefield tapped. diff --git a/forge-gui/res/cardsfolder/i/imperiosaur.txt b/forge-gui/res/cardsfolder/i/imperiosaur.txt index 1ac3fcee99d..53c761e7050 100644 --- a/forge-gui/res/cardsfolder/i/imperiosaur.txt +++ b/forge-gui/res/cardsfolder/i/imperiosaur.txt @@ -2,7 +2,6 @@ Name:Imperiosaur ManaCost:2 G G Types:Creature Dinosaur Text:Spend only mana produced by basic lands to cast CARDNAME. -PT:5/5 -SVar:FullCost:Mana<2 G G\Basic> +A:SP$ PermanentCreature | Cost$ Mana<2 G G\Basic> SVar:Picture:http://resources.wizards.com/magic/cards/fut/en-us/card130634.jpg Oracle:Spend only mana produced by basic lands to cast Imperiosaur. diff --git a/forge-gui/res/cardsfolder/m/makeshift_mauler.txt b/forge-gui/res/cardsfolder/m/makeshift_mauler.txt index 6e15a9ea94c..bf5f2173f5d 100644 --- a/forge-gui/res/cardsfolder/m/makeshift_mauler.txt +++ b/forge-gui/res/cardsfolder/m/makeshift_mauler.txt @@ -2,6 +2,6 @@ Name:Makeshift Mauler ManaCost:3 U Types:Creature Zombie Horror PT:4/5 -SVar:FullCost:3 U ExileFromGrave<1/Creature> +A:SP$ PermanentCreature | Cost$ 3 U ExileFromGrave<1/Creature> SVar:Picture:http://www.wizards.com/global/images/magic/general/makeshift_mauler.jpg Oracle:As an additional cost to cast Makeshift Mauler, exile a creature card from your graveyard. diff --git a/forge-gui/res/cardsfolder/m/myr_superion.txt b/forge-gui/res/cardsfolder/m/myr_superion.txt index 3d9a93a570d..b309044b89f 100644 --- a/forge-gui/res/cardsfolder/m/myr_superion.txt +++ b/forge-gui/res/cardsfolder/m/myr_superion.txt @@ -3,7 +3,7 @@ ManaCost:2 Types:Artifact Creature Myr PT:5/6 Text:Spend only mana produced by creatures to cast CARDNAME. -SVar:FullCost:Mana<2\Creature> +A:SP$ PermanentCreature | Cost$ Mana<2\Creature> SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/myr_superion.jpg Oracle:Spend only mana produced by creatures to cast Myr Superion. diff --git a/forge-gui/res/cardsfolder/r/relentless_skaabs.txt b/forge-gui/res/cardsfolder/r/relentless_skaabs.txt index e487dab907b..6d0879aa058 100644 --- a/forge-gui/res/cardsfolder/r/relentless_skaabs.txt +++ b/forge-gui/res/cardsfolder/r/relentless_skaabs.txt @@ -3,6 +3,6 @@ ManaCost:3 U U Types:Creature Zombie PT:4/4 K:Undying -SVar:FullCost:3 U U ExileFromGrave<1/Creature> +A:SP$ PermanentCreature | Cost$ 3 U U ExileFromGrave<1/Creature> SVar:Picture:http://www.wizards.com/global/images/magic/general/relentless_skaabs.jpg Oracle:As an additional cost to cast Relentless Skaabs, exile a creature card from your graveyard.\nUndying (When this creature 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.) diff --git a/forge-gui/res/cardsfolder/s/skaab_goliath.txt b/forge-gui/res/cardsfolder/s/skaab_goliath.txt index 9b1f20a26f2..15f63a8a8e3 100644 --- a/forge-gui/res/cardsfolder/s/skaab_goliath.txt +++ b/forge-gui/res/cardsfolder/s/skaab_goliath.txt @@ -3,6 +3,6 @@ ManaCost:5 U Types:Creature Zombie Giant PT:6/9 K:Trample -SVar:FullCost:5 U ExileFromGrave<2/Creature> +A:SP$ PermanentCreature | Cost$ 5 U ExileFromGrave<2/Creature> SVar:Picture:http://www.wizards.com/global/images/magic/general/skaab_goliath.jpg Oracle:As an additional cost to cast Skaab Goliath, exile two creature cards from your graveyard.\nTrample diff --git a/forge-gui/res/cardsfolder/s/skaab_ruinator.txt b/forge-gui/res/cardsfolder/s/skaab_ruinator.txt index f13a8f42cae..38ab2d38e05 100644 --- a/forge-gui/res/cardsfolder/s/skaab_ruinator.txt +++ b/forge-gui/res/cardsfolder/s/skaab_ruinator.txt @@ -3,7 +3,7 @@ ManaCost:1 U U Types:Creature Zombie Horror PT:5/6 K:Flying -SVar:FullCost:1 U U ExileFromGrave<3/Creature> +A:SP$ PermanentCreature | Cost$ 1 U U ExileFromGrave<3/Creature> SVar:AltCost:Cost$ 1 U U ExileFromGrave<3/Creature.Other> | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard. SVar:Picture:http://www.wizards.com/global/images/magic/general/skaab_ruinator.jpg Oracle:As an additional cost to cast Skaab Ruinator, exile three creature cards from your graveyard.\nFlying\nYou may cast Skaab Ruinator from your graveyard. diff --git a/forge-gui/res/cardsfolder/s/stitched_drake.txt b/forge-gui/res/cardsfolder/s/stitched_drake.txt index a12f6807393..4330e399a22 100644 --- a/forge-gui/res/cardsfolder/s/stitched_drake.txt +++ b/forge-gui/res/cardsfolder/s/stitched_drake.txt @@ -3,6 +3,6 @@ ManaCost:1 U U Types:Creature Zombie Drake PT:3/4 K:Flying -SVar:FullCost:1 U U ExileFromGrave<1/Creature> +A:SP$ PermanentCreature | Cost$ 1 U U ExileFromGrave<1/Creature> SVar:Picture:http://www.wizards.com/global/images/magic/general/stitched_drake.jpg Oracle:As an additional cost to cast Stitched Drake, exile a creature card from your graveyard.\nFlying From fb7ac6ea21192955ae5920fc5d8113b080174b77 Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Tue, 16 Oct 2018 05:21:02 +0000 Subject: [PATCH 142/143] Added puzzle PS_GRN2, improved puzzle PS_GRN1. --- forge-gui/res/puzzle/PS_GRN1.pzl | 4 ++-- forge-gui/res/puzzle/PS_GRN2.pzl | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 forge-gui/res/puzzle/PS_GRN2.pzl diff --git a/forge-gui/res/puzzle/PS_GRN1.pzl b/forge-gui/res/puzzle/PS_GRN1.pzl index 8a189e3af52..c0b3fd3668e 100644 --- a/forge-gui/res/puzzle/PS_GRN1.pzl +++ b/forge-gui/res/puzzle/PS_GRN1.pzl @@ -4,7 +4,7 @@ URL:https://i0.wp.com/www.possibilitystorm.com/wp-content/uploads/2018/10/083.-G Goal:Win Turns:1 Difficulty:Rare -Description:Win this turn. When this puzzle starts, you will be prompted to pay 2 life for Sacred Foundry, you should choose "No" (Sacred Foundry will be placed on the battlefield untapped regardless). +Description:Win this turn. [state] humanlife=20 ailife=5 @@ -12,5 +12,5 @@ turn=1 activeplayer=human activephase=MAIN1 humanhand=Heroic Reinforcements;Aurelia, Exemplar of Justice;Garna, the Bloodflame;Deafening Clarion;Vraska's Contempt -humanbattlefield=Blade Instructor;Goblin Banneret;Barging Sergeant;Angrath, the Flame-Chained|Counters:LOYALTY=5;Sacred Foundry;Sacred Foundry;Sacred Foundry;Sacred Foundry;Dragonskull Summit;Dragonskull Summit +humanbattlefield=Blade Instructor;Goblin Banneret;Barging Sergeant;Angrath, the Flame-Chained|Counters:LOYALTY=5;Sacred Foundry|Set:GRN|NoETBTrigs;Sacred Foundry|Set:GRN|NoETBTrigs;Sacred Foundry|Set:GRN|NoETBTrigs;Sacred Foundry|Set:GRN|NoETBTrigs;Dragonskull Summit;Dragonskull Summit aibattlefield=Josu Vess, Lich Knight;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom;t:Zombie Knight,P:2,T:2,Cost:no cost,Color:B,Types:Creature-Zombie-Knight,Keywords:Menace,Image:b_2_2_zombie_knight_dom diff --git a/forge-gui/res/puzzle/PS_GRN2.pzl b/forge-gui/res/puzzle/PS_GRN2.pzl new file mode 100644 index 00000000000..84bfbcde0d8 --- /dev/null +++ b/forge-gui/res/puzzle/PS_GRN2.pzl @@ -0,0 +1,17 @@ +[metadata] +Name:Possibility Storm - Guilds of Ravnica #02 +URL:https://i1.wp.com/www.possibilitystorm.com/wp-content/uploads/2018/10/084.-GRN2.jpg +Goal:Win +Turns:1 +Difficulty:Rare +Description:Win this turn. Assume you have no instant or sorcery spells left in your library. +[state] +humanlife=20 +ailife=12 +turn=1 +activeplayer=human +activephase=MAIN1 +humanhand=Arclight Phoenix;Sonic Assault;Invert // Invent;Response // Resurgence +humanlibrary=Plains|Set:GRN;Island|Set:GRN;Swamp|Set:GRN;Mountain|Set:GRN;Forest|Set:GRN +humanbattlefield=Runaway Steam-Kin|Counters:P1P1=1|Id:1;Tilonalli's Crown|Attaching:1;Rampaging Monument|Counters:P1P1=3;Sacred Foundry|Set:GRN|NoETBTrigs;Sacred Foundry|Set:GRN|NoETBTrigs;Steam Vents|Set:GRN|NoETBTrigs;Steam Vents|Set:GRN|NoETBTrigs;Izzet Guildgate|Set:GRN;Izzet Guildgate|Set:GRN +aibattlefield=Looming Altisaur;Territorial Allosaurus;Verdant Sun's Avatar;Polyraptor;Emissary of Sunrise|Id:2;Forebear's Blade|Attaching:2 From 17cb065079cdcf7b8f75fdb4cd8f0084b7574289 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Tue, 16 Oct 2018 10:39:11 +0200 Subject: [PATCH 143/143] Update legacy bannings --- forge-gui/res/formats/Sanctioned/Legacy.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/formats/Sanctioned/Legacy.txt b/forge-gui/res/formats/Sanctioned/Legacy.txt index c2856eda962..08eda419476 100644 --- a/forge-gui/res/formats/Sanctioned/Legacy.txt +++ b/forge-gui/res/formats/Sanctioned/Legacy.txt @@ -3,4 +3,4 @@ Name:Legacy Order:105 Subtype:Legacy Type:Sanctioned -Banned:Adriana's Valor; Advantageous Proclamation; Assemble the Rank and Vile; Backup Plan; Brago's Favor; Double Stroke; Echoing Boon; Emissary's Ploy; Hired Heist; Hold the Perimeter; Hymn of the Wilds; Immediate Action; Incendiary Dissent; Iterative Analysis; Muzzio's Preparations; Natural Unity; Power Play; Secret Summoning; Secrets of Paradise; Sentinel Dispatch; Sovereign's Realm; Summoner's Bond; Unexpected Potential; Weight Advantage; Worldknit; Amulet of Quoz; Bronze Tablet; Contract from Below; Darkpact; Demonic Attorney; Jeweled Bird; Rebirth; Tempest Efreet; Timmerian Fiends; Ancestral Recall; Balance; Bazaar of Baghdad; Black Lotus; Channel; Chaos Orb; Demonic Consultation; Demonic Tutor; Dig Through Time; Earthcraft; Falling Star; Fastbond; Flash; Frantic Search; Goblin Recruiter; Gush; Hermit Druid; Imperial Seal; Library of Alexandria; 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; Mystical Tutor; Necropotence; Oath of Druids; Sensei's Divining Top; Shahrazad; Skullclamp; Sol Ring; Strip Mine; Survival of the Fittest; Time Vault; Time Walk; Timetwister; Tinker; Tolarian Academy; Treasure Cruise; Vampiric Tutor; Wheel of Fortune; Windfall; Yawgmoth's Bargain; Yawgmoth's Will +Banned:Adriana's Valor; Advantageous Proclamation; Assemble the Rank and Vile; Backup Plan; Brago's Favor; Deathrite Shaman; Double Stroke; Echoing Boon; Emissary's Ploy; Gitaxian Probe; Hired Heist; Hold the Perimeter; Hymn of the Wilds; Immediate Action; Incendiary Dissent; Iterative Analysis; Muzzio's Preparations; Natural Unity; Power Play; Secret Summoning; Secrets of Paradise; Sentinel Dispatch; Sovereign's Realm; Summoner's Bond; Unexpected Potential; Weight Advantage; Worldknit; Amulet of Quoz; Bronze Tablet; Contract from Below; Darkpact; Demonic Attorney; Jeweled Bird; Rebirth; Tempest Efreet; Timmerian Fiends; Ancestral Recall; Balance; Bazaar of Baghdad; Black Lotus; Channel; Chaos Orb; Demonic Consultation; Demonic Tutor; Dig Through Time; Earthcraft; Falling Star; Fastbond; Flash; Frantic Search; Goblin Recruiter; Gush; Hermit Druid; Imperial Seal; Library of Alexandria; 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; Mystical Tutor; Necropotence; Oath of Druids; Sensei's Divining Top; Shahrazad; Skullclamp; Sol Ring; Strip Mine; Survival of the Fittest; Time Vault; Time Walk; Timetwister; Tinker; Tolarian Academy; Treasure Cruise; Vampiric Tutor; Wheel of Fortune; Windfall; Yawgmoth's Bargain; Yawgmoth's Will