mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
update Adventure Chaos Mode
- Genetic AI Decks is available on some enemies on Hard Difficulty on Adventure Chaos Mode
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user