mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
Add default cube rankings from cubecobra
This commit is contained in:
@@ -1,20 +1,18 @@
|
||||
package forge.gamemodes.limited;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Iterables;
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.DeckHints;
|
||||
import forge.card.MagicColor;
|
||||
import forge.item.PaperCard;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Iterables;
|
||||
|
||||
import forge.card.ColorSet;
|
||||
import forge.card.DeckHints;
|
||||
import forge.card.MagicColor;
|
||||
import forge.item.PaperCard;
|
||||
|
||||
public class CardRanker {
|
||||
|
||||
private static final double SCORE_UNPICKABLE = -100.0;
|
||||
@@ -110,7 +108,7 @@ public class CardRanker {
|
||||
return cardScores;
|
||||
}
|
||||
|
||||
private static double getRawScore(PaperCard card) {
|
||||
public static double getRawScore(PaperCard card) {
|
||||
Double rawScore;
|
||||
if (MagicColor.Constant.BASIC_LANDS.contains(card.getName())) {
|
||||
rawScore = SCORE_UNPICKABLE;
|
||||
@@ -120,8 +118,14 @@ public class CardRanker {
|
||||
if (customRankings != null) {
|
||||
rkg = DraftRankCache.getCustomRanking(customRankings, card.getName());
|
||||
if (rkg == null) {
|
||||
// try the default rankings if custom rankings contain no entry
|
||||
// try the default rankings if custom rankings contain no entry, but penalize missing cards
|
||||
rkg = DraftRankCache.getRanking(card.getName(), card.getEdition());
|
||||
if (rkg != null) {
|
||||
rkg = rkg + 1;
|
||||
}
|
||||
}
|
||||
if (rkg != null) {
|
||||
rkg = rkg / 2;
|
||||
}
|
||||
} else {
|
||||
rkg = DraftRankCache.getRanking(card.getName(), card.getEdition());
|
||||
|
||||
@@ -113,7 +113,7 @@ public class CustomLimited extends DeckBase {
|
||||
cd.landSetCode = data.get("LandSetCode");
|
||||
cd.numPacks = data.getInt("NumPacks");
|
||||
cd.singleton = data.getBoolean("Singleton");
|
||||
cd.customRankingsFile = data.get("CustomRankings");
|
||||
cd.customRankingsFile = data.get("CustomRankings", "rankings_cubecobra.txt");
|
||||
final Deck deckCube = cubes.get(data.get("DeckFile"));
|
||||
cd.cardPool = deckCube == null ? ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getUniqueCards(), PaperCard.class) : deckCube.getMain();
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ public class ReadDraftRankings {
|
||||
* the card's edition
|
||||
* @return ranking
|
||||
*/
|
||||
public Double getRanking(String cardName, String edition) {
|
||||
public Double getRanking(String cardName, String edition) {
|
||||
Double rank = null;
|
||||
|
||||
if (draftRankings.containsKey(edition)) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import forge.gamemodes.limited.CardRanker;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
@@ -38,7 +39,6 @@ import forge.card.mana.ManaCost;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.deck.io.DeckPreferences;
|
||||
import forge.game.GameFormat;
|
||||
import forge.gamemodes.limited.DraftRankCache;
|
||||
import forge.gui.card.CardPreferences;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.item.InventoryItem;
|
||||
@@ -551,15 +551,13 @@ public enum ColumnDef {
|
||||
}
|
||||
|
||||
private static Double toRanking(final InventoryItem i, boolean truncate) {
|
||||
if (i instanceof IPaperCard){
|
||||
IPaperCard cp = (IPaperCard) i;
|
||||
Double ranking = DraftRankCache.getRanking(cp.getName(), cp.getEdition());
|
||||
if (ranking != null) {
|
||||
if (truncate) {
|
||||
return new BigDecimal(ranking).setScale(4, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
return ranking;
|
||||
if (i instanceof PaperCard){
|
||||
PaperCard cp = (PaperCard) i;
|
||||
double ranking = CardRanker.getRawScore(cp);
|
||||
if (truncate) {
|
||||
return new BigDecimal(ranking).setScale(4, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
return ranking;
|
||||
}
|
||||
return 500D;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user