mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 02:08:00 +00:00
Fixes for snow covered lands in LDA deck generation
This commit is contained in:
@@ -2,18 +2,31 @@ package forge.gamemodes.limited;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import forge.card.MagicColor;
|
||||
import forge.deck.DeckFormat;
|
||||
import forge.deck.io.Archetype;
|
||||
import forge.game.GameFormat;
|
||||
import forge.item.PaperCard;
|
||||
import forge.model.FModel;
|
||||
import forge.util.MyRandom;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
public class ArchetypeDeckBuilder extends CardThemedDeckBuilder{
|
||||
|
||||
private Archetype archetype;
|
||||
private boolean needsSnowLands = false;
|
||||
|
||||
public ArchetypeDeckBuilder(Archetype archetype0, PaperCard keyCard0, final List<PaperCard> dList, GameFormat format, boolean isForAI){
|
||||
super(keyCard0,null, dList, format, isForAI, DeckFormat.Constructed);
|
||||
archetype = archetype0;
|
||||
for(Pair<String, Double> pair : archetype.getCardProbabilities()){
|
||||
for(int i=0;i<5;++i){
|
||||
if (pair.getLeft().equals(MagicColor.Constant.SNOW_LANDS.get(i))) {
|
||||
needsSnowLands=true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -25,6 +38,31 @@ public class ArchetypeDeckBuilder extends CardThemedDeckBuilder{
|
||||
return archetype.getName() + " Generated Deck";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get basic land.
|
||||
*
|
||||
* @param basicLand
|
||||
* the set to take basic lands from (pass 'null' for random).
|
||||
* @return card
|
||||
*/
|
||||
protected PaperCard getBasicLand(final int basicLand) {
|
||||
if(needsSnowLands){
|
||||
for(String landSet : setsWithBasicLands){
|
||||
PaperCard land = FModel.getMagicDb().getCommonCards().getCard(MagicColor.Constant.SNOW_LANDS.get(basicLand), landSet);
|
||||
if(land!=null){
|
||||
return land;
|
||||
}
|
||||
}
|
||||
}
|
||||
String set;
|
||||
if (setsWithBasicLands.size() > 1) {
|
||||
set = setsWithBasicLands.get(MyRandom.getRandom().nextInt(setsWithBasicLands.size() - 1));
|
||||
} else {
|
||||
set = setsWithBasicLands.get(0);
|
||||
}
|
||||
return FModel.getMagicDb().getCommonCards().getCard(MagicColor.Constant.BASIC_LANDS.get(basicLand), set);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -740,7 +740,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase {
|
||||
* the set to take basic lands from (pass 'null' for random).
|
||||
* @return card
|
||||
*/
|
||||
private PaperCard getBasicLand(final int basicLand) {
|
||||
protected PaperCard getBasicLand(final int basicLand) {
|
||||
String set;
|
||||
if (setsWithBasicLands.size() > 1) {
|
||||
set = setsWithBasicLands.get(MyRandom.getRandom().nextInt(setsWithBasicLands.size() - 1));
|
||||
|
||||
Reference in New Issue
Block a user