View Javadoc

1   package net.sourceforge.simplegamenet.specs.tools;
2   
3   import net.sourceforge.simplegamenet.specs.gui.GameSettingsPanel;
4   import net.sourceforge.simplegamenet.specs.to.GameSettings;
5   import net.sourceforge.simplegamenet.specs.to.PlayerSettings;
6   
7   public class TwoPlayerGameSettings extends GameSettings {
8   
9       private int maximumConnectionsAmount;
10  
11      private int minimumMaximumConnectionsAmount;
12      private int maximumMaximumConnectionsAmount;
13  
14      public TwoPlayerGameSettings() {
15          this(8, 2, 8);
16      }
17  
18      public TwoPlayerGameSettings(int defaultMaximumConnectionsAmount)
19              throws IllegalArgumentException {
20          this(defaultMaximumConnectionsAmount, 2, defaultMaximumConnectionsAmount);
21      }
22  
23      public TwoPlayerGameSettings(int defaultMaximumConnectionsAmount,
24                                   int minimumMaximumConnectionsAmount,
25                                   int maximumMaximumConnectionsAmount) {
26          this.maximumConnectionsAmount = defaultMaximumConnectionsAmount;
27          this.minimumMaximumConnectionsAmount = minimumMaximumConnectionsAmount;
28          this.maximumMaximumConnectionsAmount = maximumMaximumConnectionsAmount;
29      }
30  
31      public GameSettingsPanel createGameSettingsPanel() {
32          return new TwoPlayerGameSettingsPanel(maximumConnectionsAmount,
33                  minimumMaximumConnectionsAmount,
34                  maximumMaximumConnectionsAmount);
35      }
36  
37      public GameSettings createChangedGameSettings(GameSettingsPanel gameSettingsPanel) {
38          TwoPlayerGameSettingsPanel twoPlayerGameSettingsPanel =
39                  (TwoPlayerGameSettingsPanel) gameSettingsPanel;
40          return new TwoPlayerGameSettings(twoPlayerGameSettingsPanel.getMaximumConnectionsAmount(),
41                  minimumMaximumConnectionsAmount, maximumMaximumConnectionsAmount);
42      }
43  
44      public boolean isChangeGameSettingsAllowed(GameSettings changedGameSettings) {
45          TwoPlayerGameSettings changedTwoPlayerGameSettings = (TwoPlayerGameSettings)
46                  changedGameSettings;
47          if (engine.getPlayerSettingsMap().getConnectionsAmount()
48                  > changedTwoPlayerGameSettings.maximumConnectionsAmount) {
49              return false;
50          } else {
51              return true;
52          }
53      }
54  
55      public boolean isCreateDefaultPlayerSettingsAllowed(int playerType) {
56          if (engine.getPlayerSettingsMap().getConnectionsAmount()
57                  >= maximumConnectionsAmount) {
58              return false;
59          }
60          return true;
61      }
62  
63      public PlayerSettings createDefaultPlayerSettings(Integer playerID, int playerType,
64                                                        String nickname) {
65          int playingState = engine.isGamePlaying() ? PlayerSettings.OBSERVING
66                  : PlayerSettings.PARTICIPATING;
67          if (engine.getPlayerSettingsMap().getParticipantsAmount() > 1) {
68              playingState = PlayerSettings.OBSERVING;
69          }
70          return new StandardPlayerSettings(engine, playerID, playerType, nickname,
71                  playingState);
72      }
73  
74      public boolean isChangePlayerSettingsAllowed(PlayerSettings currentPlayerSettings,
75                                                   PlayerSettings changedPlayerSettings) {
76          if (currentPlayerSettings.getPlayingState() == PlayerSettings.OBSERVING
77                  && changedPlayerSettings.getPlayingState() == PlayerSettings.PARTICIPATING
78                  && engine.getPlayerSettingsMap().getParticipantsAmount() >= 2) {
79              return false;
80          } else {
81              return true;
82          }
83      }
84  
85      public boolean isStartGameAllowed() {
86          if (engine.getPlayerSettingsMap().getParticipantsAmount() < 2) {
87              return false;
88          }
89          return true;
90      }
91  
92      public int getMaximumConnectionsAmount() {
93          return maximumConnectionsAmount;
94      }
95  
96      public void setMaximumConnectionsAmount(int maximumConnectionsAmount) {
97          this.maximumConnectionsAmount = maximumConnectionsAmount;
98      }
99  
100     public int getMinimumMaximumConnectionsAmount() {
101         return minimumMaximumConnectionsAmount;
102     }
103 
104     public void setMinimumMaximumConnectionsAmount(int minimumMaximumConnectionsAmount) {
105         this.minimumMaximumConnectionsAmount = minimumMaximumConnectionsAmount;
106     }
107 
108     public int getMaximumMaximumConnectionsAmount() {
109         return maximumMaximumConnectionsAmount;
110     }
111 
112     public void setMaximumMaximumConnectionsAmount(int maximumMaximumConnectionsAmount) {
113         this.maximumMaximumConnectionsAmount = maximumMaximumConnectionsAmount;
114     }
115 
116 }