mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
Removed unused methods from CardsStorage
Only ratings are left and should be moved
This commit is contained in:
parent
809910e8c7
commit
6faca63354
1 changed files with 3 additions and 260 deletions
|
|
@ -1,15 +1,11 @@
|
|||
package mage.client.cards;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.sets.Sets;
|
||||
import mage.utils.CardUtil;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* Stores all implemented cards on client side.
|
||||
|
|
@ -18,16 +14,9 @@ import java.util.*;
|
|||
* @author nantuko
|
||||
*/
|
||||
public class CardsStorage {
|
||||
private static final Logger log = Logger.getLogger(CardsStorage.class);
|
||||
|
||||
private static final List<Card> allCards;
|
||||
private static final Set<Card> nonBasicLandCards;
|
||||
private static final List<String> setCodes;
|
||||
private static Map<String, Integer> ratings;
|
||||
private static Integer min = Integer.MAX_VALUE, max = 0;
|
||||
private static List<Card> notImplementedCards;
|
||||
|
||||
private static boolean loaded;
|
||||
|
||||
/**
|
||||
* Rating that is given for new cards.
|
||||
|
|
@ -35,99 +24,6 @@ public class CardsStorage {
|
|||
*/
|
||||
private static final int DEFAULT_NOT_RATED_CARD_RATING = 6;
|
||||
|
||||
static {
|
||||
allCards = new ArrayList<Card>();
|
||||
nonBasicLandCards = new LinkedHashSet<Card>();
|
||||
setCodes = new ArrayList<String>();
|
||||
|
||||
List<ExpansionSet> sets = new ArrayList<ExpansionSet>(Sets.getInstance().values());
|
||||
Collections.sort(sets, new SetComparator());
|
||||
for (ExpansionSet set : sets) {
|
||||
setCodes.add(set.getCode());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void loadLazily() {
|
||||
if (!loaded) {
|
||||
synchronized (CardsStorage.class) {
|
||||
if (!loaded) {
|
||||
List<ExpansionSet> sets = new ArrayList<ExpansionSet>(Sets.getInstance().values());
|
||||
for (ExpansionSet set : sets) {
|
||||
List<Card> cards = set.getCards();
|
||||
Collections.sort(cards, new CardComparator());
|
||||
allCards.addAll(cards);
|
||||
for (Card card : cards) {
|
||||
if (CardUtil.isLand(card) && !CardUtil.isBasicLand(card)) {
|
||||
nonBasicLandCards.add(card);
|
||||
}
|
||||
}
|
||||
}
|
||||
loaded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static List<Card> getAllCards() {
|
||||
if (!loaded) {
|
||||
loadLazily();
|
||||
}
|
||||
return allCards;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get cards from card pool starting from start index and ending with end index.
|
||||
* Can filter cards by set (if parameter is not null).
|
||||
*
|
||||
* @param start
|
||||
* @param end
|
||||
* @param set Cards set code. Can be null.
|
||||
* @param onlyImplemented return only implemented cards
|
||||
* @return
|
||||
*/
|
||||
public static List<Card> getAllCards(int start, int end, String set, boolean onlyImplemented) {
|
||||
List<Card> cards = new ArrayList<Card>();
|
||||
List<Card> pool;
|
||||
if (set == null) {
|
||||
pool = getAllCards();
|
||||
} else {
|
||||
pool = new ArrayList<Card>();
|
||||
for (Card card : getAllCards()) {
|
||||
if (card.getExpansionSetCode().equals(set)) {
|
||||
pool.add(card);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!onlyImplemented) {
|
||||
for (Card card : getNotImplementedCards()) {
|
||||
if (card.getExpansionSetCode().equals(set)) {
|
||||
pool.add(card);
|
||||
}
|
||||
}
|
||||
Collections.sort(pool, new CardComparator());
|
||||
}
|
||||
for (int i = start; i < Math.min(end + 1, pool.size()); i++) {
|
||||
cards.add(pool.get(i));
|
||||
}
|
||||
return cards;
|
||||
}
|
||||
|
||||
public static int getCardsCount() {
|
||||
return getAllCards().size();
|
||||
}
|
||||
|
||||
public static List<String> getSetCodes() {
|
||||
return setCodes;
|
||||
}
|
||||
|
||||
public static Set<Card> getNonBasicLandCards() {
|
||||
if (!loaded) {
|
||||
loadLazily();
|
||||
}
|
||||
return nonBasicLandCards;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return rating of a card: 1-10.
|
||||
*
|
||||
|
|
@ -175,157 +71,4 @@ public class CardsStorage {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of not implemented cards.
|
||||
* Used in collection viewer to show what cards need to be done for the latest set.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static List<Card> getNotImplementedCards() {
|
||||
List<Card> cards = new ArrayList<Card>();
|
||||
if (notImplementedCards == null) {
|
||||
if (getAllCards().isEmpty()) {
|
||||
return cards;
|
||||
}
|
||||
|
||||
Set<String> names = new HashSet<String>();
|
||||
for (Card card : getAllCards()) {
|
||||
names.add(card.getExpansionSetCode() + card.getName());
|
||||
}
|
||||
|
||||
readUnimplemented("ZEN", "/zen.txt", names, cards);
|
||||
readUnimplemented("WWK", "/wwk.txt", names, cards);
|
||||
|
||||
names.clear();
|
||||
}
|
||||
return cards;
|
||||
}
|
||||
|
||||
private static final class UnimplementedCardImpl extends CardImpl {
|
||||
|
||||
public UnimplementedCardImpl(CardImpl card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnimplementedCardImpl copy() {
|
||||
return new UnimplementedCardImpl(this);
|
||||
}
|
||||
|
||||
public void setCanTransform(boolean canTransform) {
|
||||
this.canTransform = canTransform;
|
||||
}
|
||||
|
||||
public void setNightCard(boolean nightCard) {
|
||||
this.nightCard = nightCard;
|
||||
}
|
||||
|
||||
public void setSecondSideCard(Card secondSideCard) {
|
||||
this.secondSideCard = secondSideCard;
|
||||
}
|
||||
}
|
||||
|
||||
private static void readUnimplemented(String set, String filename, Set<String> names, List<Card> cards) {
|
||||
try {
|
||||
CardImpl tmp = (CardImpl) allCards.get(0);
|
||||
InputStream is = CardsStorage.class.getResourceAsStream(filename);
|
||||
if (is == null) {
|
||||
log.error("Couldn't find: " + filename);
|
||||
return;
|
||||
}
|
||||
Scanner scanner = new Scanner(is);
|
||||
UnimplementedCardImpl cardToAdd = null;
|
||||
boolean addCard = false;
|
||||
while (scanner.hasNextLine()) {
|
||||
String line = scanner.nextLine();
|
||||
String[] s = line.split("\\|");
|
||||
if (s.length == 2) {
|
||||
String name = s[1].trim();
|
||||
if (!names.contains(set + name)) {
|
||||
UnimplementedCardImpl card = new UnimplementedCardImpl(tmp);
|
||||
Integer cid;
|
||||
boolean secondFace = false;
|
||||
if (s[0].endsWith("a")) {
|
||||
cid = Integer.parseInt(s[0].replace("a", ""));
|
||||
} else if (s[0].endsWith("b")) {
|
||||
cid = Integer.parseInt(s[0].replace("b", ""));
|
||||
secondFace = true;
|
||||
if (cardToAdd != null) {
|
||||
addCard = true;
|
||||
}
|
||||
} else {
|
||||
cid = Integer.parseInt(s[0]);
|
||||
addCard = true;
|
||||
}
|
||||
card.setName(name);
|
||||
card.setExpansionSetCode(set);
|
||||
card.setCardNumber(cid);
|
||||
card.setRarity(Constants.Rarity.NA); // mark as not implemented
|
||||
card.getCardType().clear();
|
||||
if (secondFace) {
|
||||
if (cardToAdd != null) {
|
||||
cardToAdd.setCanTransform(true);
|
||||
cardToAdd.setSecondSideCard(card);
|
||||
card.setCanTransform(true);
|
||||
card.setNightCard(true);
|
||||
}
|
||||
} else {
|
||||
cardToAdd = card;
|
||||
}
|
||||
if (addCard) {
|
||||
cards.add(cardToAdd);
|
||||
cardToAdd = null;
|
||||
addCard = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] argv) {
|
||||
for (Card card : getAllCards()) {
|
||||
String name = card.getName();
|
||||
if (name.equals("Baneslayer Angel") || name.equals("Lightning Bolt") || name.equals("Zombie Outlander")
|
||||
|| name.equals("Naturalize") || name.equals("Kraken's Eye") || name.equals("Serra Angel")) {
|
||||
System.out.println(name + " : " + rateCard(card));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Card comparator.
|
||||
* First compares collector ids and then card names.
|
||||
* <p/>
|
||||
* Show latest set cards on top.
|
||||
*
|
||||
* @author nantuko
|
||||
*/
|
||||
private static class CardComparator implements Comparator<Card> {
|
||||
|
||||
@Override
|
||||
public int compare(Card o1, Card o2) {
|
||||
Integer cid1 = o1.getCardNumber();
|
||||
Integer cid2 = o2.getCardNumber();
|
||||
if (cid1 == cid2) {
|
||||
return o1.getName().compareTo(o2.getName());
|
||||
} else {
|
||||
return cid1.compareTo(cid2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set comparator. Puts latest set on top.
|
||||
*/
|
||||
private static class SetComparator implements Comparator<ExpansionSet> {
|
||||
|
||||
@Override
|
||||
public int compare(ExpansionSet set1, ExpansionSet set2) {
|
||||
return set2.getReleaseDate().compareTo(set1.getReleaseDate());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue