mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Merge pull request #264 from kevlahnota/master
refactor aideck selection
This commit is contained in:
@@ -7,6 +7,8 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import forge.util.MyRandom;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -73,6 +75,7 @@ public class FDeckChooser extends FScreen {
|
||||
private boolean firstActivation = true;
|
||||
|
||||
private final DeckManager lstDecks;
|
||||
private List<DeckProxy> AIDecks = new ArrayList<>();
|
||||
private final FButton btnNewDeck = new FButton(Forge.getLocalizer().getInstance().getMessage("lblNewDeck"));
|
||||
private final FButton btnEditDeck = new FButton(Forge.getLocalizer().getInstance().getMessage("btnEditDeck"));
|
||||
private final FButton btnViewDeck = new FButton(Forge.getLocalizer().getInstance().getMessage("lblViewDeck"));
|
||||
@@ -196,18 +199,18 @@ public class FDeckChooser extends FScreen {
|
||||
DeckgenUtil.randomSelect(lstDecks);
|
||||
}
|
||||
else {
|
||||
List<DeckProxy> AIDecks = new ArrayList<>();
|
||||
int count = 0;
|
||||
int size = 0;
|
||||
if (isAi) {
|
||||
for (DeckProxy deckProxy : lstDecks.getPool().toFlatList()) {
|
||||
if (deckProxy.getAI().inMainDeck == 0) {
|
||||
AIDecks.add(deckProxy);
|
||||
count++;
|
||||
AIDecks = lstDecks.getPool().toFlatList().parallelStream().filter(new Predicate<DeckProxy>() {
|
||||
@Override
|
||||
public boolean test(DeckProxy deckProxy) {
|
||||
return deckProxy.getAI().inMainDeck == 0;
|
||||
}
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
size = AIDecks.size();
|
||||
}
|
||||
if (count > 10)
|
||||
lstDecks.setSelectedItem(AIDecks.get(MyRandom.getRandom().nextInt(AIDecks.size())));
|
||||
if (size > 10)
|
||||
lstDecks.setSelectedItem(AIDecks.get(MyRandom.getRandom().nextInt(size)));
|
||||
else
|
||||
DeckgenUtil.randomSelect(lstDecks);
|
||||
}
|
||||
|
||||
@@ -166,18 +166,14 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable<RandomD
|
||||
if (Iterables.isEmpty(decks)) {
|
||||
return getGeneratedDeck(); //fall back to generated deck if no decks in filtered list
|
||||
}
|
||||
List<DeckProxy> AIDecks = new ArrayList<>();
|
||||
int count = 0;
|
||||
if (isAi) {
|
||||
for (DeckProxy deckProxy : decks) {
|
||||
if (deckProxy.getAI().inMainDeck == 0) {
|
||||
AIDecks.add(deckProxy);
|
||||
count++;
|
||||
}
|
||||
Iterable<DeckProxy> AIDecks = Iterables.filter(decks, new Predicate<DeckProxy>() {
|
||||
@Override
|
||||
public boolean apply(DeckProxy deckProxy) {
|
||||
return deckProxy.getAI().inMainDeck == 0;
|
||||
}
|
||||
if (count > 10)
|
||||
return Aggregates.random(AIDecks).getDeck();
|
||||
}
|
||||
});
|
||||
if (isAi && Iterables.size(AIDecks) > 10)
|
||||
return Aggregates.random(AIDecks).getDeck();
|
||||
return Aggregates.random(decks).getDeck();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user