diff --git a/Mage.Sets/src/mage/sets/arabiannights/Mountain1.java b/Mage.Sets/src/mage/sets/arabiannights/Mountain1.java index 2a8a566afa3..6e8f256143d 100644 --- a/Mage.Sets/src/mage/sets/arabiannights/Mountain1.java +++ b/Mage.Sets/src/mage/sets/arabiannights/Mountain1.java @@ -27,19 +27,20 @@ */ package mage.sets.arabiannights; +import mage.constants.Rarity; + import java.util.UUID; /** * * @author LevelX2 */ - - public class Mountain1 extends mage.cards.basiclands.Mountain { public Mountain1(UUID ownerId) { super(ownerId, 91); this.expansionSetCode = "ARN"; + this.rarity = Rarity.COMMON; } public Mountain1(final Mountain1 card) { diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredForest.java b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredForest.java index c401ad7b9f6..85eab452798 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredForest.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredForest.java @@ -27,6 +27,8 @@ */ package mage.sets.masterseditionii; +import mage.constants.Rarity; + import java.util.UUID; /** @@ -39,6 +41,7 @@ public class SnowCoveredForest extends mage.sets.iceage.SnowCoveredForest { super(ownerId); this.cardNumber = 245; this.expansionSetCode = "ME2"; + this.rarity = Rarity.LAND; } public SnowCoveredForest(final SnowCoveredForest card) { diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredIsland.java b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredIsland.java index 2d132f5b550..a08bb19f695 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredIsland.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredIsland.java @@ -27,6 +27,8 @@ */ package mage.sets.masterseditionii; +import mage.constants.Rarity; + import java.util.UUID; /** @@ -39,6 +41,7 @@ public class SnowCoveredIsland extends mage.sets.iceage.SnowCoveredIsland { super(ownerId); this.cardNumber = 242; this.expansionSetCode = "ME2"; + this.rarity = Rarity.LAND; } public SnowCoveredIsland(final SnowCoveredIsland card) { diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredMountain.java b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredMountain.java index a15fd535633..0f1512d7cf0 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredMountain.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredMountain.java @@ -27,6 +27,8 @@ */ package mage.sets.masterseditionii; +import mage.constants.Rarity; + import java.util.UUID; /** @@ -39,6 +41,7 @@ public class SnowCoveredMountain extends mage.sets.iceage.SnowCoveredMountain { super(ownerId); this.cardNumber = 244; this.expansionSetCode = "ME2"; + this.rarity = Rarity.LAND; } public SnowCoveredMountain(final SnowCoveredMountain card) { diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredPlains.java b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredPlains.java index 3045a22ca88..fbd1547700a 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredPlains.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredPlains.java @@ -27,6 +27,8 @@ */ package mage.sets.masterseditionii; +import mage.constants.Rarity; + import java.util.UUID; /** @@ -39,6 +41,7 @@ public class SnowCoveredPlains extends mage.sets.iceage.SnowCoveredPlains { super(ownerId); this.cardNumber = 241; this.expansionSetCode = "ME2"; + this.rarity = Rarity.LAND; } public SnowCoveredPlains(final SnowCoveredPlains card) { diff --git a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredSwamp.java b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredSwamp.java index 643d8b29efc..19c3b53e5c3 100644 --- a/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredSwamp.java +++ b/Mage.Sets/src/mage/sets/masterseditionii/SnowCoveredSwamp.java @@ -27,6 +27,8 @@ */ package mage.sets.masterseditionii; +import mage.constants.Rarity; + import java.util.UUID; /** @@ -39,6 +41,7 @@ public class SnowCoveredSwamp extends mage.sets.iceage.SnowCoveredSwamp { super(ownerId); this.cardNumber = 243; this.expansionSetCode = "ME2"; + this.rarity = Rarity.LAND; } public SnowCoveredSwamp(final SnowCoveredSwamp card) { diff --git a/Mage.Tests/src/test/java/org/mage/test/sets/BoosterGenerationTest.java b/Mage.Tests/src/test/java/org/mage/test/sets/BoosterGenerationTest.java new file mode 100644 index 00000000000..4142d713ba3 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/sets/BoosterGenerationTest.java @@ -0,0 +1,103 @@ +package org.mage.test.sets; + +import mage.cards.Card; +import mage.cards.repository.CardScanner; +import mage.sets.FateReforged; +import mage.sets.MastersEditionII; +import mage.sets.MastersEditionIV; +import org.junit.Before; +import org.junit.Test; +import org.mage.test.serverside.base.MageTestBase; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * + * @author nigelzor + */ +public class BoosterGenerationTest extends MageTestBase { + + @Before + public void setUp() { + CardScanner.scan(); + } + + private static final List basics = Arrays.asList("Plains", "Island", "Swamp", "Mountain", "Forest"); + + @Test + public void testFateReforged() { + List tapland = Arrays.asList( + "Bloodfell Caves", "Blossoming Sands", "Dismal Backwater", "Jungle Hollow", "Rugged Highlands", + "Scoured Barrens", "Swiftwater Cliffs", "Thornwood Falls", "Tranquil Cove", "Wind-Scarred Crag"); + List fetchland = Arrays.asList( + "Bloodstained Mire", "Flooded Strand", "Polluted Delta", "Windswept Heath", "Wooded Foothills"); + + List booster = FateReforged.getInstance().createBooster(); + assertTrue(str(booster), contains(booster, tapland, "FRF") || contains(booster, fetchland, "KTK")); + assertFalse(str(booster), contains(booster, basics, null)); + } + + @Test + public void testMastersEditionII() { + List snowCoveredLand = Arrays.asList( + "Snow-Covered Plains", + "Snow-Covered Island", + "Snow-Covered Swamp", + "Snow-Covered Mountain", + "Snow-Covered Forest" + ); + List booster = MastersEditionII.getInstance().createBooster(); + assertTrue(str(booster), contains(booster, snowCoveredLand, "ME2")); + assertFalse(str(booster), contains(booster, basics, null)); + } + + @Test + public void testMastersEditionIV() { + List urzaLand = Arrays.asList( + "Urza's Mine", + "Urza's Power Plant", + "Urza's Tower" + ); + List booster = MastersEditionIV.getInstance().createBooster(); + assertTrue(str(booster), contains(booster, urzaLand, "ME4")); + assertFalse(str(booster), contains(booster, basics, null)); + } + + private static String str(List cards) { + StringBuilder sb = new StringBuilder("["); + Iterator iterator = cards.iterator(); + while (iterator.hasNext()) { + Card next = iterator.next(); + sb.append(next.getName()); + if (iterator.hasNext()) { + sb.append(", "); + } + } + sb.append("] (").append(cards.size()).append(")"); + return sb.toString(); + } + + private static boolean contains(List cards, List names, String code) { + for (String name : names) { + if (contains(cards, name, code)) { + return true; + } + } + return false; + } + + private static boolean contains(List cards, String name, String code) { + for (Card card : cards) { + if (card.getName().equals(name) && (code == null || card.getExpansionSetCode().equals(code))) { + return true; + } + } + return false; + } + +} diff --git a/Mage/src/mage/cards/ExpansionSet.java b/Mage/src/mage/cards/ExpansionSet.java index 7758bb84a3f..99ef9952849 100644 --- a/Mage/src/mage/cards/ExpansionSet.java +++ b/Mage/src/mage/cards/ExpansionSet.java @@ -58,7 +58,7 @@ public abstract class ExpansionSet implements Serializable { protected int numBoosterSpecial; protected int numBoosterLands; - protected int ratioBoosterSpecialLand = 0; // if > 0 basic lands are replaced with speical land in the ratio every X land is replaced by special land + protected int ratioBoosterSpecialLand = 0; // if > 0 basic lands are replaced with special land in the ratio every X land is replaced by special land protected int numBoosterCommon; protected int numBoosterUncommon;