mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
commited a workaround for preferences dependency
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -15206,6 +15206,7 @@ forge-gui/src/main/html/js/socket.js -text
|
|||||||
forge-gui/src/main/java/forge/FThreads.java -text
|
forge-gui/src/main/java/forge/FThreads.java -text
|
||||||
forge-gui/src/main/java/forge/ImageCache.java svneol=native#text/plain
|
forge-gui/src/main/java/forge/ImageCache.java svneol=native#text/plain
|
||||||
forge-gui/src/main/java/forge/ImageLoader.java -text
|
forge-gui/src/main/java/forge/ImageLoader.java -text
|
||||||
|
forge-gui/src/main/java/forge/PreferencesProvider.java -text
|
||||||
forge-gui/src/main/java/forge/Singletons.java svneol=native#text/plain
|
forge-gui/src/main/java/forge/Singletons.java svneol=native#text/plain
|
||||||
forge-gui/src/main/java/forge/control/ChatArea.java -text
|
forge-gui/src/main/java/forge/control/ChatArea.java -text
|
||||||
forge-gui/src/main/java/forge/control/FControl.java -text
|
forge-gui/src/main/java/forge/control/FControl.java -text
|
||||||
|
|||||||
@@ -1,10 +1,25 @@
|
|||||||
package forge;
|
package forge;
|
||||||
|
|
||||||
public enum PreferencesBridge {
|
|
||||||
|
|
||||||
Instance;
|
public class PreferencesBridge {
|
||||||
|
public static PreferencesSet Instance;
|
||||||
|
|
||||||
public static enum GamePref {
|
public interface PreferencesSet {
|
||||||
|
|
||||||
|
public abstract boolean getEnableAiCheats();
|
||||||
|
|
||||||
|
public abstract boolean getCloneModeSource();
|
||||||
|
|
||||||
|
public abstract String getLogEntryType();
|
||||||
|
|
||||||
|
public abstract String getCurrentAiProfile();
|
||||||
|
|
||||||
|
public abstract boolean canRandomFoil();
|
||||||
|
|
||||||
|
public abstract boolean isManaBurnEnabled();
|
||||||
|
|
||||||
|
public abstract boolean areBlocksFree();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -34,6 +34,7 @@ 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.PreferencesBridge;
|
||||||
import forge.card.CardType;
|
import forge.card.CardType;
|
||||||
import forge.card.MagicColor;
|
import forge.card.MagicColor;
|
||||||
import forge.deck.CardPool;
|
import forge.deck.CardPool;
|
||||||
@@ -98,7 +99,7 @@ public class AiController {
|
|||||||
player = computerPlayer;
|
player = computerPlayer;
|
||||||
game = game0;
|
game = game0;
|
||||||
|
|
||||||
canCheatShuffle = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ENABLE_AI_CHEATS);
|
canCheatShuffle = PreferencesBridge.Instance.getEnableAiCheats();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import java.util.Observable;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import forge.PreferencesBridge;
|
||||||
import forge.game.event.IGameEventVisitor;
|
import forge.game.event.IGameEventVisitor;
|
||||||
|
|
||||||
|
|
||||||
@@ -106,7 +107,7 @@ public class GameLog extends Observable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public GameLogEntryType getGameLogEntryTypeSetting() {
|
public GameLogEntryType getGameLogEntryTypeSetting() {
|
||||||
String logEntryType = Singletons.getModel().getPreferences().getPref(FPref.DEV_LOG_ENTRY_TYPE);
|
String logEntryType = PreferencesBridge.Instance.getLogEntryType();
|
||||||
return GameLogEntryType.valueOf(logEntryType);
|
return GameLogEntryType.valueOf(logEntryType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import com.google.common.collect.Iterables;
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
|
|
||||||
|
import forge.PreferencesBridge;
|
||||||
import forge.deck.CardPool;
|
import forge.deck.CardPool;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.DeckSection;
|
import forge.deck.DeckSection;
|
||||||
@@ -96,7 +97,7 @@ public class Match {
|
|||||||
* TODO: Write javadoc for this method.
|
* TODO: Write javadoc for this method.
|
||||||
*/
|
*/
|
||||||
public void startGame(final Game game, final CountDownLatch latch) {
|
public void startGame(final Game game, final CountDownLatch latch) {
|
||||||
final boolean canRandomFoil = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL) && gameType == GameType.Constructed;
|
final boolean canRandomFoil = PreferencesBridge.Instance.canRandomFoil() && gameType == GameType.Constructed;
|
||||||
|
|
||||||
// This code could be run run from EDT.
|
// This code could be run run from EDT.
|
||||||
game.getAction().invoke(new Runnable() {
|
game.getAction().invoke(new Runnable() {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import forge.Command;
|
import forge.Command;
|
||||||
|
import forge.PreferencesBridge;
|
||||||
import forge.card.CardCharacteristicName;
|
import forge.card.CardCharacteristicName;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
import forge.game.ability.AbilityUtils;
|
import forge.game.ability.AbilityUtils;
|
||||||
@@ -83,7 +84,7 @@ public class CloneEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// determine the image to be used for the clone
|
// determine the image to be used for the clone
|
||||||
String imageFileName = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE) ? tgtCard.getImageKey() : cardToCopy.getImageKey();
|
String imageFileName = PreferencesBridge.Instance.getCloneModeSource() ? tgtCard.getImageKey() : cardToCopy.getImageKey();
|
||||||
if (sa.hasParam("ImageSource")) { // Allow the image to be stipulated by using a defined card source
|
if (sa.hasParam("ImageSource")) { // Allow the image to be stipulated by using a defined card source
|
||||||
List<Card> cloneImgSources = AbilityUtils.getDefinedCards(host, sa.getParam("ImageSource"), sa);
|
List<Card> cloneImgSources = AbilityUtils.getDefinedCards(host, sa.getParam("ImageSource"), sa);
|
||||||
if (!cloneImgSources.isEmpty()) {
|
if (!cloneImgSources.isEmpty()) {
|
||||||
|
|||||||
@@ -22,11 +22,13 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
|
|
||||||
import org.apache.commons.lang3.time.StopWatch;
|
import org.apache.commons.lang3.time.StopWatch;
|
||||||
|
|
||||||
import com.google.common.collect.ArrayListMultimap;
|
import com.google.common.collect.ArrayListMultimap;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
|
|
||||||
|
import forge.PreferencesBridge;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
import forge.game.GameEntity;
|
import forge.game.GameEntity;
|
||||||
import forge.game.GameStage;
|
import forge.game.GameStage;
|
||||||
@@ -432,7 +434,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
|
|
||||||
for (Player p : game.getPlayers()) {
|
for (Player p : game.getPlayers()) {
|
||||||
int burn = p.getManaPool().clearPool(true);
|
int burn = p.getManaPool().clearPool(true);
|
||||||
boolean dealDamage = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN);
|
boolean dealDamage = PreferencesBridge.Instance.isManaBurnEnabled();
|
||||||
|
|
||||||
if (dealDamage) {
|
if (dealDamage) {
|
||||||
p.loseLife(burn);
|
p.loseLife(burn);
|
||||||
@@ -708,8 +710,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean hasPaid = blockCost.getTotalMana().isZero() && blockCost.isOnlyManaCost() && (!hasBlockCost
|
boolean hasPaid = blockCost.getTotalMana().isZero() && blockCost.isOnlyManaCost() && (!hasBlockCost || PreferencesBridge.Instance.areBlocksFree()); // true if needless to pay
|
||||||
|| Singletons.getModel().getPreferences().getPrefBoolean(FPref.MATCHPREF_PROMPT_FREE_BLOCKS)); // true if needless to pay
|
|
||||||
|
|
||||||
if (!hasPaid) {
|
if (!hasPaid) {
|
||||||
hasPaid = blocker.getController().getController().payManaOptional(blocker, blockCost, null, "Pay cost to declare " + blocker + " a blocker. ", ManaPaymentPurpose.DeclareBlocker);
|
hasPaid = blocker.getController().getController().payManaOptional(blocker, blockCost, null, "Pay cost to declare " + blocker + " a blocker. ", ManaPaymentPurpose.DeclareBlocker);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package forge.game.player;
|
package forge.game.player;
|
||||||
|
|
||||||
|
import forge.PreferencesBridge;
|
||||||
import forge.ai.AiProfileUtil;
|
import forge.ai.AiProfileUtil;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ 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 = Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
String currentAiProfile = PreferencesBridge.Instance.getCurrentAiProfile();
|
||||||
String lastProfileChosen = game.getMatch().getPlayedGames().isEmpty() ? currentAiProfile : getAiProfile();
|
String lastProfileChosen = game.getMatch().getPlayedGames().isEmpty() ? currentAiProfile : getAiProfile();
|
||||||
|
|
||||||
// TODO: implement specific AI profiles for quest mode.
|
// TODO: implement specific AI profiles for quest mode.
|
||||||
|
|||||||
63
forge-gui/src/main/java/forge/PreferencesProvider.java
Normal file
63
forge-gui/src/main/java/forge/PreferencesProvider.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
package forge;
|
||||||
|
|
||||||
|
import forge.PreferencesBridge.PreferencesSet;
|
||||||
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
|
||||||
|
public class PreferencesProvider implements PreferencesSet {
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#getEnableAiCheats()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean getEnableAiCheats() {
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ENABLE_AI_CHEATS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#getCloneModeSource()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean getCloneModeSource() {
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#getLogEntryType()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getLogEntryType() {
|
||||||
|
return Singletons.getModel().getPreferences().getPref(FPref.DEV_LOG_ENTRY_TYPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#getCurrentAiProfile()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getCurrentAiProfile() {
|
||||||
|
return Singletons.getModel().getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#canRandomFoil()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean canRandomFoil() {
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#isManaBurnEnabled()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean isManaBurnEnabled() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see forge.IPreferencesForGame#areBlocksFree()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean areBlocksFree() {
|
||||||
|
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.MATCHPREF_PROMPT_FREE_BLOCKS);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
package forge.view;
|
package forge.view;
|
||||||
|
|
||||||
|
|
||||||
|
import forge.PreferencesProvider;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.net.FServer;
|
import forge.net.FServer;
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ public final class Main {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
forge.PreferencesBridge.Instance = new PreferencesProvider();
|
||||||
|
|
||||||
// command line startup here
|
// command line startup here
|
||||||
String mode = args[0].toLowerCase();
|
String mode = args[0].toLowerCase();
|
||||||
|
|||||||
Reference in New Issue
Block a user