mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Guava migration - Helper method for composing CardRules into PaperCards
This commit is contained in:
@@ -8,6 +8,7 @@ import javax.swing.JPanel;
|
||||
|
||||
import forge.card.CardRules;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.SItemManagerUtil.StatTypes;
|
||||
import forge.itemmanager.SpellShopManager;
|
||||
@@ -55,6 +56,6 @@ public class CardCMCFilter extends StatTypeFilter<PaperCard> {
|
||||
//use custom return true delegate to validate the item is a card
|
||||
return card -> true;
|
||||
}
|
||||
return Predicates.compose(Predicates.or(cmcs), PaperCard::getRules);
|
||||
return PaperCardPredicates.fromRules(Predicates.or(cmcs));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.itemmanager.filters;
|
||||
import forge.card.CardRules;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.util.Predicates;
|
||||
|
||||
@@ -33,6 +34,6 @@ public class CardCMCRangeFilter extends ValueRangeFilter<PaperCard> {
|
||||
if (predicate == null) {
|
||||
return x -> true;
|
||||
}
|
||||
return Predicates.compose(predicate, PaperCard::getRules);
|
||||
return PaperCardPredicates.fromRules(predicate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.itemmanager.filters;
|
||||
import forge.card.CardRules;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.util.Predicates;
|
||||
|
||||
@@ -34,6 +35,6 @@ public class CardPowerFilter extends ValueRangeFilter<PaperCard> {
|
||||
return x -> true;
|
||||
}
|
||||
predicate = predicate.and(CardRulesPredicates.IS_CREATURE);
|
||||
return Predicates.compose(predicate, PaperCard::getRules);
|
||||
return PaperCardPredicates.fromRules(predicate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.itemmanager.filters;
|
||||
import forge.card.CardRules;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.util.Predicates;
|
||||
|
||||
@@ -34,6 +35,6 @@ public class CardToughnessFilter extends ValueRangeFilter<PaperCard> {
|
||||
return x -> true;
|
||||
}
|
||||
predicate = predicate.and(CardRulesPredicates.IS_CREATURE);
|
||||
return Predicates.compose(predicate, PaperCard::getRules);
|
||||
return PaperCardPredicates.fromRules(predicate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import javax.swing.JPanel;
|
||||
|
||||
import forge.card.CardRules;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.SItemManagerUtil.StatTypes;
|
||||
import forge.itemmanager.SpellShopManager;
|
||||
@@ -53,6 +54,6 @@ public class CardTypeFilter extends StatTypeFilter<PaperCard> {
|
||||
//use custom return true delegate to validate the item is a card
|
||||
return card -> true;
|
||||
}
|
||||
return Predicates.compose(Predicates.or(types), PaperCard::getRules);
|
||||
return PaperCardPredicates.fromRules(Predicates.or(types));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import forge.gui.UiCommand;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.ItemPredicate;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.SFilterUtil;
|
||||
import forge.itemmanager.SItemManagerUtil.StatTypes;
|
||||
@@ -76,7 +77,7 @@ public abstract class StatTypeFilter<T extends InventoryItem> extends ToggleButt
|
||||
|
||||
for (StatTypes statTypes : buttonMap.keySet()) {
|
||||
if (statTypes.predicate != null) {
|
||||
int count = items.countAll(Predicates.compose(statTypes.predicate, PaperCard::getRules), PaperCard.class);
|
||||
int count = items.countAll(PaperCardPredicates.fromRules(statTypes.predicate), PaperCard.class);
|
||||
buttonMap.get(statTypes).setText(String.valueOf(count));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import forge.gui.UiCommand;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.localinstance.properties.ForgePreferences.FPref;
|
||||
import forge.model.FModel;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
@@ -70,7 +71,7 @@ public enum CDeckgen implements ICDoc {
|
||||
|
||||
final Deck randomDeck = new Deck();
|
||||
|
||||
final Predicate<PaperCard> notBasicLand = Predicates.compose(CardRulesPredicates.NOT_BASIC_LAND, PaperCard::getRules);
|
||||
final Predicate<PaperCard> notBasicLand = PaperCardPredicates.fromRules(CardRulesPredicates.NOT_BASIC_LAND);
|
||||
final Iterable<PaperCard> source = Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCards(), notBasicLand);
|
||||
randomDeck.getMain().addAllFlat(Aggregates.random(source, 15 * 5));
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import forge.gui.UiCommand;
|
||||
import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.model.CardCollections;
|
||||
@@ -83,14 +84,14 @@ public final class CEditorCommander extends CDeckEditor<Deck> {
|
||||
if (gameType == GameType.Brawl){
|
||||
GameFormat format = FModel.getFormats().get("Brawl");
|
||||
Predicate<CardRules> commanderFilter = CardRulesPredicates.CAN_BE_BRAWL_COMMANDER;
|
||||
commanderPool = ItemPool.createFrom(commonCards.getAllCardsNoAlt(format.getFilterPrinted().and(Predicates.compose(commanderFilter, PaperCard::getRules))), PaperCard.class);
|
||||
commanderPool = ItemPool.createFrom(commonCards.getAllCardsNoAlt(format.getFilterPrinted().and(PaperCardPredicates.fromRules(commanderFilter))), PaperCard.class);
|
||||
normalPool = ItemPool.createFrom(format.getAllCards(), PaperCard.class);
|
||||
}
|
||||
else {
|
||||
Predicate<CardRules> commanderFilter = gameType == GameType.Oathbreaker
|
||||
? CardRulesPredicates.CAN_BE_OATHBREAKER.or(CardRulesPredicates.CAN_BE_SIGNATURE_SPELL)
|
||||
: CardRulesPredicates.CAN_BE_COMMANDER;
|
||||
commanderPool = ItemPool.createFrom(commonCards.getAllCardsNoAlt(Predicates.compose(commanderFilter, PaperCard::getRules)),PaperCard.class);
|
||||
commanderPool = ItemPool.createFrom(commonCards.getAllCardsNoAlt(PaperCardPredicates.fromRules(commanderFilter)),PaperCard.class);
|
||||
normalPool = ItemPool.createFrom(commonCards.getAllCardsNoAlt(), PaperCard.class);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ import forge.gui.framework.DragCell;
|
||||
import forge.gui.framework.FScreen;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ColumnDef;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
@@ -346,7 +347,7 @@ public final class CEditorQuest extends CDeckEditor<Deck> {
|
||||
}
|
||||
|
||||
private ItemPool<PaperCard> getCommanderCardPool(){
|
||||
Predicate<PaperCard> commanderPredicate = Predicates.compose(CardRulesPredicates.CAN_BE_COMMANDER, PaperCard::getRules);
|
||||
Predicate<PaperCard> commanderPredicate = PaperCardPredicates.fromRules(CardRulesPredicates.CAN_BE_COMMANDER);
|
||||
return getRemainingCardPool().getFilteredPool(commanderPredicate);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import forge.deck.DeckBase;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.SItemManagerUtil.StatTypes;
|
||||
import forge.screens.deckeditor.CDeckEditorUI;
|
||||
import forge.screens.deckeditor.views.VStatistics;
|
||||
@@ -51,7 +52,7 @@ public enum CStatistics implements ICDoc {
|
||||
}
|
||||
|
||||
private void setLabelValue(final JLabel label, final ItemPool<PaperCard> deck, final Predicate<CardRules> predicate, final int total) {
|
||||
final int tmp = deck.countAll(Predicates.compose(predicate, PaperCard::getRules));
|
||||
final int tmp = deck.countAll(PaperCardPredicates.fromRules(predicate));
|
||||
label.setText(tmp + " (" + calculatePercentage(tmp, total) + "%)");
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import forge.deck.CardPool;
|
||||
import forge.deck.DeckRecognizer;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.itemmanager.SItemManagerUtil;
|
||||
import forge.screens.deckeditor.views.VStatisticsImporter;
|
||||
import forge.util.ItemPool;
|
||||
@@ -100,7 +101,7 @@ public class CStatisticsImporter {
|
||||
}
|
||||
|
||||
private void setLabelValue(final JLabel label, final ItemPool<PaperCard> deck, final Predicate<CardRules> predicate, final int total) {
|
||||
final int tmp = deck.countAll(Predicates.compose(predicate, PaperCard::getRules));
|
||||
final int tmp = deck.countAll(PaperCardPredicates.fromRules(predicate));
|
||||
label.setText(tmp + " (" + calculatePercentage(tmp, total) + "%)");
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import forge.game.GameType;
|
||||
import forge.gamemodes.limited.CardRanker;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.localinstance.properties.ForgeConstants;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
@@ -76,10 +77,10 @@ public class PlanarConquestCommanderGeneraterGA extends PlanarConquestGeneraterG
|
||||
}
|
||||
|
||||
Iterable<PaperCard> filtered= Iterables.filter(cards,
|
||||
Predicates.compose(CardRulesPredicates.IS_KEPT_IN_AI_DECKS, PaperCard::getRules)
|
||||
.and(Predicates.compose(CardRulesPredicates.IS_PLANESWALKER, PaperCard::getRules))
|
||||
//.and(Predicates.compose(CardRulesPredicates.IS_LEGENDARY, PaperCard::getRules))
|
||||
.and(gameFormat.getFilterPrinted())
|
||||
PaperCardPredicates.fromRules(CardRulesPredicates.IS_KEPT_IN_AI_DECKS
|
||||
.and(CardRulesPredicates.IS_PLANESWALKER)
|
||||
//.and(CardRulesPredicates.IS_LEGENDARY)
|
||||
).and(gameFormat.getFilterPrinted())
|
||||
);
|
||||
|
||||
List<PaperCard> filteredList = Lists.newArrayList(filtered);
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.util.*;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
@@ -106,9 +107,9 @@ public class PlanarConquestGeneraterGA extends AbstractGeneticAlgorithm<Deck> {
|
||||
}
|
||||
|
||||
Iterable<PaperCard> filtered= Iterables.filter(cards,
|
||||
Predicates.compose(CardRulesPredicates.IS_KEPT_IN_AI_DECKS, PaperCard::getRules)
|
||||
.and(Predicates.compose(CardRulesPredicates.IS_NON_LAND, PaperCard::getRules))
|
||||
.and(gameFormat.getFilterPrinted())
|
||||
PaperCardPredicates.fromRules(CardRulesPredicates.IS_KEPT_IN_AI_DECKS
|
||||
.and(CardRulesPredicates.IS_NON_LAND)
|
||||
).and(gameFormat.getFilterPrinted())
|
||||
);
|
||||
|
||||
List<PaperCard> filteredList = Lists.newArrayList(filtered);
|
||||
|
||||
@@ -19,6 +19,7 @@ import forge.game.GameType;
|
||||
import forge.gamemodes.limited.CardRanker;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.item.PaperCard;
|
||||
import forge.item.PaperCardPredicates;
|
||||
import forge.localinstance.properties.ForgeConstants;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
@@ -78,10 +79,10 @@ public class PlanarConquestTribalGeneraterGA extends PlanarConquestGeneraterGA {
|
||||
}
|
||||
|
||||
Iterable<PaperCard> filteredTribe= Iterables.filter(cards,
|
||||
Predicates.compose(CardRulesPredicates.IS_KEPT_IN_AI_DECKS, PaperCard::getRules)
|
||||
.and(Predicates.compose(CardRulesPredicates.hasCreatureType("Pirate"), PaperCard::getRules))
|
||||
.and(Predicates.compose(CardRulesPredicates.IS_CREATURE, PaperCard::getRules))
|
||||
.and(gameFormat.getFilterPrinted())
|
||||
PaperCardPredicates.fromRules(CardRulesPredicates.IS_KEPT_IN_AI_DECKS
|
||||
.and(CardRulesPredicates.hasCreatureType("Pirate"))
|
||||
.and(CardRulesPredicates.IS_CREATURE)
|
||||
).and(gameFormat.getFilterPrinted())
|
||||
);
|
||||
|
||||
List<PaperCard> filteredListTribe = Lists.newArrayList(filteredTribe);
|
||||
|
||||
Reference in New Issue
Block a user