mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
cut Dependencies on log entry type and AI profiles
This commit is contained in:
@@ -4,10 +4,7 @@ public class Dependencies {
|
|||||||
|
|
||||||
public static PreferencesMethods preferences;
|
public static PreferencesMethods preferences;
|
||||||
public interface PreferencesMethods {
|
public interface PreferencesMethods {
|
||||||
@Deprecated public abstract boolean getEnableAiCheats();
|
|
||||||
@Deprecated public abstract boolean getCloneModeSource();
|
@Deprecated public abstract boolean getCloneModeSource();
|
||||||
@Deprecated public abstract String getLogEntryType();
|
|
||||||
@Deprecated public abstract String getCurrentAiProfile();
|
|
||||||
@Deprecated public abstract boolean isManaBurnEnabled();
|
@Deprecated public abstract boolean isManaBurnEnabled();
|
||||||
@Deprecated public abstract boolean areBlocksFree();
|
@Deprecated public abstract boolean areBlocksFree();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import com.google.common.base.Predicates;
|
|||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import forge.Dependencies;
|
|
||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.card.MagicColor;
|
import forge.card.MagicColor;
|
||||||
import forge.deck.CardPool;
|
import forge.deck.CardPool;
|
||||||
@@ -78,7 +77,16 @@ public class AiController {
|
|||||||
|
|
||||||
private final Player player;
|
private final Player player;
|
||||||
private final Game game;
|
private final Game game;
|
||||||
public boolean canCheatShuffle;
|
public boolean bCheatShuffle;
|
||||||
|
|
||||||
|
public boolean canCheatShuffle() {
|
||||||
|
return bCheatShuffle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void allowCheatShuffle(boolean canCheatShuffle) {
|
||||||
|
this.bCheatShuffle = canCheatShuffle;
|
||||||
|
}
|
||||||
|
|
||||||
public Game getGame()
|
public Game getGame()
|
||||||
{
|
{
|
||||||
return game;
|
return game;
|
||||||
@@ -97,8 +105,6 @@ public class AiController {
|
|||||||
public AiController(final Player computerPlayer, final Game game0) {
|
public AiController(final Player computerPlayer, final Game game0) {
|
||||||
player = computerPlayer;
|
player = computerPlayer;
|
||||||
game = game0;
|
game = game0;
|
||||||
|
|
||||||
canCheatShuffle = Dependencies.preferences.getEnableAiCheats();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1023,7 +1029,7 @@ public class AiController {
|
|||||||
* @return an array of {@link forge.game.card.Card} objects.
|
* @return an array of {@link forge.game.card.Card} objects.
|
||||||
*/
|
*/
|
||||||
public List<Card> cheatShuffle(List<Card> in) {
|
public List<Card> cheatShuffle(List<Card> in) {
|
||||||
if( in.size() < 20 || !canCheatShuffle )
|
if( in.size() < 20 || !canCheatShuffle() )
|
||||||
return in;
|
return in;
|
||||||
|
|
||||||
final List<Card> library = Lists.newArrayList(in);
|
final List<Card> library = Lists.newArrayList(in);
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import java.util.Observable;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import forge.Dependencies;
|
|
||||||
import forge.game.event.IGameEventVisitor;
|
import forge.game.event.IGameEventVisitor;
|
||||||
|
|
||||||
|
|
||||||
@@ -106,11 +105,6 @@ public class GameLog extends Observable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameLogEntryType getGameLogEntryTypeSetting() {
|
|
||||||
String logEntryType = Dependencies.preferences.getLogEntryType();
|
|
||||||
return GameLogEntryType.valueOf(logEntryType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IGameEventVisitor<?> getEventVisitor() {
|
public IGameEventVisitor<?> getEventVisitor() {
|
||||||
return formatter;
|
return formatter;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package forge.game.player;
|
package forge.game.player;
|
||||||
|
|
||||||
import forge.Dependencies;
|
|
||||||
import forge.ai.AiProfileUtil;
|
import forge.ai.AiProfileUtil;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
|
|
||||||
@@ -10,7 +9,18 @@ public class LobbyPlayerAi extends LobbyPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String aiProfile = "";
|
private String aiProfile = "";
|
||||||
|
private boolean rotateProfileEachGame;
|
||||||
|
private boolean allowCheatShuffle;
|
||||||
|
|
||||||
|
public boolean isAllowCheatShuffle() {
|
||||||
|
return allowCheatShuffle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setAllowCheatShuffle(boolean allowCheatShuffle) {
|
||||||
|
this.allowCheatShuffle = allowCheatShuffle;
|
||||||
|
}
|
||||||
|
|
||||||
public void setAiProfile(String profileName) {
|
public void setAiProfile(String profileName) {
|
||||||
aiProfile = profileName;
|
aiProfile = profileName;
|
||||||
}
|
}
|
||||||
@@ -19,14 +29,20 @@ public class LobbyPlayerAi extends LobbyPlayer {
|
|||||||
return aiProfile;
|
return aiProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setRotateProfileEachGame(boolean rotateProfileEachGame) {
|
||||||
|
this.rotateProfileEachGame = rotateProfileEachGame;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PlayerType getType() {
|
protected PlayerType getType() {
|
||||||
return PlayerType.COMPUTER;
|
return PlayerType.COMPUTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PlayerController createControllerFor(Player ai) {
|
public PlayerControllerAi createControllerFor(Player ai) {
|
||||||
return new PlayerControllerAi(ai.getGame(), ai, this);
|
PlayerControllerAi result = new PlayerControllerAi(ai.getGame(), ai, this);
|
||||||
|
result.allowCheatShuffle(allowCheatShuffle);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -34,15 +50,10 @@ public class LobbyPlayerAi extends LobbyPlayer {
|
|||||||
Player ai = new Player(getName(), game);
|
Player ai = new Player(getName(), game);
|
||||||
ai.setFirstController(createControllerFor(ai));
|
ai.setFirstController(createControllerFor(ai));
|
||||||
|
|
||||||
String currentAiProfile = Dependencies.preferences.getCurrentAiProfile();
|
if( rotateProfileEachGame ) {
|
||||||
String lastProfileChosen = game.getMatch().getPlayedGames().isEmpty() ? currentAiProfile : getAiProfile();
|
setAiProfile(AiProfileUtil.getRandomProfile());
|
||||||
|
System.out.println(String.format("AI profile %s was chosen for the lobby player %s.", getAiProfile(), getName()));
|
||||||
// TODO: implement specific AI profiles for quest mode.
|
}
|
||||||
boolean wantRandomProfile = currentAiProfile.equals(AiProfileUtil.AI_PROFILE_RANDOM_DUEL)
|
|
||||||
|| game.getMatch().getPlayedGames().isEmpty() && currentAiProfile.equals(AiProfileUtil.AI_PROFILE_RANDOM_MATCH);
|
|
||||||
|
|
||||||
setAiProfile(wantRandomProfile ? AiProfileUtil.getRandomProfile() : lastProfileChosen);
|
|
||||||
System.out.println(String.format("AI profile %s was chosen for the lobby player %s.", getAiProfile(), getName()));
|
|
||||||
return ai;
|
return ai;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,11 @@ public class PlayerControllerAi extends PlayerController {
|
|||||||
|
|
||||||
brains = new AiController(p, game);
|
brains = new AiController(p, game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void allowCheatShuffle(boolean value){
|
||||||
|
brains.allowCheatShuffle(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities, MouseEvent triggerEvent) {
|
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities, MouseEvent triggerEvent) {
|
||||||
if (abilities.size() == 0) {
|
if (abilities.size() == 0) {
|
||||||
|
|||||||
@@ -3,26 +3,11 @@ package forge;
|
|||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
|
||||||
public class PreferencesProvider implements Dependencies.PreferencesMethods {
|
public class PreferencesProvider implements Dependencies.PreferencesMethods {
|
||||||
@Override
|
|
||||||
public boolean getEnableAiCheats() {
|
|
||||||
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ENABLE_AI_CHEATS);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean getCloneModeSource() {
|
public boolean getCloneModeSource() {
|
||||||
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getLogEntryType() {
|
|
||||||
return Singletons.getModel().getPreferences().getPref(FPref.DEV_LOG_ENTRY_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getCurrentAiProfile() {
|
|
||||||
return Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isManaBurnEnabled() {
|
public boolean isManaBurnEnabled() {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|||||||
@@ -558,7 +558,6 @@ public enum FControl implements KeyEventDispatcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startMatch(GameType gameType, List<RegisteredPlayer> starter) {
|
public void startMatch(GameType gameType, List<RegisteredPlayer> starter) {
|
||||||
|
|
||||||
boolean useRandomFoil = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL);
|
boolean useRandomFoil = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL);
|
||||||
for(RegisteredPlayer rp : starter) {
|
for(RegisteredPlayer rp : starter) {
|
||||||
rp.setRandomFoil(useRandomFoil);
|
rp.setRandomFoil(useRandomFoil);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import net.miginfocom.swing.MigLayout;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import forge.Singletons;
|
||||||
import forge.game.GameLog;
|
import forge.game.GameLog;
|
||||||
import forge.game.GameLogEntry;
|
import forge.game.GameLogEntry;
|
||||||
import forge.game.GameLogEntryType;
|
import forge.game.GameLogEntryType;
|
||||||
@@ -37,6 +38,7 @@ import forge.gui.match.GameLogPanel;
|
|||||||
import forge.gui.match.controllers.CLog;
|
import forge.gui.match.controllers.CLog;
|
||||||
import forge.gui.toolbox.FSkin;
|
import forge.gui.toolbox.FSkin;
|
||||||
import forge.gui.toolbox.FSkin.SkinFont;
|
import forge.gui.toolbox.FSkin.SkinFont;
|
||||||
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assembles Swing components of game log report.
|
* Assembles Swing components of game log report.
|
||||||
@@ -171,7 +173,8 @@ public enum VLog implements IVDoc<CLog> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<GameLogEntry> getNewGameLogEntries(GameLog activeGameLogModel) {
|
private List<GameLogEntry> getNewGameLogEntries(GameLog activeGameLogModel) {
|
||||||
GameLogEntryType logVerbosityFilter = activeGameLogModel.getGameLogEntryTypeSetting();
|
String logEntryType = Singletons.getModel().getPreferences().getPref(FPref.DEV_LOG_ENTRY_TYPE);
|
||||||
|
GameLogEntryType logVerbosityFilter = GameLogEntryType.valueOf(logEntryType);
|
||||||
List<GameLogEntry> logEntries = activeGameLogModel.getLogEntries(logVerbosityFilter);
|
List<GameLogEntry> logEntries = activeGameLogModel.getLogEntries(logVerbosityFilter);
|
||||||
// Set subtraction - remove all log entries from new list which are already displayed.
|
// Set subtraction - remove all log entries from new list which are already displayed.
|
||||||
logEntries.removeAll(this.displayedLogEntries);
|
logEntries.removeAll(this.displayedLogEntries);
|
||||||
|
|||||||
@@ -5,12 +5,15 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
|
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
|
||||||
|
import forge.Singletons;
|
||||||
|
import forge.ai.AiProfileUtil;
|
||||||
import forge.control.ChatArea;
|
import forge.control.ChatArea;
|
||||||
import forge.game.player.LobbyPlayer;
|
import forge.game.player.LobbyPlayer;
|
||||||
import forge.game.player.LobbyPlayerAi;
|
import forge.game.player.LobbyPlayerAi;
|
||||||
import forge.gui.GuiDisplayUtil;
|
import forge.gui.GuiDisplayUtil;
|
||||||
import forge.gui.toolbox.FSkin;
|
import forge.gui.toolbox.FSkin;
|
||||||
import forge.net.client.INetClient;
|
import forge.net.client.INetClient;
|
||||||
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
import forge.util.NameGenerator;
|
import forge.util.NameGenerator;
|
||||||
|
|
||||||
@@ -36,14 +39,22 @@ public class Lobby {
|
|||||||
|
|
||||||
public final LobbyPlayer getAiPlayer() { return getAiPlayer(getRandomName()); }
|
public final LobbyPlayer getAiPlayer() { return getAiPlayer(getRandomName()); }
|
||||||
public final LobbyPlayer getAiPlayer(String name) {
|
public final LobbyPlayer getAiPlayer(String name) {
|
||||||
LobbyPlayer player = new LobbyPlayerAi(name);
|
return getAiPlayer(name, FSkin.isLoaded() ? MyRandom.getRandom().nextInt(FSkin.getAvatars().size()) : 0);
|
||||||
if(FSkin.isLoaded())
|
|
||||||
player.setAvatarIndex(MyRandom.getRandom().nextInt(FSkin.getAvatars().size()));
|
|
||||||
return player;
|
|
||||||
}
|
}
|
||||||
public final LobbyPlayer getAiPlayer(String name, int avatarIndex) {
|
public final LobbyPlayer getAiPlayer(String name, int avatarIndex) {
|
||||||
LobbyPlayer player = new LobbyPlayerAi(name);
|
LobbyPlayerAi player = new LobbyPlayerAi(name);
|
||||||
player.setAvatarIndex(avatarIndex);
|
|
||||||
|
// TODO: implement specific AI profiles for quest mode.
|
||||||
|
String lastProfileChosen = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||||
|
player.setRotateProfileEachGame(lastProfileChosen.equals(AiProfileUtil.AI_PROFILE_RANDOM_DUEL));
|
||||||
|
if(lastProfileChosen.equals(AiProfileUtil.AI_PROFILE_RANDOM_MATCH)) {
|
||||||
|
lastProfileChosen = AiProfileUtil.getRandomProfile();
|
||||||
|
System.out.println(String.format("AI profile %s was chosen for the lobby player %s.", lastProfileChosen, player.getName()));
|
||||||
|
}
|
||||||
|
player.setAiProfile(lastProfileChosen);
|
||||||
|
|
||||||
|
if(FSkin.isLoaded())
|
||||||
|
player.setAvatarIndex(avatarIndex);
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user