mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Support generating proper Tiny Leaders decks
This commit is contained in:
@@ -47,8 +47,8 @@ public class DeckGeneratorTheme extends DeckGeneratorBase {
|
||||
* Constructor for ThemeDeckGenerator.
|
||||
* </p>
|
||||
*/
|
||||
public DeckGeneratorTheme(IDeckGenPool pool) {
|
||||
super(pool);
|
||||
public DeckGeneratorTheme(IDeckGenPool pool0) {
|
||||
super(pool0, DeckFormat.Constructed);
|
||||
this.maxDuplicates = 4;
|
||||
}
|
||||
|
||||
|
||||
@@ -52,16 +52,16 @@ public class DeckgenUtil {
|
||||
DeckGeneratorBase gen = null;
|
||||
CardDb cardDb = FModel.getMagicDb().getCommonCards();
|
||||
if (selection.size() == 1) {
|
||||
gen = new DeckGeneratorMonoColor(cardDb, selection.get(0));
|
||||
gen = new DeckGeneratorMonoColor(cardDb, DeckFormat.Constructed, selection.get(0));
|
||||
}
|
||||
else if (selection.size() == 2) {
|
||||
gen = new DeckGenerator2Color(cardDb, selection.get(0), selection.get(1));
|
||||
gen = new DeckGenerator2Color(cardDb, DeckFormat.Constructed, selection.get(0), selection.get(1));
|
||||
}
|
||||
else if (selection.size() == 3) {
|
||||
gen = new DeckGenerator3Color(cardDb, selection.get(0), selection.get(1), selection.get(2));
|
||||
gen = new DeckGenerator3Color(cardDb, DeckFormat.Constructed, selection.get(0), selection.get(1), selection.get(2));
|
||||
}
|
||||
else {
|
||||
gen = new DeckGenerator5Color(cardDb);
|
||||
gen = new DeckGenerator5Color(cardDb, DeckFormat.Constructed);
|
||||
deckName = "5 colors";
|
||||
}
|
||||
gen.setSingleton(FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS));
|
||||
@@ -278,16 +278,23 @@ public class DeckgenUtil {
|
||||
/** Generate a 2-color Commander deck. */
|
||||
public static Deck generateCommanderDeck(boolean forAi, GameType gameType) {
|
||||
final Deck deck;
|
||||
IDeckGenPool cardDb = gameType.getDeckFormat().getCardPool();
|
||||
IDeckGenPool cardDb = FModel.getMagicDb().getCommonCards();
|
||||
PaperCard commander;
|
||||
ColorSet colorID;
|
||||
|
||||
// Get random multicolor Legendary creature
|
||||
final DeckFormat format = gameType.getDeckFormat();
|
||||
Predicate<CardRules> canPlay = forAi ? DeckGeneratorBase.AI_CAN_PLAY : DeckGeneratorBase.HUMAN_CAN_PLAY;
|
||||
Iterable<PaperCard> legends = cardDb.getAllCards(Predicates.compose(Predicates.and
|
||||
(CardRulesPredicates.Presets.IS_CREATURE, CardRulesPredicates.Presets.IS_LEGENDARY), PaperCard.FN_GET_RULES));
|
||||
legends = Iterables.filter(legends, Predicates.compose(Predicates.and
|
||||
(CardRulesPredicates.Presets.IS_MULTICOLOR, canPlay), PaperCard.FN_GET_RULES));
|
||||
@SuppressWarnings("unchecked")
|
||||
Iterable<PaperCard> legends = cardDb.getAllCards(Predicates.compose(Predicates.and(
|
||||
new Predicate<CardRules>() {
|
||||
@Override
|
||||
public boolean apply(CardRules rules) {
|
||||
return format.isLegalCommander(rules);
|
||||
}
|
||||
},
|
||||
CardRulesPredicates.Presets.IS_MULTICOLOR,
|
||||
canPlay), PaperCard.FN_GET_RULES));
|
||||
|
||||
do {
|
||||
commander = Aggregates.random(legends);
|
||||
@@ -302,7 +309,7 @@ public class DeckgenUtil {
|
||||
if (colorID.hasGreen()) { comColors.add("Green"); }
|
||||
|
||||
DeckGeneratorBase gen = null;
|
||||
gen = new DeckGenerator2Color(cardDb, comColors.get(0), comColors.get(1));
|
||||
gen = new DeckGenerator2Color(cardDb, format, comColors.get(0), comColors.get(1));
|
||||
gen.setSingleton(true);
|
||||
gen.setUseArtifacts(!FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS));
|
||||
CardPool cards = gen == null ? null : gen.getDeck(gameType.getDeckFormat().getMainRange().getMaximum(), forAi);
|
||||
|
||||
@@ -10,6 +10,7 @@ import forge.card.mana.ManaCost;
|
||||
import forge.card.mana.ManaCostShard;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckFormat;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.deck.generation.DeckGeneratorBase;
|
||||
import forge.item.IPaperCard;
|
||||
@@ -54,7 +55,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase{
|
||||
* Chosen colors.
|
||||
*/
|
||||
public LimitedDeckBuilder(List<PaperCard> dList, DeckColors pClrs) {
|
||||
super(FModel.getMagicDb().getCommonCards());
|
||||
super(FModel.getMagicDb().getCommonCards(), DeckFormat.Limited);
|
||||
this.availableList = dList;
|
||||
this.deckColors = pClrs;
|
||||
this.colors = pClrs.getChosenColors();
|
||||
|
||||
@@ -9,6 +9,7 @@ import forge.card.ColorSet;
|
||||
import forge.card.MagicColor;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckFormat;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.deck.generation.DeckGenerator2Color;
|
||||
import forge.deck.generation.DeckGenerator3Color;
|
||||
@@ -39,19 +40,19 @@ public class ConquestUtil {
|
||||
DeckGeneratorBase gen;
|
||||
switch (colors.size()) {
|
||||
case 0:
|
||||
gen = new DeckGeneratorMonoColor(pool, "");
|
||||
gen = new DeckGeneratorMonoColor(pool, DeckFormat.PlanarConquest, "");
|
||||
break;
|
||||
case 1:
|
||||
gen = new DeckGeneratorMonoColor(pool, colors.get(0));
|
||||
gen = new DeckGeneratorMonoColor(pool, DeckFormat.PlanarConquest, colors.get(0));
|
||||
break;
|
||||
case 2:
|
||||
gen = new DeckGenerator2Color(pool, colors.get(0), colors.get(1));
|
||||
gen = new DeckGenerator2Color(pool, DeckFormat.PlanarConquest, colors.get(0), colors.get(1));
|
||||
break;
|
||||
case 3:
|
||||
gen = new DeckGenerator3Color(pool, colors.get(0), colors.get(1), colors.get(2));
|
||||
gen = new DeckGenerator3Color(pool, DeckFormat.PlanarConquest, colors.get(0), colors.get(1), colors.get(2));
|
||||
break;
|
||||
case 5:
|
||||
gen = new DeckGenerator5Color(pool);
|
||||
gen = new DeckGenerator5Color(pool, DeckFormat.PlanarConquest);
|
||||
break;
|
||||
default:
|
||||
return null; //shouldn't happen
|
||||
|
||||
Reference in New Issue
Block a user