mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Merge pull request #2516 from kevlahnota/newmaster2
patch crash for adventure starter decks generation
This commit is contained in:
@@ -19,6 +19,7 @@ import forge.item.PaperCard;
|
|||||||
import forge.item.SealedProduct;
|
import forge.item.SealedProduct;
|
||||||
import forge.item.generation.UnOpenedProduct;
|
import forge.item.generation.UnOpenedProduct;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
|
import forge.util.Aggregates;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -386,7 +387,7 @@ public class CardUtil {
|
|||||||
if (!editionCodes.contains(template.getEdition().split("\\s",2)[0]))
|
if (!editionCodes.contains(template.getEdition().split("\\s",2)[0]))
|
||||||
continue;
|
continue;
|
||||||
List<PaperCard> packContents = new UnOpenedProduct(template).get();
|
List<PaperCard> packContents = new UnOpenedProduct(template).get();
|
||||||
if (packContents.size() < 20 | packContents.size() > 25)
|
if (packContents.size() < 18 | packContents.size() > 25)
|
||||||
continue;
|
continue;
|
||||||
if (packContents.stream().filter(x -> x.getName().equals(targetName)).count() >=3)
|
if (packContents.stream().filter(x -> x.getName().equals(targetName)).count() >=3)
|
||||||
packCandidates.putIfAbsent(template.getEdition(), packContents);
|
packCandidates.putIfAbsent(template.getEdition(), packContents);
|
||||||
@@ -412,6 +413,11 @@ public class CardUtil {
|
|||||||
Object[] keys = packCandidates.keySet().toArray();
|
Object[] keys = packCandidates.keySet().toArray();
|
||||||
selectedPack = packCandidates.get((String)keys[Current.world().getRandom().nextInt(keys.length)]);
|
selectedPack = packCandidates.get((String)keys[Current.world().getRandom().nextInt(keys.length)]);
|
||||||
}
|
}
|
||||||
|
//if the packContents size above is below 20, just get random card
|
||||||
|
int size = 20 - selectedPack.size();
|
||||||
|
for (int c = 0; c < size; c++) {
|
||||||
|
selectedPack.add(Aggregates.random(selectedPack));
|
||||||
|
}
|
||||||
deck.getOrCreate(DeckSection.Main).addAllFlat(selectedPack);
|
deck.getOrCreate(DeckSection.Main).addAllFlat(selectedPack);
|
||||||
}
|
}
|
||||||
return deck;
|
return deck;
|
||||||
|
|||||||
Reference in New Issue
Block a user