forked from External/mage
[deck.generator] Added Set.findCard(name, random). Now decks contain random basic lands (against previous M11 only).
This commit is contained in:
parent
3123207b0d
commit
7bc6a97a44
3 changed files with 40 additions and 10 deletions
|
|
@ -46,6 +46,8 @@ public class DeckGenerator {
|
|||
private static final int MIN_SOURCE = 16;
|
||||
private static final int MAX_NON_BASIC_SOURCE = DECK_LANDS / 2;
|
||||
|
||||
private static final boolean GENERATE_RANDOM_BASIC_LAND = true;
|
||||
|
||||
private static Deck deck = new Deck();
|
||||
private static String manaSource;
|
||||
|
||||
|
|
@ -283,19 +285,19 @@ public class DeckGenerator {
|
|||
private static Card getBestBasicLand(ColoredManaSymbol color) {
|
||||
manaSource = color.toString();
|
||||
if (color.equals(ColoredManaSymbol.G)) {
|
||||
return CardImpl.createCard(Sets.findCard("Forest"));
|
||||
return CardImpl.createCard(Sets.findCard("Forest", GENERATE_RANDOM_BASIC_LAND));
|
||||
}
|
||||
if (color.equals(ColoredManaSymbol.R)) {
|
||||
return CardImpl.createCard(Sets.findCard("Mountain"));
|
||||
return CardImpl.createCard(Sets.findCard("Mountain", GENERATE_RANDOM_BASIC_LAND));
|
||||
}
|
||||
if (color.equals(ColoredManaSymbol.B)) {
|
||||
return CardImpl.createCard(Sets.findCard("Swamp"));
|
||||
return CardImpl.createCard(Sets.findCard("Swamp", GENERATE_RANDOM_BASIC_LAND));
|
||||
}
|
||||
if (color.equals(ColoredManaSymbol.U)) {
|
||||
return CardImpl.createCard(Sets.findCard("Island"));
|
||||
return CardImpl.createCard(Sets.findCard("Island", GENERATE_RANDOM_BASIC_LAND));
|
||||
}
|
||||
if (color.equals(ColoredManaSymbol.W)) {
|
||||
return CardImpl.createCard(Sets.findCard("Plains"));
|
||||
return CardImpl.createCard(Sets.findCard("Plains", GENERATE_RANDOM_BASIC_LAND));
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -31,11 +31,7 @@ package mage.sets;
|
|||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import mage.cards.Card;
|
||||
|
|
@ -51,6 +47,7 @@ public class Sets extends HashMap<String, ExpansionSet> {
|
|||
|
||||
private static final Sets fINSTANCE = new Sets();
|
||||
private static Set<String> names;
|
||||
protected static Random rnd = new Random();
|
||||
|
||||
public static Sets getInstance() {
|
||||
return fINSTANCE;
|
||||
|
|
@ -93,6 +90,24 @@ public class Sets extends HashMap<String, ExpansionSet> {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String findCard(String name, boolean random) {
|
||||
if (!random) {
|
||||
return findCard(name);
|
||||
} else {
|
||||
List<String> cards = new ArrayList<String>();
|
||||
for (ExpansionSet set: fINSTANCE.values()) {
|
||||
String cardName = set.findCard(name, true);
|
||||
if (cardName != null) {
|
||||
cards.add(cardName);
|
||||
}
|
||||
}
|
||||
if (cards.size() > 0) {
|
||||
return cards.get(rnd.nextInt(cards.size()));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static ExpansionSet findSet(String code) {
|
||||
for (ExpansionSet set: fINSTANCE.values()) {
|
||||
|
|
|
|||
|
|
@ -143,6 +143,19 @@ public abstract class ExpansionSet implements Serializable {
|
|||
return null;
|
||||
}
|
||||
|
||||
public String findCard(String name, boolean random) {
|
||||
List<String> cards = new ArrayList<String>();
|
||||
for (Card card: createCards()) {
|
||||
if (name.equals(card.getName())) {
|
||||
cards.add(card.getClass().getCanonicalName());
|
||||
}
|
||||
}
|
||||
if (cards.size() > 0) {
|
||||
return cards.get(rnd.nextInt(cards.size()));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String findCard(int cardNum) {
|
||||
for (Card card: createCards()) {
|
||||
if (card.getCardNumber() == cardNum)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue