mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
done with Dependencies
added a class to hold all game rules (type, gamesToWinMatch, manaburn, etc)
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
package forge;
|
||||
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
|
||||
public class PreferencesProvider implements Dependencies.PreferencesMethods {
|
||||
@Override
|
||||
public boolean getCloneModeSource() {
|
||||
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isManaBurnEnabled() {
|
||||
// TODO Auto-generated method stub
|
||||
return Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN);
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,7 @@ import forge.ImageCache;
|
||||
import forge.Singletons;
|
||||
import forge.control.KeyboardShortcuts.Shortcut;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameRules;
|
||||
import forge.game.GameType;
|
||||
import forge.game.Match;
|
||||
import forge.game.card.Card;
|
||||
@@ -452,7 +453,7 @@ public enum FControl implements KeyEventDispatcher {
|
||||
private final FControlGameEventHandler fcVisitor = new FControlGameEventHandler(this);
|
||||
private final FControlGamePlayback playbackControl = new FControlGamePlayback(this);
|
||||
private void attachToGame(Game game0) {
|
||||
if (game0.getType() == GameType.Quest) {
|
||||
if (game0.getRules().getGameType() == GameType.Quest) {
|
||||
QuestController qc = Singletons.getModel().getQuest();
|
||||
// Reset new list when the Match round starts, not when each game starts
|
||||
if (game0.getMatch().getPlayedGames().isEmpty()) {
|
||||
@@ -557,14 +558,17 @@ public enum FControl implements KeyEventDispatcher {
|
||||
}
|
||||
}
|
||||
|
||||
public void startMatch(GameType gameType, List<RegisteredPlayer> starter) {
|
||||
public void startMatch(GameType gameType, List<RegisteredPlayer> players) {
|
||||
boolean useRandomFoil = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_RANDOM_FOIL);
|
||||
for(RegisteredPlayer rp : starter) {
|
||||
for(RegisteredPlayer rp : players) {
|
||||
rp.setRandomFoil(useRandomFoil);
|
||||
}
|
||||
|
||||
boolean useAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
|
||||
final Match mc = new Match(gameType, starter, useAnte);
|
||||
|
||||
GameRules rules = new GameRules(gameType);
|
||||
rules.setPlayForAnte(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE));
|
||||
rules.setManaBurn(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN));
|
||||
rules.canCloneUseTargetsImage = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
||||
final Match mc = new Match(rules, players);
|
||||
SOverlayUtils.startGameOverlay();
|
||||
SOverlayUtils.showOverlay();
|
||||
FThreads.invokeInEdtLater(new Runnable(){
|
||||
|
||||
@@ -445,7 +445,7 @@ public final class GuiDisplayUtil {
|
||||
|
||||
public static void devModePlaneswalkTo() {
|
||||
final Game game = getGame();
|
||||
if (game.getMatch().getGameType() != GameType.Planechase) { return; }
|
||||
if (game.getRules().getGameType() != GameType.Planechase) { return; }
|
||||
final Player p = game.getPhaseHandler().getPlayerTurn();
|
||||
|
||||
final List<PaperCard> allPlanars = new ArrayList<PaperCard>();
|
||||
|
||||
@@ -13,6 +13,7 @@ import forge.FThreads;
|
||||
import forge.Singletons;
|
||||
import forge.card.CardEdition;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.GameRules;
|
||||
import forge.game.GameType;
|
||||
import forge.game.Match;
|
||||
import forge.game.player.LobbyPlayer;
|
||||
@@ -456,7 +457,12 @@ public class SSubmenuQuestUtil {
|
||||
boolean useAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
|
||||
if(forceAnte != null)
|
||||
useAnte = forceAnte.booleanValue();
|
||||
final Match mc = new Match(GameType.Quest, starter, useAnte, qData.getCharmState() ? 5 : 3);
|
||||
GameRules rules = new GameRules(GameType.Quest);
|
||||
rules.setPlayForAnte(useAnte);
|
||||
rules.setGamesPerMatch(qData.getCharmState() ? 5 : 3);
|
||||
rules.setManaBurn(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN));
|
||||
rules.canCloneUseTargetsImage = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CLONE_MODE_SOURCE);
|
||||
final Match mc = new Match(rules, starter);
|
||||
FThreads.invokeInEdtLater(new Runnable(){
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -102,7 +102,7 @@ public enum VMatchUI implements IVTopLevelUI {
|
||||
}
|
||||
}
|
||||
|
||||
if (Singletons.getControl().getObservedGame().getType().isCommandZoneNeeded()) {
|
||||
if (Singletons.getControl().getObservedGame().getRules().getGameType().isCommandZoneNeeded()) {
|
||||
// Add extra players alternatively to existing user/AI field panels.
|
||||
for (int i = 2; i < lstCommands.size(); i++) {
|
||||
// If already in layout, no need to add again.
|
||||
|
||||
@@ -60,7 +60,7 @@ public class ViewWinLose {
|
||||
// Control of the win/lose is handled differently for various game
|
||||
// modes.
|
||||
ControlWinLose control = null;
|
||||
switch (game0.getType()) {
|
||||
switch (game0.getRules().getGameType()) {
|
||||
case Quest:
|
||||
control = new QuestWinLose(this, game0);
|
||||
break;
|
||||
|
||||
@@ -29,6 +29,7 @@ import javax.swing.JButton;
|
||||
import forge.Command;
|
||||
import forge.FThreads;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameRules;
|
||||
import forge.game.Match;
|
||||
import forge.gui.InputProxy;
|
||||
import forge.gui.framework.ICDoc;
|
||||
@@ -120,9 +121,10 @@ public enum CPrompt implements ICDoc {
|
||||
public void updateText(Game game) {
|
||||
FThreads.assertExecutedByEdt(true);
|
||||
final Match match = game.getMatch();
|
||||
final String text = String.format("T:%d G:%d/%d [%s]", game.getPhaseHandler().getTurn(), match.getPlayedGames().size() + 1, match.getGamesPerMatch(), match.getGameType());
|
||||
final GameRules rules = game.getRules();
|
||||
final String text = String.format("T:%d G:%d/%d [%s]", game.getPhaseHandler().getTurn(), match.getPlayedGames().size() + 1, rules.getGamesPerMatch(), rules.getGameType());
|
||||
view.getLblGames().setText(text);
|
||||
view.getLblGames().setToolTipText(String.format("%s: Game #%d of %d, turn %d", match.getGameType(), match.getPlayedGames().size() + 1, match.getGamesPerMatch(), game.getPhaseHandler().getTurn()));
|
||||
view.getLblGames().setToolTipText(String.format("%s: Game #%d of %d, turn %d", rules.getGameType(), match.getPlayedGames().size() + 1, rules.getGamesPerMatch(), game.getPhaseHandler().getTurn()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -173,7 +173,7 @@ public enum VPlayers implements IVDoc<CPlayers> {
|
||||
}
|
||||
temp[6].setText(sb.toString());
|
||||
}
|
||||
if(p0.getGame().getType() == GameType.Commander) {
|
||||
if(p0.getGame().getRules().getGameType() == GameType.Commander) {
|
||||
temp[7].setText(CardFactoryUtil.getCommanderInfo(p0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import forge.Singletons;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameLogEntry;
|
||||
import forge.game.GameRules;
|
||||
import forge.game.GameType;
|
||||
import forge.game.Match;
|
||||
import forge.game.player.LobbyPlayer;
|
||||
@@ -88,8 +89,8 @@ public enum FServer {
|
||||
List<RegisteredPlayer> pp = new ArrayList<RegisteredPlayer>();
|
||||
pp.add(new RegisteredPlayer(d1).setPlayer(FServer.instance.getLobby().getAiPlayer("Ai-" + d1.getName())));
|
||||
pp.add(new RegisteredPlayer(d2).setPlayer(FServer.instance.getLobby().getAiPlayer("Ai_" + d2.getName())));
|
||||
|
||||
Match mc = new Match(GameType.Constructed, pp, false);
|
||||
GameRules rules = new GameRules(GameType.Constructed);
|
||||
Match mc = new Match(rules, pp);
|
||||
for(int iGame = 0; iGame < nGames; iGame++)
|
||||
simulateSingleMatch(mc, iGame);
|
||||
System.out.flush();
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
*/
|
||||
package forge.view;
|
||||
|
||||
import forge.PreferencesProvider;
|
||||
import forge.Singletons;
|
||||
import forge.net.FServer;
|
||||
|
||||
@@ -34,8 +33,6 @@ public final class Main {
|
||||
|
||||
//Turn off the Java 2D system's use of Direct3D to improve rendering speed (particularly when Full Screen)
|
||||
System.setProperty("sun.java2d.d3d", "false");
|
||||
|
||||
forge.Dependencies.preferences = new PreferencesProvider();
|
||||
|
||||
// Start splash screen first, then data models, then controller.
|
||||
if (args.length == 0) {
|
||||
|
||||
@@ -13,6 +13,7 @@ import forge.game.GameLog;
|
||||
import forge.game.GameLogEntry;
|
||||
import forge.game.GameLogEntryType;
|
||||
import forge.game.GameLogFormatter;
|
||||
import forge.game.GameRules;
|
||||
import forge.game.GameStage;
|
||||
import forge.game.GameType;
|
||||
import forge.game.Match;
|
||||
@@ -69,8 +70,10 @@ public class GameWrapper {
|
||||
registeredPlayers.add( registeredPlayer );
|
||||
}
|
||||
|
||||
boolean an = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
|
||||
Match match = new Match( GameType.Constructed, registeredPlayers, an);
|
||||
GameRules rules = new GameRules(GameType.Constructed);
|
||||
rules.setPlayForAnte(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE));
|
||||
rules.setManaBurn(Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_MANABURN));
|
||||
Match match = new Match(rules, registeredPlayers);
|
||||
game = match.createGame();
|
||||
game.subscribeToEvents( new GameLogFormatter( gameLog ) );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user