2017-05-09 14:03:51 -07:00
|
|
|
package magic;
|
|
|
|
|
|
|
|
import java.util.Locale;
|
2017-05-09 15:02:55 -07:00
|
|
|
import magic.ai.MagicAI;
|
2017-05-09 14:03:51 -07:00
|
|
|
import magic.ai.MagicAIImpl;
|
2017-05-10 04:49:39 -07:00
|
|
|
import magic.data.DuelConfig;
|
2017-05-09 14:03:51 -07:00
|
|
|
import magic.utility.MagicSystem;
|
|
|
|
|
|
|
|
class CommandLineArgs {
|
|
|
|
|
|
|
|
private MagicAIImpl ai1 = MagicAIImpl.MMABFast;
|
|
|
|
private MagicAIImpl ai2 = MagicAIImpl.MMABFast;
|
|
|
|
private int ai1Level = 8;
|
|
|
|
private int ai2Level = 8;
|
2017-05-10 02:29:44 -07:00
|
|
|
private boolean isAnimationsEnabled = true;
|
|
|
|
private int maxAiThreads = MagicAI.getMaxThreads();
|
|
|
|
private boolean isDevMode = false;
|
2017-05-10 04:49:39 -07:00
|
|
|
private int games = DuelConfig.DEFAULT_GAMES;
|
2017-05-09 14:03:51 -07:00
|
|
|
|
|
|
|
CommandLineArgs(final String[] args) {
|
|
|
|
|
|
|
|
for (int i = 0; i < args.length; i++) {
|
|
|
|
|
|
|
|
final String arg = args[i];
|
|
|
|
switch (arg.toLowerCase(Locale.ENGLISH)) {
|
|
|
|
|
2017-05-10 01:50:56 -07:00
|
|
|
case "--ai1": // MagicAIImpl class to load as player 1. (eg. --ai1 MMABFast)
|
2017-05-09 14:03:51 -07:00
|
|
|
setAi1(MagicAIImpl.valueOf(args[i + 1].trim()));
|
|
|
|
break;
|
|
|
|
|
2017-05-10 01:50:56 -07:00
|
|
|
case "--ai2": // MagicAIImpl class to load as player 2. (eg. --ai2 MMABFast)
|
2017-05-09 14:03:51 -07:00
|
|
|
setAi2(MagicAIImpl.valueOf(args[i + 1].trim()));
|
|
|
|
break;
|
|
|
|
|
2017-05-10 01:50:56 -07:00
|
|
|
case "--str1": // level of AI player #1. (eg. --str1 8)
|
2017-05-09 14:03:51 -07:00
|
|
|
setAi1Level(Integer.parseInt(args[i + 1].trim()));
|
|
|
|
break;
|
|
|
|
|
2017-05-10 01:50:56 -07:00
|
|
|
case "--str2": // level of AI player #2. (eg. --str2 8)
|
2017-05-09 14:03:51 -07:00
|
|
|
setAi2Level(Integer.parseInt(args[i + 1].trim()));
|
|
|
|
break;
|
|
|
|
|
2017-05-09 14:21:15 -07:00
|
|
|
case "--nofx": // turns off gameplay animations for session (does not change preferences).
|
2017-05-10 02:29:44 -07:00
|
|
|
isAnimationsEnabled = false;
|
2017-05-09 14:21:15 -07:00
|
|
|
break;
|
|
|
|
|
2017-05-10 01:50:56 -07:00
|
|
|
case "--threads": // limits the number of threads AI uses. (eg. --threads 2)
|
2017-05-10 02:29:44 -07:00
|
|
|
maxAiThreads = Integer.parseInt(args[i + 1].trim());
|
2017-05-09 15:02:55 -07:00
|
|
|
break;
|
|
|
|
|
2017-05-10 01:46:50 -07:00
|
|
|
case "--devmode": // enables access to additional functionality.
|
2017-05-10 02:29:44 -07:00
|
|
|
isDevMode = true;
|
2017-05-10 01:46:50 -07:00
|
|
|
break;
|
|
|
|
|
2017-05-10 04:49:39 -07:00
|
|
|
case "--games": // "best of..." games total in AI v AI game. (eg. --games 3 = best of 3 games)
|
|
|
|
setGames(Integer.parseInt(args[i + 1].trim()));
|
|
|
|
|
2017-05-09 14:03:51 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-10 04:49:39 -07:00
|
|
|
private void setGames(int games) {
|
|
|
|
this.games = games;
|
|
|
|
MagicSystem.setAiVersusAi(true);
|
|
|
|
}
|
|
|
|
|
2017-05-09 14:03:51 -07:00
|
|
|
private void setAi1(MagicAIImpl ai1) {
|
|
|
|
this.ai1 = ai1;
|
|
|
|
MagicSystem.setAiVersusAi(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
MagicAIImpl getAi1() {
|
|
|
|
return ai1;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setAi2(MagicAIImpl ai2) {
|
|
|
|
this.ai2 = ai2;
|
|
|
|
MagicSystem.setAiVersusAi(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
MagicAIImpl getAi2() {
|
|
|
|
return ai2;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setAi1Level(int ai1Level) {
|
|
|
|
this.ai1Level = ai1Level;
|
|
|
|
}
|
|
|
|
|
|
|
|
int getAi1Level() {
|
|
|
|
return ai1Level;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setAi2Level(int ai2Level) {
|
|
|
|
this.ai2Level = ai2Level;
|
|
|
|
}
|
|
|
|
|
|
|
|
int getAi2Level() {
|
|
|
|
return ai2Level;
|
|
|
|
}
|
|
|
|
|
2017-05-10 02:29:44 -07:00
|
|
|
boolean isAnimationsEnabled() {
|
|
|
|
return isAnimationsEnabled;
|
|
|
|
}
|
|
|
|
|
|
|
|
int getMaxThreads() {
|
|
|
|
return maxAiThreads;
|
|
|
|
}
|
|
|
|
|
|
|
|
boolean isDevMode() {
|
|
|
|
return isDevMode;
|
|
|
|
}
|
|
|
|
|
2017-05-10 04:49:39 -07:00
|
|
|
int getGames() {
|
|
|
|
return games;
|
|
|
|
}
|
|
|
|
|
2017-05-09 14:03:51 -07:00
|
|
|
}
|