add questevent decks for chaos mode

- add dumpEnemyDeckList command
This commit is contained in:
Anthony Calosa
2022-05-21 02:40:09 +08:00
parent 27603a78e2
commit f9ebfddaab
4 changed files with 39 additions and 7 deletions

View File

@@ -45,6 +45,6 @@ public class EnemyData {
} }
public Deck generateDeck(boolean isFantasyMode) { public Deck generateDeck(boolean isFantasyMode) {
return CardUtil.getDeck(deck, true, isFantasyMode, colors, life > 15 && life < 19); return CardUtil.getDeck(deck, true, isFantasyMode, colors, life > 15);
} }
} }

View File

@@ -209,6 +209,16 @@ public class ConsoleCommandInterpreter {
} }
return "Enemy deck color list dumped to stdout."; return "Enemy deck color list dumped to stdout.";
}); });
registerCommand(new String[]{"dumpEnemyDeckList"}, s -> {
for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){
Deck D = E.generateDeck(Current.player().isFantasyMode());
DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null);
ColorSet colorSet = DP.getColor();
System.out.printf("Deck: %s\n%s\n\n", D.getName(), DP.getDeck().getMain().toCardList("\n")
);
}
return "Enemy deck list dumped to stdout.";
});
registerCommand(new String[]{"heal", "amount"}, s -> { registerCommand(new String[]{"heal", "amount"}, s -> {
if(s.length<1) return "Command needs 1 parameter"; if(s.length<1) return "Command needs 1 parameter";
int N = 0; int N = 0;

View File

@@ -12,6 +12,7 @@ import forge.game.GameFormat;
import forge.game.GameType; import forge.game.GameType;
import forge.gamemodes.quest.QuestController; import forge.gamemodes.quest.QuestController;
import forge.gamemodes.quest.QuestEvent; import forge.gamemodes.quest.QuestEvent;
import forge.gamemodes.quest.QuestEventDifficulty;
import forge.item.InventoryItem; import forge.item.InventoryItem;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.item.PreconDeck; import forge.item.PreconDeck;
@@ -562,6 +563,21 @@ public class DeckProxy implements InventoryItem {
return decks; return decks;
} }
public static List<DeckProxy> getNonEasyQuestDuelDecks() {
final List<DeckProxy> decks = new ArrayList<>();
final QuestController quest = FModel.getQuest();
for (final QuestEvent e : quest.getDuelsManager().getDuels(QuestEventDifficulty.MEDIUM)) {
decks.add(new DeckProxy(e.getEventDeck(), "Quest Event", null, null));
}
for (final QuestEvent e : quest.getDuelsManager().getDuels(QuestEventDifficulty.HARD)) {
decks.add(new DeckProxy(e.getEventDeck(), "Quest Event", null, null));
}
for (final QuestEvent e : quest.getDuelsManager().getDuels(QuestEventDifficulty.EXPERT)) {
decks.add(new DeckProxy(e.getEventDeck(), "Quest Event", null, null));
}
return decks;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static List<DeckProxy> getAllSealedDecks() { public static List<DeckProxy> getAllSealedDecks() {
final List<DeckProxy> humanDecks = new ArrayList<>(); final List<DeckProxy> humanDecks = new ArrayList<>();

View File

@@ -454,9 +454,15 @@ public class DeckgenUtil {
//monocolor //monocolor
if (selection.size() == 1) { if (selection.size() == 1) {
if (isTheme) { if (isTheme) {
allDecks = DeckProxy.getAllThemeDecks().parallelStream() //duels and theme
allDecks = Stream.concat(DeckProxy.getAllThemeDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60) .filter(deckProxy -> deckProxy.getMainSize() <= 60)
.filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().isMonoColor() && deckProxy.getColor().hasExactlyColor(ColorSet.fromNames(selection).getColor())) .filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().isMonoColor()
&& deckProxy.getColor().hasExactlyColor(ColorSet.fromNames(selection).getColor())),
DeckProxy.getNonEasyQuestDuelDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60)
.filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().isMonoColor()
&& deckProxy.getColor().hasExactlyColor(ColorSet.fromNames(selection).getColor())))
.collect(Collectors.toList()); .collect(Collectors.toList());
} else { } else {
allDecks = DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons()).parallelStream() allDecks = DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons()).parallelStream()
@@ -466,11 +472,11 @@ public class DeckgenUtil {
} }
} else { } else {
if (isTheme) { if (isTheme) {
//include both theme and precons //duels and theme
allDecks = Stream.concat(DeckProxy.getAllThemeDecks().parallelStream() allDecks = Stream.concat(DeckProxy.getAllThemeDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60) .filter(deckProxy -> deckProxy.getMainSize() <= 60)
.filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().hasAllColors(ColorSet.fromNames(selection).getColor())), .filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().hasAllColors(ColorSet.fromNames(selection).getColor())),
DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons()).parallelStream() DeckProxy.getNonEasyQuestDuelDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60) .filter(deckProxy -> deckProxy.getMainSize() <= 60)
.filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().hasAllColors(ColorSet.fromNames(selection).getColor()))) .filter(deckProxy -> deckProxy.getColor() != null && deckProxy.getColor().hasAllColors(ColorSet.fromNames(selection).getColor())))
.collect(Collectors.toList()); .collect(Collectors.toList());
@@ -484,10 +490,10 @@ public class DeckgenUtil {
} else { } else {
//no specific colors //no specific colors
if (isTheme) { if (isTheme) {
//include both theme and precons //duels and theme
allDecks = Stream.concat(DeckProxy.getAllThemeDecks().parallelStream() allDecks = Stream.concat(DeckProxy.getAllThemeDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60), .filter(deckProxy -> deckProxy.getMainSize() <= 60),
DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons()).parallelStream() DeckProxy.getNonEasyQuestDuelDecks().parallelStream()
.filter(deckProxy -> deckProxy.getMainSize() <= 60)) .filter(deckProxy -> deckProxy.getMainSize() <= 60))
.collect(Collectors.toList()); .collect(Collectors.toList());
} else { } else {