mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Merge branch 'master' into AI_ATTACK_TIMEOUT
This commit is contained in:
@@ -54,7 +54,7 @@ public enum SpellApiToAi {
|
||||
.put(ApiType.ChooseSource, ChooseSourceAi.class)
|
||||
.put(ApiType.ChooseType, ChooseTypeAi.class)
|
||||
.put(ApiType.Clash, ClashAi.class)
|
||||
.put(ApiType.ClassLevelUp, AlwaysPlayAi.class)
|
||||
.put(ApiType.ClassLevelUp, ClassLevelUpAi.class)
|
||||
.put(ApiType.Cleanup, AlwaysPlayAi.class)
|
||||
.put(ApiType.Cloak, CloakAi.class)
|
||||
.put(ApiType.Clone, CloneAi.class)
|
||||
|
||||
36
forge-ai/src/main/java/forge/ai/ability/ClassLevelUpAi.java
Normal file
36
forge-ai/src/main/java/forge/ai/ability/ClassLevelUpAi.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package forge.ai.ability;
|
||||
|
||||
import forge.ai.SpellAbilityAi;
|
||||
import forge.ai.SpellApiToAi;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.staticability.StaticAbility;
|
||||
import forge.game.trigger.Trigger;
|
||||
import forge.game.trigger.TriggerType;
|
||||
|
||||
public class ClassLevelUpAi extends SpellAbilityAi {
|
||||
@Override
|
||||
protected boolean canPlayAI(Player aiPlayer, SpellAbility sa) {
|
||||
Card host = sa.getHostCard();
|
||||
final int level = host.getClassLevel() + 1;
|
||||
for (StaticAbility stAb : host.getStaticAbilities()) {
|
||||
if (!stAb.hasParam("AddTrigger") || !stAb.isClassLevelNAbility(level)) {
|
||||
continue;
|
||||
}
|
||||
for (String sTrig : stAb.getParam("AddTrigger").split(" & ")) {
|
||||
Trigger t = host.getTriggerForStaticAbility(AbilityUtils.getSVar(stAb, sTrig), stAb);
|
||||
if (t.getMode() != TriggerType.ClassLevelGained) {
|
||||
continue;
|
||||
}
|
||||
SpellAbility effect = t.ensureAbility();
|
||||
if (!SpellApiToAi.Converter.get(effect.getApi()).doTriggerAI(aiPlayer, effect, false)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2320,6 +2320,11 @@ public class AbilityUtils {
|
||||
return doXMath(player.getNumRollsThisTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].startsWith("YouRolledThisTurn")) {
|
||||
int n = calculateAmount(c, sq[0].substring(17), ctb);
|
||||
return doXMath(Collections.frequency(player.getDiceRollsThisTurn(), n), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].equals("YouSurveilThisTurn")) {
|
||||
return doXMath(player.getSurveilThisTurn(), expr, c, ctb);
|
||||
}
|
||||
@@ -3004,7 +3009,7 @@ public class AbilityUtils {
|
||||
sp.setCardState(original);
|
||||
list.add(sp);
|
||||
}
|
||||
if (tgtCard.isModal()) {
|
||||
if (tgtCard.isModal() && tgtCard.hasState(CardStateName.Modal)) {
|
||||
collectSpellsForPlayEffect(list, tgtCard.getState(CardStateName.Modal), controller, withAltCost);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,6 +143,7 @@ public class RollDiceEffect extends SpellAbilityEffect {
|
||||
StringUtils.join(ignored, ", ")));
|
||||
}
|
||||
player.getGame().getAction().notifyOfValue(sa, player, sb.toString(), null);
|
||||
player.addDieRollThisTurn(naturalRolls);
|
||||
}
|
||||
|
||||
List<Integer> rolls = Lists.newArrayList();
|
||||
|
||||
@@ -67,7 +67,7 @@ public class SeekEffect extends SpellAbilityEffect {
|
||||
pool = CardLists.getValidCards(pool, seekType, source.getController(), source, sa);
|
||||
}
|
||||
if (pool.isEmpty()) {
|
||||
if (!notify.isEmpty()) notify.append("\r\n");
|
||||
if (notify.length() != 0) notify.append("\r\n");
|
||||
notify.append(Localizer.getInstance().getMessage("lblSeekFailed", seekType));
|
||||
continue; // can't find if nothing to seek
|
||||
}
|
||||
@@ -88,7 +88,7 @@ public class SeekEffect extends SpellAbilityEffect {
|
||||
|
||||
}
|
||||
}
|
||||
if (!notify.isEmpty()) {
|
||||
if (notify.length() != 0) {
|
||||
game.getAction().notifyOfValue(sa, source, notify.toString(), null);
|
||||
}
|
||||
if (!soughtCards.isEmpty()) {
|
||||
|
||||
@@ -526,64 +526,68 @@ public class CostAdjustment {
|
||||
}
|
||||
|
||||
if (st.hasParam("Type")) {
|
||||
final String type = st.getParam("Type");
|
||||
if (type.equals("Spell")) {
|
||||
if (!sa.isSpell()) {
|
||||
return false;
|
||||
}
|
||||
if (st.hasParam("OnlyFirstSpell")) {
|
||||
if (activator == null ) {
|
||||
switch (st.getParam("Type")) {
|
||||
case "Spell" -> {
|
||||
if (!sa.isSpell()) {
|
||||
return false;
|
||||
}
|
||||
List<Card> list;
|
||||
if (st.hasParam("ValidCard")) {
|
||||
list = CardUtil.getThisTurnCast(st.getParam("ValidCard"), hostCard, st, controller);
|
||||
} else {
|
||||
list = game.getStack().getSpellsCastThisTurn();
|
||||
}
|
||||
if (st.hasParam("OnlyFirstSpell")) {
|
||||
if (activator == null) {
|
||||
return false;
|
||||
}
|
||||
List<Card> list;
|
||||
if (st.hasParam("ValidCard")) {
|
||||
list = CardUtil.getThisTurnCast(st.getParam("ValidCard"), hostCard, st, controller);
|
||||
} else {
|
||||
list = game.getStack().getSpellsCastThisTurn();
|
||||
}
|
||||
|
||||
if (st.hasParam("ValidSpell")) {
|
||||
list = CardLists.filterAsList(list, CardPredicates.castSA(
|
||||
SpellAbilityPredicates.isValid(st.getParam("ValidSpell").split(","), controller, hostCard, st))
|
||||
);
|
||||
}
|
||||
if (st.hasParam("ValidSpell")) {
|
||||
list = CardLists.filterAsList(list, CardPredicates.castSA(
|
||||
SpellAbilityPredicates.isValid(st.getParam("ValidSpell").split(","), controller, hostCard, st))
|
||||
);
|
||||
}
|
||||
|
||||
if (CardLists.filterControlledBy(list, activator).size() > 0) {
|
||||
if (!CardLists.filterControlledBy(list, activator).isEmpty()) return false;
|
||||
}
|
||||
}
|
||||
case "Ability" -> {
|
||||
if (!sa.isActivatedAbility() || sa.isReplacementAbility()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if (type.equals("Ability")) {
|
||||
if (!sa.isActivatedAbility() || sa.isReplacementAbility()) {
|
||||
return false;
|
||||
}
|
||||
if (st.hasParam("OnlyFirstActivation")) {
|
||||
int times = 0;
|
||||
for (IndividualCostPaymentInstance i : game.costPaymentStack) {
|
||||
SpellAbility paymentSa = i.getPayment().getAbility();
|
||||
if (paymentSa.isActivatedAbility() && st.matchesValidParam("ValidCard", paymentSa.getHostCard())) {
|
||||
times++;
|
||||
if (times > 1) {
|
||||
return false;
|
||||
if (st.hasParam("OnlyFirstActivation")) {
|
||||
int times = 0;
|
||||
for (IndividualCostPaymentInstance i : game.costPaymentStack) {
|
||||
SpellAbility paymentSa = i.getPayment().getAbility();
|
||||
if (paymentSa.isActivatedAbility() && st.matchesValidParam("ValidCard", paymentSa.getHostCard())) {
|
||||
times++;
|
||||
if (times > 1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (type.equals("NonManaAbility")) {
|
||||
if (!sa.isActivatedAbility() || sa.isManaAbility() || sa.isReplacementAbility()) {
|
||||
return false;
|
||||
case "NonManaAbility" -> {
|
||||
if (!sa.isActivatedAbility() || sa.isManaAbility() || sa.isReplacementAbility()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if (type.equals("MorphDown")) {
|
||||
if (!sa.isSpell() || !sa.isCastFaceDown()) {
|
||||
return false;
|
||||
case "MorphDown" -> {
|
||||
if (!sa.isSpell() || !sa.isCastFaceDown()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if (type.equals("Foretell")) {
|
||||
if (!sa.isForetelling()) {
|
||||
return false;
|
||||
}
|
||||
if (st.hasParam("FirstForetell") && activator.getNumForetoldThisTurn() > 0) {
|
||||
return false;
|
||||
case "Foretell" -> {
|
||||
if (!sa.isForetelling()) {
|
||||
return false;
|
||||
}
|
||||
if (st.hasParam("FirstForetell") && activator.getNumForetoldThisTurn() > 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (st.hasParam("AffectedZone")) {
|
||||
List<ZoneType> zones = ZoneType.listValueOf(st.getParam("AffectedZone"));
|
||||
|
||||
@@ -100,6 +100,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
private int lifeGainedTimesThisTurn;
|
||||
private int lifeGainedByTeamThisTurn;
|
||||
private int committedCrimeThisTurn;
|
||||
private List<Integer> diceRollsThisTurn = Lists.newArrayList();
|
||||
private int expentThisTurn;
|
||||
private int numManaShards;
|
||||
private int numPowerSurgeLands;
|
||||
@@ -2520,6 +2521,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
setNumManaConversion(0);
|
||||
|
||||
setCommitedCrimeThisTurn(0);
|
||||
diceRollsThisTurn = Lists.newArrayList();
|
||||
setExpentThisTurn(0);
|
||||
|
||||
damageReceivedThisTurn.clear();
|
||||
@@ -3930,6 +3932,13 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
committedCrimeThisTurn = v;
|
||||
}
|
||||
|
||||
public List<Integer> getDiceRollsThisTurn() {
|
||||
return diceRollsThisTurn;
|
||||
}
|
||||
public void addDieRollThisTurn(List<Integer> rolls) {
|
||||
diceRollsThisTurn.addAll(rolls);
|
||||
}
|
||||
|
||||
public int getExpentThisTurn() {
|
||||
return expentThisTurn;
|
||||
}
|
||||
|
||||
@@ -831,12 +831,7 @@ public final class StaticAbilityContinuous {
|
||||
// add triggers
|
||||
if (addTriggers != null) {
|
||||
for (final String trigger : addTriggers) {
|
||||
final Trigger actualTrigger = affectedCard.getTriggerForStaticAbility(trigger, stAb);
|
||||
// if the trigger has Execute param, which most trigger gained by Static Abilties should have
|
||||
// turn them into SpellAbility object before adding to card
|
||||
// with that the TargetedCard does not need the Svars added to them anymore
|
||||
// but only do it if the trigger doesn't already have a overriding ability
|
||||
addedTrigger.add(actualTrigger);
|
||||
addedTrigger.add(affectedCard.getTriggerForStaticAbility(trigger, stAb));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -595,7 +595,7 @@ public class Main extends AndroidApplication {
|
||||
if (connManager != null) {
|
||||
NetworkCapabilities capabilities = connManager.getNetworkCapabilities(connManager.getActiveNetwork());
|
||||
if (capabilities != null) {
|
||||
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
|
||||
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
|
||||
result = connected;
|
||||
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
|
||||
result = connected && !wifiOnly;
|
||||
@@ -607,7 +607,7 @@ public class Main extends AndroidApplication {
|
||||
NetworkInfo activeNetwork = connManager.getActiveNetworkInfo();
|
||||
if (activeNetwork != null) {
|
||||
// connected to the internet
|
||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
|
||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI || activeNetwork.getType() == ConnectivityManager.TYPE_ETHERNET) {
|
||||
result = true;
|
||||
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
||||
result = !wifiOnly;
|
||||
|
||||
@@ -25,7 +25,6 @@ public class GameLauncher {
|
||||
Configuration.GLFW_LIBRARY_NAME.set("glfw_async");
|
||||
}
|
||||
Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
|
||||
config.setResizable(false);
|
||||
ApplicationListener start = Forge.getApp(new Lwjgl3Clipboard(), new Main.DesktopAdapter(switchOrientationFile),//todo get totalRAM && isTabletDevice
|
||||
assetsDir, false, false, 0, false, 0, "", "");
|
||||
if (Config.instance().getSettingData().fullScreen) {
|
||||
@@ -34,6 +33,7 @@ public class GameLauncher {
|
||||
config.setHdpiMode(HdpiMode.Logical);
|
||||
} else {
|
||||
config.setWindowedMode(Config.instance().getSettingData().width, Config.instance().getSettingData().height);
|
||||
config.setResizable(false);
|
||||
}
|
||||
config.setTitle("Forge - " + versionString);
|
||||
config.setWindowListener(new Lwjgl3WindowAdapter() {
|
||||
|
||||
@@ -177,7 +177,7 @@ public class TextRenderer {
|
||||
needClip = true;
|
||||
}
|
||||
}
|
||||
addPiece(new SymbolPiece(symbol, inReminderTextCount > 0), lineNum, x, y - font.getAscent() + (lineHeight - pieceWidth) / 2, pieceWidth, pieceWidth);
|
||||
addPiece(new SymbolPiece(symbol, inReminderTextCount > 0), lineNum, x, y - lineHeight / 4, pieceWidth, pieceWidth);
|
||||
x += pieceWidth;
|
||||
pieceWidth = 0;
|
||||
text.setLength(0);
|
||||
|
||||
@@ -5,4 +5,5 @@ PT:1/1
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRoll | Host$ True | TriggerDescription$ When this creature enters, roll a six-sided die. You gain life equal to the result.
|
||||
SVar:TrigRoll:DB$ RollDice | ResultSVar$ Result | SubAbility$ DBLife
|
||||
SVar:DBLife:DB$ GainLife | LifeAmount$ Result
|
||||
DeckHas:Ability$LifeGain
|
||||
Oracle:When this creature enters, roll a six-sided die. You gain life equal to the result.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Name:Anax and Cymede and Kynaios and Tiro
|
||||
Name:Anax and Cymede & Kynaios and Tiro
|
||||
ManaCost:1 W U R G
|
||||
Types:Legendary Creature Human Soldier
|
||||
PT:3/8
|
||||
@@ -9,4 +9,4 @@ SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ EachPlayLand
|
||||
SVar:EachPlayLand:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | DefinedPlayer$ Player | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ DrawAbstainers
|
||||
SVar:DrawAbstainers:DB$ Draw | Defined$ OppNonRememberedOwner | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:First strike, vigilance\nHeroic — Whenever you cast a spell that targets Anax and Cymede and Kynaios and Tiro, draw a card. Each player may put a land card from their hand onto the battlefield, then each opponent who didn't draws a card.
|
||||
Oracle:First strike, vigilance\nHeroic — Whenever you cast a spell that targets Anax and Cymede & Kynaios and Tiro, draw a card. Each player may put a land card from their hand onto the battlefield, then each opponent who didn't draws a card.
|
||||
|
||||
9
forge-gui/res/cardsfolder/e/eelectrocute.txt
Normal file
9
forge-gui/res/cardsfolder/e/eelectrocute.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Eelectrocute
|
||||
ManaCost:1 R
|
||||
Types:Instant
|
||||
A:SP$ DealDamage | ValidTgts$ Any | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to any target.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AffectedZone$ Graveyard | EffectZone$ Graveyard | MayPlay$ True | CheckSVar$ Count$YouRolledThisTurn6 | Description$ You may cast CARDNAME from your graveyard as long as you've rolled a 6 this turn. If you cast CARDNAME this way and it would be put into your graveyard, exile it instead.
|
||||
R:Event$ Moved | ValidLKI$ Card.CastSa Spell.MayPlaySource | Origin$ Stack | Destination$ Graveyard | ReplaceWith$ MoveExile
|
||||
SVar:MoveExile:DB$ ChangeZone | Defined$ ReplacedCard | Origin$ Stack | Destination$ Exile
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Eelectrocute deals 2 damage to any target.\nYou may cast Eelectrocute from your graveyard as long as you've rolled a 6 this turn. If you cast Eelectrocute this way and it would be put into your graveyard, exile it instead.
|
||||
10
forge-gui/res/cardsfolder/h/harrowing_swarm.txt
Normal file
10
forge-gui/res/cardsfolder/h/harrowing_swarm.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Harrowing Swarm
|
||||
ManaCost:1 G
|
||||
Types:Sorcery
|
||||
A:SP$ ManifestDread | SubAbility$ DBAnimate | SpellDescription$ Manifest dread.
|
||||
SVar:DBAnimate:DB$ AnimateAll | ValidCards$ Creature.faceDown+YouCtrl | Zone$ Battlefield | staticAbilities$ ReduceCost | Triggers$ TurnedFaceUp | Duration$ Permanent | StackDescription$ SpellDescription | SpellDescription$ Then each face-down creature you control gains "This permanent costs {2} less to turn face up" and "When this permanent is turned face up, if it's a creature, put a +1/+1 counter on it."
|
||||
SVar:ReduceCost:Mode$ ReduceCost | Amount$ 2 | ValidSpell$ Static.isTurnFaceUp | ValidCard$ Card.Self | Activator$ You | EffectZone$ All | Description$ This permanent costs {2} less to turn face up.
|
||||
SVar:TurnedFaceUp:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ When this permanent is turned face up, if it's a creature, put a +1/+1 counter on it.
|
||||
SVar:TrigPump:DB$ PutCounter | Defined$ TriggeredCard | CounterType$ P1P1 | ConditionDefined$ TriggeredCard | ConditionPresent$ Creature
|
||||
DeckHas:Ability$Counters
|
||||
Oracle:Manifest dread. Then each face-down creature you control gains "This permanent costs {2} less to turn face up" and "When this permanent is turned face up, if it's a creature, put a +1/+1 counter on it."
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Kayla's Reconstruction
|
||||
ManaCost:X W W W
|
||||
Types:Sorcery
|
||||
A:SP$ Dig | DigNum$ 7 | ChangeNum$ X | Optional$ True | ChangeValid$ Creature.cmcLE3,Artifact.cmcLE3 | DestinationZone$ Battlefield | RestRandomOrder$ True | SpellDescription$ Look at the top seven cards of your library. Put up to X artifact and/or creature cards with mana value 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order.
|
||||
A:SP$ Dig | DigNum$ 7 | ChangeNum$ X | Optional$ True | ChangeValid$ Creature.cmcLE3,Artifact.cmcLE3 | DestinationZone$ Battlefield | RestRandomOrder$ True | AILogic$ PayX | SpellDescription$ Look at the top seven cards of your library. Put up to X artifact and/or creature cards with mana value 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order.
|
||||
SVar:X:Count$xPaid
|
||||
DeckHints:Type$Artifact
|
||||
Oracle:Look at the top seven cards of your library. Put up to X artifact and/or creature cards with mana value 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Lunar Insight
|
||||
ManaCost:2 U
|
||||
Types:Instant
|
||||
Types:Sorcery
|
||||
A:SP$ Draw | NumCards$ X | SpellDescription$ Draw a card for each different mana value among nonland permanents you control.
|
||||
SVar:X:Count$Valid Card.YouCtrl+nonLand$DifferentCMC
|
||||
Oracle:Draw a card for each different mana value among nonland permanents you control.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Name:Myojin of Night's Reach Grim Betrayal
|
||||
Name:Myojin of Night's Reach and Grim Betrayal
|
||||
ManaCost:5 B B B
|
||||
Types:Legendary Creature Spirit
|
||||
PT:10/4
|
||||
@@ -7,4 +7,4 @@ SVar:FromHand:Count$wasCastFromYourHandByYou.1.0
|
||||
A:AB$ Discard | Cost$ SubCounter<1/Indestructible> | Defined$ Player.Opponent | Mode$ Hand | SubAbility$ DBReturn | SpellDescription$ Each opponent discards their hand. Put onto the battlefield under your control all creature cards in all graveyards that were put there from anywhere this turn.
|
||||
SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Defined$ ValidGraveyard Creature.ThisTurnEntered | GainControl$ True
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Myojin of Night's Reach Grim Betrayal enters the battlefield with an indestructible counter on it if you cast it from your hand.\nRemove an indestructible counter from Myojin of Night's Reach Grim Betrayal: Each opponent discards their hand. Put onto the battlefield under your control all creature cards in all graveyards that were put there from anywhere this turn.
|
||||
Oracle:Myojin of Night's Reach and Grim Betrayal enters the battlefield with an indestructible counter on it if you cast it from your hand.\nRemove an indestructible counter from Myojin of Night's Reach and Grim Betrayal: Each opponent discards their hand. Put onto the battlefield under your control all creature cards in all graveyards that were put there from anywhere this turn.
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Cube March 2014
|
||||
Name=MTGO Cube 2014-03
|
||||
[main]
|
||||
1 Academy Rector|UDS
|
||||
1 Academy Ruins|2XM
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Grixis Cube September 2019 (540 cards)
|
||||
Name=MTGO Grixis Cube 2019-09 (540 cards)
|
||||
[main]
|
||||
Abbot of Keral Keep|ORI
|
||||
Abrade|HOU
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube March 2015
|
||||
Name=MTGO Legacy Cube 2015-03
|
||||
[main]
|
||||
1 Accorder Paladin|MBS
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube September 2015
|
||||
Name=MTGO Legacy Cube 2015-09
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abhorrent Overlord|THS
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube January 2016
|
||||
Name=MTGO Legacy Cube 2016-01
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abhorrent Overlord|THS
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube September 2016
|
||||
Name=MTGO Legacy Cube 2016-09
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abhorrent Overlord|THS
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube January 2017
|
||||
Name=MTGO Legacy Cube 2017-01
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube April 2017
|
||||
Name=MTGO Legacy Cube 2017-04
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube February 2018
|
||||
Name=MTGO Legacy Cube 2018-02
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube July 2019
|
||||
Name=MTGO Legacy Cube 2019-07
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Legacy Cube May 2021
|
||||
Name=MTGO Legacy Cube 2021-05
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
name=MTGO Legacy Cube August 2021
|
||||
name=MTGO Legacy Cube 2021-08
|
||||
[Main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|HOU
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube June 2016
|
||||
Name=MTGO Vintage Cube 2016-06
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube November 2016
|
||||
Name=MTGO Vintage Cube 2016-11
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube June 2017
|
||||
Name=MTGO Vintage Cube 2017-06
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrupt Decay|MM3
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube December 2017
|
||||
Name=MTGO Vintage Cube 2017-12
|
||||
[main]
|
||||
1 Mana Flare|5ED
|
||||
1 Zurgo Bellstriker|DTK
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube June 2018
|
||||
Name=MTGO Vintage Cube 2018-06
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube December 2018
|
||||
Name=MTGO Vintage Cube 2018-12
|
||||
[main]
|
||||
1 Dauntless Bodyguard|DOM
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube Summer 2019
|
||||
Name=MTGO Vintage Cube 2019 Summer
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube June 2019
|
||||
Name=MTGO Vintage Cube 2019-06
|
||||
[main]
|
||||
1 Dauntless Bodyguard|DOM
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube December 2019
|
||||
Name=MTGO Vintage Cube 2019-12
|
||||
[main]
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
1 Mother of Runes|EMA
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube April 2020
|
||||
Name=MTGO Vintage Cube 2020-04
|
||||
[main]
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
1 Mother of Runes|EMA
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube July 2020
|
||||
Name=MTGO Vintage Cube 2020-07
|
||||
[main]
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
1 Mother of Runes|EMA
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube December 2020
|
||||
Name=MTGO Vintage Cube 2020-12
|
||||
[main]
|
||||
1 Kytheon, Hero of Akros|ORI
|
||||
1 Mother of Runes|EMA
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube July 2021
|
||||
Name=MTGO Vintage Cube 2021-07
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|AKR
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube February 2022
|
||||
Name=MTGO Vintage Cube 2022-02
|
||||
[main]
|
||||
1 Abbot of Keral Keep|ORI
|
||||
1 Abrade|DBL
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube May 2023
|
||||
Name=MTGO Vintage Cube 2023-05
|
||||
[main]
|
||||
1 Abrade|VOW
|
||||
1 Acidic Slime|M13
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube August 2023
|
||||
Name=MTGO Vintage Cube 2023-08
|
||||
[main]
|
||||
1 Abrade|HOU
|
||||
1 Acidic Slime|M10
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube October 2023
|
||||
Name=MTGO Vintage Cube 2023-10
|
||||
[Main]
|
||||
1 Abrade|HOU
|
||||
1 Adanto Vanguard|XLN
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube February 2024
|
||||
Name=MTGO Vintage Cube 2024-02
|
||||
[main]
|
||||
1 Abrade|HOU
|
||||
1 Adeline, Resplendent Cathar|MID
|
||||
@@ -1,5 +1,5 @@
|
||||
[metadata]
|
||||
Name=MTGO Vintage Cube June 2024
|
||||
Name=MTGO Vintage Cube 2024-06
|
||||
[Main]
|
||||
1 Abrade|HOU|1
|
||||
1 Adeline, Resplendent Cathar|MID|1
|
||||
6
forge-gui/res/draft/MTGO Cube 2014-03.draft
Normal file
6
forge-gui/res/draft/MTGO Cube 2014-03.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Cube 2014-03
|
||||
DeckFile:MTGO Cube 2014-03
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Cube March 2014
|
||||
DeckFile:MTGO Cube March 2014
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Grixis Cube 2019-09 (540 cards)
|
||||
DeckFile:MTGO Grixis Cube 2019-09 (540 cards)
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Grixis Cube September 2019 (540 cards)
|
||||
DeckFile:MTGO Grixis Cube September 2019 (540 cards)
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2015-03.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2015-03.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2015-03
|
||||
DeckFile:MTGO Legacy Cube 2015-03
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2015-09.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2015-09.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2015-09
|
||||
DeckFile:MTGO Legacy Cube 2015-09
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2016-01.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2016-01.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2016-01
|
||||
DeckFile:MTGO Legacy Cube 2016-01
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2016-09.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2016-09.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2016-09
|
||||
DeckFile:MTGO Legacy Cube 2016-09
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2017-01.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2017-01.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2017-01
|
||||
DeckFile:MTGO Legacy Cube 2017-01
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2017-04.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2017-04.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2017-04
|
||||
DeckFile:MTGO Legacy Cube 2017-04
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2018-02.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2018-02.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2018-02
|
||||
DeckFile:MTGO Legacy Cube 2018-02
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2019-07.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2019-07.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2019-07
|
||||
DeckFile:MTGO Legacy Cube 2019-07
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2021-05.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2021-05.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2021-05
|
||||
DeckFile:MTGO Legacy Cube 2021-05
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Legacy Cube 2021-08.draft
Normal file
6
forge-gui/res/draft/MTGO Legacy Cube 2021-08.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Legacy Cube 2021-08
|
||||
DeckFile:MTGO Legacy Cube 2021-08
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube April 2017
|
||||
DeckFile:MTGO Legacy Cube April 2017
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube August 2021
|
||||
DeckFile:MTGO Legacy Cube August 2021
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube February 2018
|
||||
DeckFile:MTGO Legacy Cube February 2018
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube January 2016
|
||||
DeckFile:MTGO Legacy Cube January 2016
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube January 2017
|
||||
DeckFile:MTGO Legacy Cube January 2017
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube July 2019
|
||||
DeckFile:MTGO Legacy Cube July 2019
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube March 2015
|
||||
DeckFile:MTGO Legacy Cube March 2015
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube May 2021
|
||||
DeckFile:MTGO Legacy Cube May 2021
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube September 2015
|
||||
DeckFile:MTGO Legacy Cube September 2015
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Legacy Cube September 2016
|
||||
DeckFile:MTGO Legacy Cube September 2016
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2016-06.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2016-06.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2016-06
|
||||
DeckFile:MTGO Vintage Cube 2016-06
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2016-11.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2016-11.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2016-11
|
||||
DeckFile:MTGO Vintage Cube 2016-11
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2017-06.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2017-06.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2017-06
|
||||
DeckFile:MTGO Vintage Cube 2017-06
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2017-12.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2017-12.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2017-12
|
||||
DeckFile:MTGO Vintage Cube 2017-12
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2018-06.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2018-06.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2018-06
|
||||
DeckFile:MTGO Vintage Cube 2018-06
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2018-12.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2018-12.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2018-12
|
||||
DeckFile:MTGO Vintage Cube 2018-12
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2019 Summer.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2019 Summer.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2019 Summer
|
||||
DeckFile:MTGO Vintage Cube 2019 Summer
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2019-06.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2019-06.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2019-06
|
||||
DeckFile:MTGO Vintage Cube 2019-06
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2019-12.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2019-12.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2019-12
|
||||
DeckFile:MTGO Vintage Cube 2019-12
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2020-04.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2020-04.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2020-04
|
||||
DeckFile:MTGO Vintage Cube 2020-04
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2020-07.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2020-07.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2020-07
|
||||
DeckFile:MTGO Vintage Cube 2020-07
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2020-12.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2020-12.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2020-12
|
||||
DeckFile:MTGO Vintage Cube 2020-12
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2021-07.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2021-07.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2021-07
|
||||
DeckFile:MTGO Vintage Cube 2021-07
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2022-02.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2022-02.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2022-02
|
||||
DeckFile:MTGO Vintage Cube 2022-02
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2023-05.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2023-05.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2023-05
|
||||
DeckFile:MTGO Vintage Cube 2023-05
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2023-08.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2023-08.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2023-08
|
||||
DeckFile:MTGO Vintage Cube 2023-08
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2023-10.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2023-10.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2023-10
|
||||
DeckFile:MTGO Vintage Cube 2023-10
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2024-02.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2024-02.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2024-02
|
||||
DeckFile:MTGO Vintage Cube 2024-02
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
6
forge-gui/res/draft/MTGO Vintage Cube 2024-06.draft
Normal file
6
forge-gui/res/draft/MTGO Vintage Cube 2024-06.draft
Normal file
@@ -0,0 +1,6 @@
|
||||
Name:MTGO Vintage Cube 2024-06
|
||||
DeckFile:MTGO Vintage Cube 2024-06
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube April 2020
|
||||
DeckFile:MTGO Vintage Cube April 2020
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube August 2023
|
||||
DeckFile:MTGO Vintage Cube August 2023
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube December 2017
|
||||
DeckFile:MTGO Vintage Cube December 2017
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube December 2018
|
||||
DeckFile:MTGO Vintage Cube December 2018
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube December 2019
|
||||
DeckFile:MTGO Vintage Cube December 2019
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube December 2020
|
||||
DeckFile:MTGO Vintage Cube December 2020
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube February 2022
|
||||
DeckFile:MTGO Vintage Cube February 2022
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
@@ -1,6 +0,0 @@
|
||||
Name:MTGO Vintage Cube February 2024
|
||||
DeckFile:MTGO Vintage Cube February 2024
|
||||
Singleton:True
|
||||
|
||||
Booster: 15 Any
|
||||
NumPacks: 3
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user