mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Merge branch 'random_lands_from_block_Momir' into 'master'
Random lands from block set code for Momir, MoJhoSto See merge request core-developers/forge!5259
This commit is contained in:
@@ -59,6 +59,7 @@ public class StaticData {
|
|||||||
private IStorage<BoosterBox.Template> boosterBoxes;
|
private IStorage<BoosterBox.Template> boosterBoxes;
|
||||||
private IStorage<PrintSheet> printSheets;
|
private IStorage<PrintSheet> printSheets;
|
||||||
private final Map<String, List<String>> setLookup = new HashMap<>();
|
private final Map<String, List<String>> setLookup = new HashMap<>();
|
||||||
|
private List<String> blocksLandCodes = new ArrayList<>();
|
||||||
|
|
||||||
private static StaticData lastInstance = null;
|
private static StaticData lastInstance = null;
|
||||||
|
|
||||||
@@ -298,6 +299,9 @@ public class StaticData {
|
|||||||
return databases;
|
return databases;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getBlockLands() {
|
||||||
|
return blocksLandCodes;
|
||||||
|
}
|
||||||
|
|
||||||
public TokenDb getAllTokens() { return allTokens; }
|
public TokenDb getAllTokens() { return allTokens; }
|
||||||
|
|
||||||
|
|||||||
@@ -64,8 +64,15 @@ public class CardPool extends ItemPool<PaperCard> {
|
|||||||
this.add(cardName, setCode, IPaperCard.DEFAULT_ART_INDEX, amount);
|
this.add(cardName, setCode, IPaperCard.DEFAULT_ART_INDEX, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void add(final String cardName, final String setCode, final int amount, boolean addAny) {
|
||||||
|
this.add(cardName, setCode, IPaperCard.NO_ART_INDEX, amount, addAny);
|
||||||
|
}
|
||||||
|
|
||||||
// NOTE: ART indices are "1" -based
|
// NOTE: ART indices are "1" -based
|
||||||
public void add(String cardName, String setCode, int artIndex, final int amount) {
|
public void add(String cardName, String setCode, int artIndex, final int amount) {
|
||||||
|
this.add(cardName, setCode, artIndex, amount, false);
|
||||||
|
}
|
||||||
|
public void add(String cardName, String setCode, int artIndex, final int amount, boolean addAny) {
|
||||||
Map<String, CardDb> dbs = StaticData.instance().getAvailableDatabases();
|
Map<String, CardDb> dbs = StaticData.instance().getAvailableDatabases();
|
||||||
PaperCard paperCard = null;
|
PaperCard paperCard = null;
|
||||||
String selectedDbName = "";
|
String selectedDbName = "";
|
||||||
@@ -89,6 +96,10 @@ public class CardPool extends ItemPool<PaperCard> {
|
|||||||
artIndex = IPaperCard.DEFAULT_ART_INDEX; // Reset Any artIndex passed in, at this point
|
artIndex = IPaperCard.DEFAULT_ART_INDEX; // Reset Any artIndex passed in, at this point
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (addAny && paperCard == null) {
|
||||||
|
paperCard = StaticData.instance().getCommonCards().getCard(cardName);
|
||||||
|
selectedDbName = "Common";
|
||||||
|
}
|
||||||
if (paperCard == null){
|
if (paperCard == null){
|
||||||
// after all still null
|
// after all still null
|
||||||
System.err.println("An unsupported card was requested: \"" + cardName + "\" from \"" + setCode + "\". \n");
|
System.err.println("An unsupported card was requested: \"" + cardName + "\" from \"" + setCode + "\". \n");
|
||||||
@@ -103,7 +114,7 @@ public class CardPool extends ItemPool<PaperCard> {
|
|||||||
boolean artIndexExplicitlySet = (artIndex > IPaperCard.DEFAULT_ART_INDEX) ||
|
boolean artIndexExplicitlySet = (artIndex > IPaperCard.DEFAULT_ART_INDEX) ||
|
||||||
(CardDb.CardRequest.fromString(cardName).artIndex > IPaperCard.NO_ART_INDEX);
|
(CardDb.CardRequest.fromString(cardName).artIndex > IPaperCard.NO_ART_INDEX);
|
||||||
|
|
||||||
if (artIndexExplicitlySet || artCount == 1) {
|
if ((artIndexExplicitlySet || artCount == 1) && !addAny) {
|
||||||
// either a specific art index is specified, or there is only one art, so just add the card
|
// either a specific art index is specified, or there is only one art, so just add the card
|
||||||
this.add(paperCard, amount);
|
this.add(paperCard, amount);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import forge.deck.DeckFormat;
|
|||||||
import forge.deck.DeckSection;
|
import forge.deck.DeckSection;
|
||||||
import forge.game.player.RegisteredPlayer;
|
import forge.game.player.RegisteredPlayer;
|
||||||
import forge.util.Localizer;
|
import forge.util.Localizer;
|
||||||
|
import forge.util.MyRandom;
|
||||||
|
|
||||||
public enum GameType {
|
public enum GameType {
|
||||||
|
|
||||||
@@ -41,11 +42,12 @@ public enum GameType {
|
|||||||
public Deck apply(RegisteredPlayer player) {
|
public Deck apply(RegisteredPlayer player) {
|
||||||
Deck deck = new Deck();
|
Deck deck = new Deck();
|
||||||
CardPool mainDeck = deck.getMain();
|
CardPool mainDeck = deck.getMain();
|
||||||
mainDeck.add("Plains", 12);
|
String setcode = StaticData.instance().getBlockLands().get(MyRandom.getRandom().nextInt(StaticData.instance().getBlockLands().size()));
|
||||||
mainDeck.add("Island", 12);
|
mainDeck.add("Plains", setcode, 12, true);
|
||||||
mainDeck.add("Swamp", 12);
|
mainDeck.add("Island", setcode, 12, true);
|
||||||
mainDeck.add("Mountain", 12);
|
mainDeck.add("Swamp", setcode, 12, true);
|
||||||
mainDeck.add("Forest", 12);
|
mainDeck.add("Mountain", setcode, 12, true);
|
||||||
|
mainDeck.add("Forest", setcode, 12, true);
|
||||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||||
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
||||||
return deck;
|
return deck;
|
||||||
@@ -56,11 +58,12 @@ public enum GameType {
|
|||||||
public Deck apply(RegisteredPlayer player) {
|
public Deck apply(RegisteredPlayer player) {
|
||||||
Deck deck = new Deck();
|
Deck deck = new Deck();
|
||||||
CardPool mainDeck = deck.getMain();
|
CardPool mainDeck = deck.getMain();
|
||||||
mainDeck.add("Plains", 12);
|
String setcode = StaticData.instance().getBlockLands().get(MyRandom.getRandom().nextInt(StaticData.instance().getBlockLands().size()));
|
||||||
mainDeck.add("Island", 12);
|
mainDeck.add("Plains", setcode, 12, true);
|
||||||
mainDeck.add("Swamp", 12);
|
mainDeck.add("Island", setcode, 12, true);
|
||||||
mainDeck.add("Mountain", 12);
|
mainDeck.add("Swamp", setcode, 12, true);
|
||||||
mainDeck.add("Forest", 12);
|
mainDeck.add("Mountain", setcode, 12, true);
|
||||||
|
mainDeck.add("Forest", setcode, 12, true);
|
||||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||||
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
.getCard("Momir Vig, Simic Visionary Avatar"), 1);
|
||||||
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
deck.getOrCreate(DeckSection.Avatar).add(StaticData.instance().getVariantCards()
|
||||||
|
|||||||
@@ -217,6 +217,10 @@ public final class FModel {
|
|||||||
magicDb.setMulliganRule(MulliganDefs.MulliganRule.valueOf(preferences.getPref(FPref.MULLIGAN_RULE)));
|
magicDb.setMulliganRule(MulliganDefs.MulliganRule.valueOf(preferences.getPref(FPref.MULLIGAN_RULE)));
|
||||||
|
|
||||||
blocks = new StorageBase<>("Block definitions", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "blocks.txt", magicDb.getEditions()));
|
blocks = new StorageBase<>("Block definitions", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "blocks.txt", magicDb.getEditions()));
|
||||||
|
//setblockLands
|
||||||
|
for (final CardBlock b : blocks) {
|
||||||
|
magicDb.getBlockLands().add(b.getLandSet().getCode());
|
||||||
|
}
|
||||||
questPreferences = new QuestPreferences();
|
questPreferences = new QuestPreferences();
|
||||||
conquestPreferences = new ConquestPreferences();
|
conquestPreferences = new ConquestPreferences();
|
||||||
fantasyBlocks = new StorageBase<>("Custom blocks", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "fantasyblocks.txt", magicDb.getEditions()));
|
fantasyBlocks = new StorageBase<>("Custom blocks", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "fantasyblocks.txt", magicDb.getEditions()));
|
||||||
|
|||||||
Reference in New Issue
Block a user