update Adventure Chaos Mode

- Genetic AI Decks is available on some enemies on Hard Difficulty on Adventure Chaos Mode
This commit is contained in:
Anthony Calosa
2022-05-27 08:21:03 +08:00
parent a95573fbb7
commit 846e1e95bc
122 changed files with 3719 additions and 22 deletions

View File

@@ -44,7 +44,7 @@ public class EnemyData {
}
}
public Deck generateDeck(boolean isFantasyMode) {
return CardUtil.getDeck(deck, true, isFantasyMode, colors, life > 15);
public Deck generateDeck(boolean isFantasyMode, boolean useGeneticAI) {
return CardUtil.getDeck(deck, true, isFantasyMode, colors, life > 13, life > 16 && useGeneticAI);
}
}

View File

@@ -305,7 +305,7 @@ public class DuelScene extends ForgeScene {
} else {
this.AIExtras.clear();
this.playerExtras.clear();
this.enemyDeck = this.enemy.getData().copyPlayerDeck ? this.playerDeck : this.enemy.getData().generateDeck(Current.player().isFantasyMode());
this.enemyDeck = this.enemy.getData().copyPlayerDeck ? this.playerDeck : this.enemy.getData().generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard"));
}
}
public Deck getPlayerDeck() {

View File

@@ -195,7 +195,7 @@ public class ConsoleCommandInterpreter {
});
registerCommand(new String[]{"dumpEnemyDeckColors"}, s -> {
for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){
Deck D = E.generateDeck(Current.player().isFantasyMode());
Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard"));
DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null);
ColorSet colorSet = DP.getColor();
System.out.printf("%s: Colors: %s (%s%s%s%s%s%s)\n", D.getName(), DP.getColor(),
@@ -211,7 +211,7 @@ public class ConsoleCommandInterpreter {
});
registerCommand(new String[]{"dumpEnemyDeckList"}, s -> {
for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){
Deck D = E.generateDeck(Current.player().isFantasyMode());
Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard"));
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")
@@ -221,7 +221,7 @@ public class ConsoleCommandInterpreter {
});
registerCommand(new String[]{"dumpEnemyColorIdentity"}, s -> {
for(EnemyData E : new Array.ArrayIterator<>(WorldData.getAllEnemies())){
Deck D = E.generateDeck(Current.player().isFantasyMode());
Deck D = E.generateDeck(Current.player().isFantasyMode(), Current.player().getDifficulty().name.equalsIgnoreCase("Hard"));
DeckProxy DP = new DeckProxy(D, "Constructed", GameType.Constructed, null);
ColorSet colorSet = DP.getColor();
System.out.printf("%s Colors: %s | Deck Colors: %s (%s)\n", E.name, E.colors, DP.getColorIdentity().toEnumSet().toString(), DP.getName()

View File

@@ -249,7 +249,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
if (WorldSave.getCurrentSave().getPlayer().hasAnnounceFantasy()) {
MapStage.getInstance().showDeckAwardDialog("Chaos Mode!\n"+ WorldSave.getCurrentSave().getPlayer().getName()+ "'s Deck: "+
WorldSave.getCurrentSave().getPlayer().getSelectedDeck().getName()+
"\nEnemy will use Preconstructed, Theme or Random Generated Decks.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
"\nEnemy will use Preconstructed or Random Generated Decks. Genetic AI Decks will be available to some enemies on Hard difficulty.", WorldSave.getCurrentSave().getPlayer().getSelectedDeck());
WorldSave.getCurrentSave().getPlayer().clearAnnounceFantasy();
}
}

View File

@@ -499,13 +499,13 @@ public class CardUtil {
return ret;
}
public static Deck getDeck(String path, boolean forAI, boolean isFantasyMode, String colors, boolean isTheme)
public static Deck getDeck(String path, boolean forAI, boolean isFantasyMode, String colors, boolean isTheme, boolean useGeneticAI)
{
if(path.endsWith(".dck"))
return DeckSerializer.fromFile(new File(Config.instance().getFilePath(path)));
if(forAI && isFantasyMode) {
Deck deck = DeckgenUtil.getRandomOrPreconOrThemeDeck(colors, forAI, isTheme);
Deck deck = DeckgenUtil.getRandomOrPreconOrThemeDeck(colors, forAI, isTheme, useGeneticAI);
if (deck != null)
return deck;
}

View File

@@ -113,7 +113,7 @@ public class Config {
Deck[] deck = new Deck[configData.starterDecks.length];
for (int i = 0; i < configData.starterDecks.length; i++) {
deck[i] = CardUtil.getDeck(configData.starterDecks[i], false, false, "", false);
deck[i] = CardUtil.getDeck(configData.starterDecks[i], false, false, "", false, false);
}
return deck;
}

View File

@@ -122,7 +122,7 @@ public class WorldSave {
public static WorldSave generateNewWorld(String name, boolean male, int race, int avatarIndex, int startingColorIdentity, DifficultyData diff, boolean isFantasy, long seed) {
currentSave.world.generateNew(seed);
currentSave.pointOfInterestChanges.clear();
Deck starterDeck = isFantasy ? DeckgenUtil.getRandomOrPreconOrThemeDeck("", false, false) : Config.instance().starterDecks()[startingColorIdentity];
Deck starterDeck = isFantasy ? DeckgenUtil.getRandomOrPreconOrThemeDeck("", false, false, false) : Config.instance().starterDecks()[startingColorIdentity];
currentSave.player.create(name, startingColorIdentity, starterDeck, male, race, avatarIndex, isFantasy, diff);
currentSave.player.setWorldPosY((int) (currentSave.world.getData().playerStartPosY * currentSave.world.getData().height * currentSave.world.getTileSize()));
currentSave.player.setWorldPosX((int) (currentSave.world.getData().playerStartPosX * currentSave.world.getData().width * currentSave.world.getTileSize()));