From 2b07183ef94202f1b43f0efe698a0e9a4bd2f484 Mon Sep 17 00:00:00 2001 From: pfirpfel Date: Wed, 21 Oct 2020 22:11:46 +0200 Subject: [PATCH] Add more theme data --- forge-gui/res/blockdata/chaosdraftthemes.txt | 9 ++-- .../res/editions/Classic Sixth Edition.txt | 1 + forge-gui/res/editions/Dissension.txt | 1 + forge-gui/res/editions/Double Masters.txt | 1 + forge-gui/res/editions/Dragon's Maze.txt | 1 + forge-gui/res/editions/Eighth Edition.txt | 1 + forge-gui/res/editions/Eternal Masters.txt | 1 + forge-gui/res/editions/Fifth Edition.txt | 1 + forge-gui/res/editions/Fourth Edition.txt | 1 + forge-gui/res/editions/Gatecrash.txt | 1 + forge-gui/res/editions/Guildpact.txt | 1 + forge-gui/res/editions/Guilds of Ravnica.txt | 1 + forge-gui/res/editions/Iconic Masters.txt | 1 + .../res/editions/Limited Edition Beta.txt | 1 + forge-gui/res/editions/Magic 2010.txt | 1 + forge-gui/res/editions/Magic 2011.txt | 1 + forge-gui/res/editions/Magic 2012.txt | 1 + forge-gui/res/editions/Magic 2013.txt | 1 + forge-gui/res/editions/Magic 2014.txt | 1 + forge-gui/res/editions/Magic 2015.txt | 1 + forge-gui/res/editions/Magic 2019.txt | 1 + forge-gui/res/editions/Magic 2020.txt | 1 + forge-gui/res/editions/Magic 2021.txt | 1 + forge-gui/res/editions/Magic Origins.txt | 1 + forge-gui/res/editions/Masters 25.txt | 1 + forge-gui/res/editions/Modern Horizons.txt | 1 + .../res/editions/Modern Masters 2015.txt | 1 + .../res/editions/Modern Masters 2017.txt | 1 + forge-gui/res/editions/Modern Masters.txt | 1 + forge-gui/res/editions/Ninth Edition.txt | 1 + forge-gui/res/editions/Ravnica Allegiance.txt | 1 + .../res/editions/Ravnica City of Guilds.txt | 1 + forge-gui/res/editions/Return to Ravnica.txt | 1 + forge-gui/res/editions/Revised Edition.txt | 1 + forge-gui/res/editions/Seventh Edition.txt | 1 + forge-gui/res/editions/Tenth Edition.txt | 1 + forge-gui/res/editions/Ultimate Masters.txt | 1 + forge-gui/res/editions/Unlimited Edition.txt | 1 + forge-gui/res/editions/War of the Spark.txt | 1 + .../main/java/forge/limited/BoosterDraft.java | 9 ++-- .../java/forge/limited/ThemedChaosDraft.java | 48 +++++++++++++++---- 41 files changed, 90 insertions(+), 14 deletions(-) diff --git a/forge-gui/res/blockdata/chaosdraftthemes.txt b/forge-gui/res/blockdata/chaosdraftthemes.txt index b85cbd86f2d..2c0c0a1d074 100644 --- a/forge-gui/res/blockdata/chaosdraftthemes.txt +++ b/forge-gui/res/blockdata/chaosdraftthemes.txt @@ -1,5 +1,8 @@ # Order, Tag, Label 1, DEFAULT, All sets (default) -2, CORE_SET, Core Sets -2, MASTER_SET, Masters Sets -3, RAVNICA, Ravnica (Plane) +11, MODERN, Modern legal expansions +12, PIONEER, Pioneer legal expansions +13, STANDARD, Standard legal expansions +21, CORE_SET, Core Sets +22, MASTERS_SET, Masters Sets (paper only) +31, RAVNICA, Ravnica (Plane) diff --git a/forge-gui/res/editions/Classic Sixth Edition.txt b/forge-gui/res/editions/Classic Sixth Edition.txt index 56499cc924a..1993eade79c 100644 --- a/forge-gui/res/editions/Classic Sixth Edition.txt +++ b/forge-gui/res/editions/Classic Sixth Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=1 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] 163 U AEther Flash diff --git a/forge-gui/res/editions/Dissension.txt b/forge-gui/res/editions/Dissension.txt index 34179da950d..503c21d5cb3 100644 --- a/forge-gui/res/editions/Dissension.txt +++ b/forge-gui/res/editions/Dissension.txt @@ -8,6 +8,7 @@ Type=Expansion BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 Rare FoilAlwaysInCommonSlot=False +ChaosDraftThemes=RAVNICA [cards] 1 C Aurora Eidolon diff --git a/forge-gui/res/editions/Double Masters.txt b/forge-gui/res/editions/Double Masters.txt index 5dec0146172..91197ed1e46 100644 --- a/forge-gui/res/editions/Double Masters.txt +++ b/forge-gui/res/editions/Double Masters.txt @@ -7,6 +7,7 @@ BoosterCovers=3 Booster=8 Common, 3 Uncommon, 2 RareMythic, 2 fromSheet("2XM Foils") Foil=NotSupported DoublePick=true +ChaosDraftThemes=MASTERS_SET [cards] 1 M Karn Liberated diff --git a/forge-gui/res/editions/Dragon's Maze.txt b/forge-gui/res/editions/Dragon's Maze.txt index e6b83cee621..ba9091da0ff 100644 --- a/forge-gui/res/editions/Dragon's Maze.txt +++ b/forge-gui/res/editions/Dragon's Maze.txt @@ -7,6 +7,7 @@ MciCode=dgm Type=Expansion BoosterCovers=3 Booster=10 Common:!land, 3 Uncommon, 1 RareMythic:!land, 1 fromSheet("DGM Lands") +ChaosDraftThemes=RAVNICA [cards] 1 C Boros Mastiff diff --git a/forge-gui/res/editions/Eighth Edition.txt b/forge-gui/res/editions/Eighth Edition.txt index 19ca2c2083e..74e85840549 100644 --- a/forge-gui/res/editions/Eighth Edition.txt +++ b/forge-gui/res/editions/Eighth Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand FoilAlwaysInCommonSlot=False +ChaosDraftThemes=CORE_SET [cards] 117 U Abyssal Specter diff --git a/forge-gui/res/editions/Eternal Masters.txt b/forge-gui/res/editions/Eternal Masters.txt index 29d5548c6b0..0a389e78f9a 100644 --- a/forge-gui/res/editions/Eternal Masters.txt +++ b/forge-gui/res/editions/Eternal Masters.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 C Aven Riftwatcher diff --git a/forge-gui/res/editions/Fifth Edition.txt b/forge-gui/res/editions/Fifth Edition.txt index 3b8505bbb2e..e64a00f7bc9 100644 --- a/forge-gui/res/editions/Fifth Edition.txt +++ b/forge-gui/res/editions/Fifth Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=5 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] U AEther Storm diff --git a/forge-gui/res/editions/Fourth Edition.txt b/forge-gui/res/editions/Fourth Edition.txt index e8f7bbffc9f..6f17253c343 100644 --- a/forge-gui/res/editions/Fourth Edition.txt +++ b/forge-gui/res/editions/Fourth Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=5 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] U Abomination diff --git a/forge-gui/res/editions/Gatecrash.txt b/forge-gui/res/editions/Gatecrash.txt index 4aa1ef9bf83..f11064b7914 100644 --- a/forge-gui/res/editions/Gatecrash.txt +++ b/forge-gui/res/editions/Gatecrash.txt @@ -7,6 +7,7 @@ MciCode=gtc Type=Expansion BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand RTR +ChaosDraftThemes=RAVNICA [cards] 29 U AEtherize diff --git a/forge-gui/res/editions/Guildpact.txt b/forge-gui/res/editions/Guildpact.txt index b13ecda5861..d6226592ab9 100644 --- a/forge-gui/res/editions/Guildpact.txt +++ b/forge-gui/res/editions/Guildpact.txt @@ -8,6 +8,7 @@ Type=Expansion BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 Rare FoilAlwaysInCommonSlot=False +ChaosDraftThemes=RAVNICA [cards] 22 U AEtherplasm diff --git a/forge-gui/res/editions/Guilds of Ravnica.txt b/forge-gui/res/editions/Guilds of Ravnica.txt index 606558dcf9d..68a22e4f079 100644 --- a/forge-gui/res/editions/Guilds of Ravnica.txt +++ b/forge-gui/res/editions/Guilds of Ravnica.txt @@ -8,6 +8,7 @@ Type=Expansion BoosterCovers=5 Booster=10 Common:!fromSheet("GRN Secret Cards"), 3 Uncommon:!fromSheet("GRN Secret Cards"), 1 RareMythic:!fromSheet("GRN Secret Cards"), 1 fromSheet("GRN Lands") AdditionalSetUnlockedInQuest=GK1 +ChaosDraftThemes=RAVNICA [cards] 1 C Blade Instructor diff --git a/forge-gui/res/editions/Iconic Masters.txt b/forge-gui/res/editions/Iconic Masters.txt index 902079fd311..16b2327147b 100644 --- a/forge-gui/res/editions/Iconic Masters.txt +++ b/forge-gui/res/editions/Iconic Masters.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 C Scion of Ugin diff --git a/forge-gui/res/editions/Limited Edition Beta.txt b/forge-gui/res/editions/Limited Edition Beta.txt index f312ed2a90a..c428fa67b8f 100644 --- a/forge-gui/res/editions/Limited Edition Beta.txt +++ b/forge-gui/res/editions/Limited Edition Beta.txt @@ -8,6 +8,7 @@ Type=Core BoosterCovers=1 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] U Air Elemental diff --git a/forge-gui/res/editions/Magic 2010.txt b/forge-gui/res/editions/Magic 2010.txt index 39141f5576a..6b4ddf84592 100644 --- a/forge-gui/res/editions/Magic 2010.txt +++ b/forge-gui/res/editions/Magic 2010.txt @@ -7,6 +7,7 @@ MciCode=m10 Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 165 U Acidic Slime diff --git a/forge-gui/res/editions/Magic 2011.txt b/forge-gui/res/editions/Magic 2011.txt index 945a4d29d2a..790b7760fd1 100644 --- a/forge-gui/res/editions/Magic 2011.txt +++ b/forge-gui/res/editions/Magic 2011.txt @@ -7,6 +7,7 @@ MciCode=m11 Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 41 C AEther Adept diff --git a/forge-gui/res/editions/Magic 2012.txt b/forge-gui/res/editions/Magic 2012.txt index 86bb22faed6..0d71d2afad6 100644 --- a/forge-gui/res/editions/Magic 2012.txt +++ b/forge-gui/res/editions/Magic 2012.txt @@ -7,6 +7,7 @@ MciCode=m12 Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 41 C AEther Adept diff --git a/forge-gui/res/editions/Magic 2013.txt b/forge-gui/res/editions/Magic 2013.txt index 2dab22e50c0..21e5555ae31 100644 --- a/forge-gui/res/editions/Magic 2013.txt +++ b/forge-gui/res/editions/Magic 2013.txt @@ -7,6 +7,7 @@ MciCode=m13 Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 159 U Acidic Slime diff --git a/forge-gui/res/editions/Magic 2014.txt b/forge-gui/res/editions/Magic 2014.txt index 0934c02e1ef..005c769c514 100644 --- a/forge-gui/res/editions/Magic 2014.txt +++ b/forge-gui/res/editions/Magic 2014.txt @@ -7,6 +7,7 @@ MciCode=m14 Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 1 M Ajani, Caller of the Pride diff --git a/forge-gui/res/editions/Magic 2015.txt b/forge-gui/res/editions/Magic 2015.txt index 8d560ecd154..597577e6985 100644 --- a/forge-gui/res/editions/Magic 2015.txt +++ b/forge-gui/res/editions/Magic 2015.txt @@ -7,6 +7,7 @@ MciCode=m15 Type=Core BoosterCovers=5 Booster=10 Common:!fromSheet("M15 Sample Cards"), 3 Uncommon:!fromSheet("M15 Sample Cards"), 1 RareMythic:!fromSheet("M15 Sample Cards"), 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 1 M Ajani Steadfast diff --git a/forge-gui/res/editions/Magic 2019.txt b/forge-gui/res/editions/Magic 2019.txt index 157a0a2cf18..f7cc4829eb1 100644 --- a/forge-gui/res/editions/Magic 2019.txt +++ b/forge-gui/res/editions/Magic 2019.txt @@ -7,6 +7,7 @@ MciCode=m19 Type=Core BoosterCovers=5 Booster=10 Common:!fromSheet("M19 Secret Cards"), 3 Uncommon:!fromSheet("M19 Secret Cards"), 1 RareMythic:!fromSheet("M19 Secret Cards"), 1 fromSheet("M19 Lands") +ChaosDraftThemes=CORE_SET [cards] 1 U Aegis of the Heavens diff --git a/forge-gui/res/editions/Magic 2020.txt b/forge-gui/res/editions/Magic 2020.txt index 89184a08add..2a099ef55ba 100644 --- a/forge-gui/res/editions/Magic 2020.txt +++ b/forge-gui/res/editions/Magic 2020.txt @@ -6,6 +6,7 @@ MciCode=m20 Type=Core BoosterCovers=3 Booster=10 Common:!fromSheet("M20 Secret Cards"), 3 Uncommon:!fromSheet("M20 Secret Cards"), 1 RareMythic:!fromSheet("M20 Secret Cards"), 1 fromSheet("M20 Lands") +ChaosDraftThemes=CORE_SET [cards] 1 C Aerial Assault diff --git a/forge-gui/res/editions/Magic 2021.txt b/forge-gui/res/editions/Magic 2021.txt index ed49e37ba09..125329342ae 100644 --- a/forge-gui/res/editions/Magic 2021.txt +++ b/forge-gui/res/editions/Magic 2021.txt @@ -6,6 +6,7 @@ Type=Core BoosterCovers=3 Booster=10 Common:!fromSheet("M21 Secret Cards"), 3 Uncommon:!fromSheet("M21 Secret Cards"), 1 RareMythic:!fromSheet("M21 Secret Cards"), 1 fromSheet("M21 Lands") Prerelease=6 Boosters, 1 RareMythic+ +ChaosDraftThemes=CORE_SET [cards] 1 M Ugin, the Spirit Dragon diff --git a/forge-gui/res/editions/Magic Origins.txt b/forge-gui/res/editions/Magic Origins.txt index 2204e442dd9..aa0093974de 100644 --- a/forge-gui/res/editions/Magic Origins.txt +++ b/forge-gui/res/editions/Magic Origins.txt @@ -7,6 +7,7 @@ MciCode=ori Type=Core BoosterCovers=5 Booster=10 Common:!fromSheet("ORI Sample Cards"), 3 Uncommon:!fromSheet("ORI Sample Cards"), 1 RareMythic:!fromSheet("ORI Sample Cards"), 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 1 C Akroan Jailer diff --git a/forge-gui/res/editions/Masters 25.txt b/forge-gui/res/editions/Masters 25.txt index 041803b48aa..9bfe3430f3d 100644 --- a/forge-gui/res/editions/Masters 25.txt +++ b/forge-gui/res/editions/Masters 25.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 C Act of Heroism diff --git a/forge-gui/res/editions/Modern Horizons.txt b/forge-gui/res/editions/Modern Horizons.txt index bed63eab73c..788bb97eab6 100644 --- a/forge-gui/res/editions/Modern Horizons.txt +++ b/forge-gui/res/editions/Modern Horizons.txt @@ -7,6 +7,7 @@ MciCode=mh1 Type=Other BoosterCovers=5 Booster=10 Common:!fromSheet("MH1 Secret Cards"), 3 Uncommon:!fromSheet("MH1 Secret Cards"), 1 RareMythic:!fromSheet("MH1 Secret Cards"), 1 fromSheet("MH1 Lands") +ChaosDraftThemes=MASTERS_SET [cards] diff --git a/forge-gui/res/editions/Modern Masters 2015.txt b/forge-gui/res/editions/Modern Masters 2015.txt index 1548ad57511..ceb09d77f71 100644 --- a/forge-gui/res/editions/Modern Masters 2015.txt +++ b/forge-gui/res/editions/Modern Masters 2015.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 R All Is Dust diff --git a/forge-gui/res/editions/Modern Masters 2017.txt b/forge-gui/res/editions/Modern Masters 2017.txt index 4cd03184bb7..27fddbf6891 100644 --- a/forge-gui/res/editions/Modern Masters 2017.txt +++ b/forge-gui/res/editions/Modern Masters 2017.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 C Attended Knight diff --git a/forge-gui/res/editions/Modern Masters.txt b/forge-gui/res/editions/Modern Masters.txt index ddc3e94db80..a1bf70b93eb 100644 --- a/forge-gui/res/editions/Modern Masters.txt +++ b/forge-gui/res/editions/Modern Masters.txt @@ -7,6 +7,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 R Adarkar Valkyrie diff --git a/forge-gui/res/editions/Ninth Edition.txt b/forge-gui/res/editions/Ninth Edition.txt index 6f9dbcc9584..dce5aa6170c 100644 --- a/forge-gui/res/editions/Ninth Edition.txt +++ b/forge-gui/res/editions/Ninth Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand FoilAlwaysInCommonSlot=False +ChaosDraftThemes=CORE_SET [cards] 317 R Adarkar Wastes diff --git a/forge-gui/res/editions/Ravnica Allegiance.txt b/forge-gui/res/editions/Ravnica Allegiance.txt index c614de27d60..889ac8f637c 100644 --- a/forge-gui/res/editions/Ravnica Allegiance.txt +++ b/forge-gui/res/editions/Ravnica Allegiance.txt @@ -7,6 +7,7 @@ MciCode=rna Type=Expansion BoosterCovers=5 Booster=10 Common:!fromSheet("RNA Secret Cards"), 3 Uncommon:!fromSheet("RNA Secret Cards"), 1 RareMythic:!fromSheet("RNA Secret Cards"), 1 fromSheet("RNA Lands") +ChaosDraftThemes=RAVNICA [cards] 1 M Angel of Grace diff --git a/forge-gui/res/editions/Ravnica City of Guilds.txt b/forge-gui/res/editions/Ravnica City of Guilds.txt index fdb72964748..bc98825cf3f 100644 --- a/forge-gui/res/editions/Ravnica City of Guilds.txt +++ b/forge-gui/res/editions/Ravnica City of Guilds.txt @@ -8,6 +8,7 @@ Type=Expansion BoosterCovers=5 Booster=11 Common, 3 Uncommon, 1 Rare FoilAlwaysInCommonSlot=False +ChaosDraftThemes=RAVNICA [cards] 190 R Agrus Kos, Wojek Veteran diff --git a/forge-gui/res/editions/Return to Ravnica.txt b/forge-gui/res/editions/Return to Ravnica.txt index 0d0ad645ebb..60412344da9 100644 --- a/forge-gui/res/editions/Return to Ravnica.txt +++ b/forge-gui/res/editions/Return to Ravnica.txt @@ -7,6 +7,7 @@ MciCode=rtr Type=Expansion BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand +ChaosDraftThemes=RAVNICA [cards] 141 R Abrupt Decay diff --git a/forge-gui/res/editions/Revised Edition.txt b/forge-gui/res/editions/Revised Edition.txt index 101947233c7..ccc051bebe1 100644 --- a/forge-gui/res/editions/Revised Edition.txt +++ b/forge-gui/res/editions/Revised Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=1 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] U Air Elemental diff --git a/forge-gui/res/editions/Seventh Edition.txt b/forge-gui/res/editions/Seventh Edition.txt index 8da1f7d6838..3feaac56c79 100644 --- a/forge-gui/res/editions/Seventh Edition.txt +++ b/forge-gui/res/editions/Seventh Edition.txt @@ -10,6 +10,7 @@ BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand Foil=OldStyle FoilAlwaysInCommonSlot=False +ChaosDraftThemes=CORE_SET [cards] 172 U AEther Flash diff --git a/forge-gui/res/editions/Tenth Edition.txt b/forge-gui/res/editions/Tenth Edition.txt index 7ed4e1896c5..69f99486b31 100644 --- a/forge-gui/res/editions/Tenth Edition.txt +++ b/forge-gui/res/editions/Tenth Edition.txt @@ -7,6 +7,7 @@ MciCode=10e Type=Core BoosterCovers=5 Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand +ChaosDraftThemes=CORE_SET [cards] 249 R Abundance diff --git a/forge-gui/res/editions/Ultimate Masters.txt b/forge-gui/res/editions/Ultimate Masters.txt index 0c799d1cb69..62d4ce4d1d6 100644 --- a/forge-gui/res/editions/Ultimate Masters.txt +++ b/forge-gui/res/editions/Ultimate Masters.txt @@ -8,6 +8,7 @@ Type=Reprint BoosterCovers=3 Booster=11 Common, 3 Uncommon, 1 RareMythic FoilChanceInBooster=100 +ChaosDraftThemes=MASTERS_SET [cards] 1 R All Is Dust diff --git a/forge-gui/res/editions/Unlimited Edition.txt b/forge-gui/res/editions/Unlimited Edition.txt index ead1be21f6e..54e891f24bf 100644 --- a/forge-gui/res/editions/Unlimited Edition.txt +++ b/forge-gui/res/editions/Unlimited Edition.txt @@ -9,6 +9,7 @@ Border=White BoosterCovers=1 Booster=11 Common, 3 Uncommon, 1 Rare Foil=NotSupported +ChaosDraftThemes=CORE_SET [cards] U Air Elemental diff --git a/forge-gui/res/editions/War of the Spark.txt b/forge-gui/res/editions/War of the Spark.txt index 01c65804bf3..9ab696b37a5 100644 --- a/forge-gui/res/editions/War of the Spark.txt +++ b/forge-gui/res/editions/War of the Spark.txt @@ -8,6 +8,7 @@ Type=Expansion BoosterCovers=3 Booster=10 Common:!fromSheet("WAR Secret Cards"), 3 Uncommon:!fromSheet("WAR Secret Cards"), 1 RareMythic:!fromSheet("WAR Secret Cards"), 1 BasicLand BoosterMustContain=Planeswalker +ChaosDraftThemes=RAVNICA [cards] 1 R Karn, the Great Creator diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraft.java b/forge-gui/src/main/java/forge/limited/BoosterDraft.java index 2f6672df9c1..9b56ec7c369 100644 --- a/forge-gui/src/main/java/forge/limited/BoosterDraft.java +++ b/forge-gui/src/main/java/forge/limited/BoosterDraft.java @@ -186,9 +186,10 @@ public class BoosterDraft implements IBoosterDraft { for (final ThemedChaosDraft theme : themeStorage) { themes.add(theme); } + Collections.sort(themes); - // TODO test oneOrNone behaviour - final ThemedChaosDraft theme = SGuiChoose.oneOrNone(Localizer.getInstance().getMessage("lblChooseChaosTheme"), themes); + final String dialogQuestion = Localizer.getInstance().getMessage("lblChooseChaosTheme"); + final ThemedChaosDraft theme = SGuiChoose.oneOrNone(dialogQuestion, themes); if (theme == null) { return false; } @@ -196,7 +197,9 @@ public class BoosterDraft implements IBoosterDraft { final Predicate themeFilter = theme.getEditionFilter(); final CardEdition.Collection allEditions = StaticData.instance().getEditions(); - final Iterable chaosDraftEditions = Iterables.filter(allEditions.getOrderedEditions(), themeFilter); + final Iterable chaosDraftEditions = Iterables.filter( + allEditions.getOrderedEditions(), + themeFilter); final Supplier> ChaosDraftSupplier; try{ diff --git a/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java b/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java index 4c4cd8338b0..ea176616c50 100644 --- a/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java +++ b/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java @@ -4,6 +4,8 @@ import com.google.common.base.Function; import com.google.common.base.Predicate; import forge.card.CardEdition; +import forge.game.GameFormat; +import forge.model.FModel; import forge.util.TextUtil; import forge.util.storage.StorageReaderFile; import org.apache.commons.lang3.tuple.Pair; @@ -45,12 +47,20 @@ public class ThemedChaosDraft implements Comparable { public int getOrderNumber() { return orderNumber; } public Predicate getEditionFilter() { - if (!tag.equals("DEFAULT")) { - System.out.println("Return themed filter for " + tag); // TODO remove - return themedFilter; + Predicate filter; + switch(tag) { + case "DEFAULT": + filter = DEFAULT_FILTER; + break; + case "MODERN": + case "PIONEER": + case "STANDARD": + filter = getFormatFilter(tag); + break; + default: + filter = themedFilter; } - System.out.println("Return default filter"); // TODO remove - return DEFAULT_FILTER; + return filter; } private final Predicate themedFilter = new Predicate() { @@ -64,6 +74,28 @@ public class ThemedChaosDraft implements Comparable { } }; + private Predicate getFormatFilter(String formatName) { + GameFormat.Collection formats = FModel.getFormats(); + GameFormat format; + switch(formatName) { + case "MODERN": + format = formats.getModern(); + break; + case "PIONEER": + format = formats.getPioneer(); + break; + case "STANDARD": + default: + format = formats.getStandard(); + } + return new Predicate() { + @Override + public boolean apply(final CardEdition cardEdition){ + return format.isSetLegal(cardEdition.getCode()); + } + }; + } + private static final Predicate DEFAULT_FILTER = new Predicate() { @Override public boolean apply(final CardEdition cardEdition) { @@ -116,9 +148,9 @@ public class ThemedChaosDraft implements Comparable { */ @Override public int compareTo(ThemedChaosDraft other) { - int order = this.orderNumber - other.orderNumber; - if (order != 0) return order; - return this.label.compareTo(other.label); + return (this.orderNumber != other.orderNumber) + ? this.orderNumber - other.orderNumber + : this.label.compareTo(other.label); } /*