mirror of
https://github.com/correl/mage.git
synced 2024-12-24 11:50:45 +00:00
Add Historic format and Historic Anthologies
This commit is contained in:
parent
587f05dea4
commit
bf293ca939
7 changed files with 219 additions and 1 deletions
|
@ -0,0 +1,59 @@
|
|||
package mage.deck;
|
||||
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.cards.Sets;
|
||||
import mage.cards.decks.Constructed;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
/**
|
||||
* @author mikalinn777
|
||||
*
|
||||
* Historic is a nonrotating format in MTGA. https://mtg.gamepedia.com/Historic_(format)
|
||||
*/
|
||||
public class Historic extends Constructed {
|
||||
|
||||
public Historic() {
|
||||
super("Constructed - Historic");
|
||||
|
||||
Date cutoff = new GregorianCalendar(2017, Calendar.SEPTEMBER, 29).getTime(); // XLN release date
|
||||
for (ExpansionSet set : Sets.getInstance().values()) {
|
||||
if (set.getSetType().isStandardLegal() && (set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff))) {
|
||||
setCodes.add(set.getCode());
|
||||
setCodes.add(mage.sets.HistoricAnthology1.getInstance().getCode());
|
||||
setCodes.add(mage.sets.HistoricAnthology2.getInstance().getCode());
|
||||
setCodes.add(mage.sets.HistoricAnthology3.getInstance().getCode());
|
||||
singleCards.add("Rhys the Redeemed");
|
||||
singleCards.add("Spiritual Guardian");
|
||||
singleCards.add("Sanctuary Cat");
|
||||
singleCards.add("Raging Goblin");
|
||||
singleCards.add("Hanna, Ship's Navigator");
|
||||
singleCards.add("Angelic Reward");
|
||||
singleCards.add("Confront the Assault");
|
||||
singleCards.add("Inspiring Commander");
|
||||
singleCards.add("Shrine Keeper");
|
||||
singleCards.add("Tactical Advantage");
|
||||
singleCards.add("River's Favor");
|
||||
singleCards.add("Shorecomber Crab");
|
||||
singleCards.add("Zephyr Gull");
|
||||
singleCards.add("Feral Roar");
|
||||
singleCards.add("Treetop Warden");
|
||||
singleCards.add("Angler Turtle");
|
||||
singleCards.add("Vengeant Vampire");
|
||||
singleCards.add("Rampaging Brontodon");
|
||||
singleCards.add("Bladewing the Risen");
|
||||
singleCards.add("The Gitrog Monster");
|
||||
singleCards.add("Talrand, Sky Summoner");
|
||||
}
|
||||
}
|
||||
banned.add("Fires of Invention");
|
||||
banned.add("Agent of Treachery");
|
||||
banned.add("Winota, Joiner of Forces");
|
||||
banned.add("Nexus of Fate");
|
||||
banned.add("Oko, Thief of Crowns");
|
||||
banned.add("Once Upon a Time");
|
||||
banned.add("Veil of Summer");
|
||||
}
|
||||
}
|
|
@ -163,6 +163,7 @@
|
|||
<deckType name="Constructed - Legacy" jar="mage-deck-constructed.jar" className="mage.deck.Legacy"/>
|
||||
<deckType name="Constructed - Vintage" jar="mage-deck-constructed.jar" className="mage.deck.Vintage"/>
|
||||
<deckType name="Constructed - Pauper" jar="mage-deck-constructed.jar" className="mage.deck.Pauper"/>
|
||||
<deckType name="Constructed - Historic" jar="mage-deck-constructed.jar" className="mage.deck.Historic"/>
|
||||
<deckType name="Constructed - Historical Type 2" jar="mage-deck-constructed.jar" className="mage.deck.HistoricalType2"/>
|
||||
<deckType name="Constructed - Super Type 2" jar="mage-deck-constructed.jar" className="mage.deck.SuperType2"/>
|
||||
<deckType name="Constructed - Australian Highlander" jar="mage-deck-constructed.jar" className="mage.deck.AusHighlander"/>
|
||||
|
|
|
@ -157,6 +157,7 @@
|
|||
<deckType name="Constructed - Legacy" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Legacy"/>
|
||||
<deckType name="Constructed - Vintage" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Vintage"/>
|
||||
<deckType name="Constructed - Pauper" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Pauper"/>
|
||||
<deckType name="Constructed - Historic" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.Historic"/>
|
||||
<deckType name="Constructed - Historical Type 2" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.HistoricalType2"/>
|
||||
<deckType name="Constructed - Super Type 2" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.SuperType2"/>
|
||||
<deckType name="Constructed - Australian Highlander" jar="mage-deck-constructed-${project.version}.jar" className="mage.deck.AusHighlander"/>
|
||||
|
|
49
Mage.Sets/src/mage/sets/HistoricAnthology1.java
Normal file
49
Mage.Sets/src/mage/sets/HistoricAnthology1.java
Normal file
|
@ -0,0 +1,49 @@
|
|||
|
||||
package mage.sets;
|
||||
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.SetType;
|
||||
|
||||
/**
|
||||
* @author mikalinn777
|
||||
*/
|
||||
public final class HistoricAnthology1 extends ExpansionSet {
|
||||
|
||||
private static final HistoricAnthology1 instance = new HistoricAnthology1();
|
||||
|
||||
public static HistoricAnthology1 getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private HistoricAnthology1() {
|
||||
super("Historic Anthology 1", "HA1", ExpansionSet.buildDate(2019, 11, 21), SetType.SUPPLEMENTAL);
|
||||
this.blockName = "Reprint";
|
||||
this.hasBoosters = false;
|
||||
this.hasBasicLands = false;
|
||||
cards.add(new SetCardInfo("Burning Tree Emissary", 16, Rarity.UNCOMMON, mage.cards.b.BurningTreeEmissary.class));
|
||||
cards.add(new SetCardInfo("Captain Sisay", 17, Rarity.RARE, mage.cards.c.CaptainSisay.class));
|
||||
cards.add(new SetCardInfo("Cryptbreaker", 6, Rarity.RARE, mage.cards.c.Cryptbreaker.class));
|
||||
cards.add(new SetCardInfo("Darksteel Reactor", 20, Rarity.RARE, mage.cards.d.DarksteelReactor.class));
|
||||
cards.add(new SetCardInfo("Distant Melody", 5, Rarity.COMMON, mage.cards.d.DistantMelody.class));
|
||||
cards.add(new SetCardInfo("Elvish Visionary", 13, Rarity.COMMON, mage.cards.e.ElvishVisionary.class));
|
||||
cards.add(new SetCardInfo("Fauna Shaman", 14, Rarity.RARE, mage.cards.f.FaunaShaman.class));
|
||||
cards.add(new SetCardInfo("Goblin Matron", 11, Rarity.UNCOMMON, mage.cards.g.GoblinMatron.class));
|
||||
cards.add(new SetCardInfo("Hidetsugu's Second Rite", 12, Rarity.RARE, mage.cards.h.HidetsugusSecondRite.class));
|
||||
cards.add(new SetCardInfo("Hypnotic Specter", 7, Rarity.RARE, mage.cards.h.HypnoticSpecter.class));
|
||||
cards.add(new SetCardInfo("Imperious Perfect", 15, Rarity.UNCOMMON, mage.cards.i.ImperiousPerfect.class));
|
||||
cards.add(new SetCardInfo("Kiln Fiend", 10, Rarity.COMMON, mage.cards.k.KilnFiend.class));
|
||||
cards.add(new SetCardInfo("Kinsbaile Cavalier", 3, Rarity.COMMON, mage.cards.k.KinsbaileCavalier.class));
|
||||
cards.add(new SetCardInfo("Mind Stone", 19, Rarity.COMMON, mage.cards.m.MindStone.class));
|
||||
cards.add(new SetCardInfo("Ornithopter", 18, Rarity.UNCOMMON, mage.cards.o.Ornithopter.class));
|
||||
cards.add(new SetCardInfo("Phrexian Arena", 8, Rarity.RARE, mage.cards.p.PhyrexianArena.class));
|
||||
cards.add(new SetCardInfo("Serra Ascendant", 1, Rarity.RARE, mage.cards.s.SerraAscendant.class));
|
||||
cards.add(new SetCardInfo("Soul Warden", 2, Rarity.COMMON, mage.cards.s.SoulWarden.class));
|
||||
cards.add(new SetCardInfo("Swan Song", 55, Rarity.RARE, mage.cards.s.SwanSong.class));
|
||||
cards.add(new SetCardInfo("Tendrils of Corruption", 9, Rarity.COMMON, mage.cards.t.TendrilsOfCorruption.class));
|
||||
cards.add(new SetCardInfo("Treasure Hunt", 4, Rarity.COMMON, mage.cards.t.TreasureHunt.class));
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
53
Mage.Sets/src/mage/sets/HistoricAnthology2.java
Normal file
53
Mage.Sets/src/mage/sets/HistoricAnthology2.java
Normal file
|
@ -0,0 +1,53 @@
|
|||
|
||||
package mage.sets;
|
||||
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.SetType;
|
||||
|
||||
/**
|
||||
* @author mikalinn777
|
||||
*/
|
||||
public final class HistoricAnthology2 extends ExpansionSet {
|
||||
|
||||
private static final HistoricAnthology2 instance = new HistoricAnthology2();
|
||||
|
||||
public static HistoricAnthology2 getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private HistoricAnthology2() {
|
||||
super("Historic Anthology 2", "HA2", ExpansionSet.buildDate(2020, 3, 12), SetType.SUPPLEMENTAL);
|
||||
this.blockName = "Reprint";
|
||||
this.hasBoosters = false;
|
||||
this.hasBasicLands = false;
|
||||
cards.add(new SetCardInfo("Ancestral Mask", 13, Rarity.COMMON, mage.cards.a.AncestralMask.class));
|
||||
cards.add(new SetCardInfo("Barren Moor", 19, Rarity.COMMON, mage.cards.b.BarrenMoor.class));
|
||||
cards.add(new SetCardInfo("Bojuka Bog", 20, Rarity.COMMON, mage.cards.b.BojukaBog.class));
|
||||
cards.add(new SetCardInfo("Brain Maggot", 7, Rarity.UNCOMMON, mage.cards.b.BrainMaggot.class));
|
||||
cards.add(new SetCardInfo("Dragonmaster Outcast", 11, Rarity.COMMON, mage.cards.d.DragonmasterOutcast.class));
|
||||
cards.add(new SetCardInfo("Forgotten Cave", 21, Rarity.COMMON, mage.cards.f.ForgottenCave.class));
|
||||
cards.add(new SetCardInfo("Ghost Quarter", 22, Rarity.UNCOMMON, mage.cards.g.GhostQuarter.class));
|
||||
cards.add(new SetCardInfo("Goblin Ruinblaster", 12, Rarity.UNCOMMON, mage.cards.g.GoblinRuinblaster.class));
|
||||
cards.add(new SetCardInfo("Inexorable Tide", 6, Rarity.RARE, mage.cards.i.InexorableTide.class));
|
||||
cards.add(new SetCardInfo("Knight of the Reliquary", 15, Rarity.RARE, mage.cards.k.KnightOfTheReliquary.class));
|
||||
cards.add(new SetCardInfo("Lonely Sandbar", 23, Rarity.COMMON, mage.cards.l.LonelySandbar.class));
|
||||
cards.add(new SetCardInfo("Maelstrom Pulse", 16, Rarity.RARE, mage.cards.m.MaelstromPulse.class));
|
||||
cards.add(new SetCardInfo("Meddling Mage", 17, Rarity.RARE, mage.cards.m.MeddlingMage.class));
|
||||
cards.add(new SetCardInfo("Merrow Reejerey", 5, Rarity.UNCOMMON, mage.cards.m.MerrowReejerey.class));
|
||||
cards.add(new SetCardInfo("Nyxfleece Ram", 1, Rarity.UNCOMMON, mage.cards.n.NyxFleeceRam.class));
|
||||
cards.add(new SetCardInfo("Pack Rat", 8, Rarity.RARE, mage.cards.p.PackRat.class));
|
||||
cards.add(new SetCardInfo("Platinum Angel", 18, Rarity.MYTHIC, mage.cards.p.PlatinumAngel.class));
|
||||
cards.add(new SetCardInfo("Ranger of Eos", 2, Rarity.RARE, mage.cards.r.RangerOfEos.class));
|
||||
cards.add(new SetCardInfo("Secluded Steppe", 24, Rarity.COMMON, mage.cards.s.SecludedSteppe.class));
|
||||
cards.add(new SetCardInfo("Sigil of the Empty Throne", 3, Rarity.RARE, mage.cards.s.SigilOfTheEmptyThrone.class));
|
||||
cards.add(new SetCardInfo("Terravore", 14, Rarity.RARE, mage.cards.t.Terravore.class));
|
||||
cards.add(new SetCardInfo("Thalia, Guardian of Thraben", 4, Rarity.RARE, mage.cards.t.ThaliaGuardianOfThraben.class));
|
||||
cards.add(new SetCardInfo("Tranquil Thicket", 25, Rarity.COMMON, mage.cards.t.TranquilThicket.class));
|
||||
cards.add(new SetCardInfo("Virulent Plague", 9, Rarity.UNCOMMON, mage.cards.v.VirulentPlague.class));
|
||||
cards.add(new SetCardInfo("Waste Not", 10, Rarity.RARE, mage.cards.w.WasteNot.class));
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
55
Mage.Sets/src/mage/sets/HistoricAnthology3.java
Normal file
55
Mage.Sets/src/mage/sets/HistoricAnthology3.java
Normal file
|
@ -0,0 +1,55 @@
|
|||
|
||||
package mage.sets;
|
||||
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.constants.Rarity;
|
||||
import mage.constants.SetType;
|
||||
|
||||
/**
|
||||
* @author mikalinn777
|
||||
*/
|
||||
public final class HistoricAnthology3 extends ExpansionSet {
|
||||
|
||||
private static final HistoricAnthology3 instance = new HistoricAnthology3();
|
||||
|
||||
public static HistoricAnthology3 getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
private HistoricAnthology3() {
|
||||
super("Historic Anthology 3", "HA3", ExpansionSet.buildDate(2020, 5, 21), SetType.SUPPLEMENTAL);
|
||||
this.blockName = "Reprint";
|
||||
this.hasBoosters = false;
|
||||
this.hasBasicLands = false;
|
||||
cards.add(new SetCardInfo("Ancient Ziggurat", 26, Rarity.UNCOMMON, mage.cards.a.AncientZiggurat.class));
|
||||
cards.add(new SetCardInfo("Akroma's Memorial", 24, Rarity.MYTHIC, mage.cards.a.AkromasMemorial.class));
|
||||
cards.add(new SetCardInfo("Body Double", 6, Rarity.RARE, mage.cards.b.BodyDouble.class));
|
||||
cards.add(new SetCardInfo("Chainer's Edict", 10, Rarity.UNCOMMON, mage.cards.c.ChainersEdict.class));
|
||||
cards.add(new SetCardInfo("Devil's Play", 15, Rarity.RARE, mage.cards.d.DevilsPlay.class));
|
||||
cards.add(new SetCardInfo("Enchantress's Presence", 19, Rarity.RARE, mage.cards.e.EnchantresssPresence.class));
|
||||
cards.add(new SetCardInfo("Gempalm Incinerator", 16, Rarity.UNCOMMON, mage.cards.g.GempalmIncinerator.class));
|
||||
cards.add(new SetCardInfo("Gempalm Polluter", 11, Rarity.COMMON, mage.cards.g.GempalmPolluter.class));
|
||||
cards.add(new SetCardInfo("Honden of Cleansing Fire", 2, Rarity.UNCOMMON, mage.cards.h.HondenOfCleansingFire.class));
|
||||
cards.add(new SetCardInfo("Honden of Infinite Rage", 17, Rarity.UNCOMMON, mage.cards.h.HondenOfInfiniteRage.class));
|
||||
cards.add(new SetCardInfo("Honden of Life's Web", 20, Rarity.UNCOMMON, mage.cards.h.HondenOfLifesWeb.class));
|
||||
cards.add(new SetCardInfo("Honden of Night's Reach", 12, Rarity.UNCOMMON, mage.cards.h.HondenOfNightsReach.class));
|
||||
cards.add(new SetCardInfo("Honden of Seeing Winds", 7, Rarity.UNCOMMON, mage.cards.h.HondenOfSeeingWinds.class));
|
||||
cards.add(new SetCardInfo("Krosan Tusker", 21, Rarity.COMMON, mage.cards.k.KrosanTusker.class));
|
||||
cards.add(new SetCardInfo("Maze's End", 27, Rarity.MYTHIC, mage.cards.m.MazesEnd.class));
|
||||
cards.add(new SetCardInfo("Mirari's Wake", 23, Rarity.RARE, mage.cards.m.MirarisWake.class));
|
||||
cards.add(new SetCardInfo("Momentary Blink", 3, Rarity.COMMON, mage.cards.m.MomentaryBlink.class));
|
||||
cards.add(new SetCardInfo("Phyrexian Obliterator", 13, Rarity.MYTHIC, mage.cards.p.PhyrexianObliterator.class));
|
||||
cards.add(new SetCardInfo("Ratchet Bomb", 25, Rarity.RARE, mage.cards.r.RatchetBomb.class));
|
||||
cards.add(new SetCardInfo("Roar of the Wurm", 22, Rarity.UNCOMMON, mage.cards.r.RoarOfTheWurm.class));
|
||||
cards.add(new SetCardInfo("Silent Departure", 8, Rarity.COMMON, mage.cards.s.SilentDeparture.class));
|
||||
cards.add(new SetCardInfo("Swan Song", 9, Rarity.RARE, mage.cards.s.SwanSong.class));
|
||||
cards.add(new SetCardInfo("Tectonic Reformation", 18, Rarity.RARE, mage.cards.t.TectonicReformation.class));
|
||||
cards.add(new SetCardInfo("Tempered Steel", 4, Rarity.RARE, mage.cards.t.TemperedSteel.class));
|
||||
cards.add(new SetCardInfo("Timely Reinforcements", 5, Rarity.UNCOMMON, mage.cards.t.TimelyReinforcements.class));
|
||||
cards.add(new SetCardInfo("Ulamog, the Ceaseless Hunger", 1, Rarity.MYTHIC, mage.cards.u.UlamogTheCeaselessHunger.class));
|
||||
cards.add(new SetCardInfo("Unburial Rites", 14, Rarity.UNCOMMON, mage.cards.u.UnburialRites.class));
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -197,4 +197,4 @@ public class Constructed extends DeckValidator {
|
|||
}
|
||||
return valid;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue