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 MultiPlayerGameSettings extends GameSettings {
8   
9       private int minimumParticipantsAmount;
10  
11      private int maximumParticipantsAmount;
12      private int maximumConnectionsAmount;
13  
14      private int minimumMaximumParticipantsAmount;
15      private int maximumMaximumParticipantsAmount;
16      private int minimumMaximumConnectionsAmount;
17      private int maximumMaximumConnectionsAmount;
18  
19      public MultiPlayerGameSettings() {
20          this(2, 2, 2, 8, 8, 2, 16);
21      }
22  
23      public MultiPlayerGameSettings(int maximumParticipantsAmount, int maximumConnectionsAmount) {
24          this(2, maximumParticipantsAmount, 2, maximumParticipantsAmount,
25                  maximumConnectionsAmount, 2, maximumConnectionsAmount);
26      }
27  
28      public MultiPlayerGameSettings(int defaultMaximumParticipantsAmount,
29                                     int minimumMaximumParticipantsAmount,
30                                     int maximumMaximumParticipantsAmount,
31                                     int defaultMaximumConnectionsAmount,
32                                     int minimumMaximumConnectionsAmount,
33                                     int maximumMaximumConnectionsAmount) {
34          this(minimumMaximumParticipantsAmount,
35                  defaultMaximumParticipantsAmount,
36                  minimumMaximumParticipantsAmount, maximumMaximumParticipantsAmount,
37                  defaultMaximumConnectionsAmount,
38                  minimumMaximumConnectionsAmount, maximumMaximumConnectionsAmount);
39      }
40  
41      public MultiPlayerGameSettings(int minimumParticipantsAmount,
42                                     int defaultMaximumParticipantsAmount,
43                                     int minimumMaximumParticipantsAmount,
44                                     int maximumMaximumParticipantsAmount,
45                                     int defaultMaximumConnectionsAmount,
46                                     int minimumMaximumConnectionsAmount,
47                                     int maximumMaximumConnectionsAmount) {
48          this.minimumParticipantsAmount = minimumParticipantsAmount;
49          this.maximumParticipantsAmount = defaultMaximumParticipantsAmount;
50          this.minimumMaximumParticipantsAmount = minimumMaximumParticipantsAmount;
51          this.maximumMaximumParticipantsAmount = maximumMaximumParticipantsAmount;
52          this.maximumConnectionsAmount = defaultMaximumConnectionsAmount;
53          this.minimumMaximumConnectionsAmount = minimumMaximumConnectionsAmount;
54          this.maximumMaximumConnectionsAmount = maximumMaximumConnectionsAmount;
55      }
56  
57      public GameSettingsPanel createGameSettingsPanel() {
58          return new MultiPlayerGameSettingsPanel(maximumParticipantsAmount,
59                  minimumMaximumParticipantsAmount,
60                  maximumMaximumParticipantsAmount,
61                  maximumConnectionsAmount,
62                  minimumMaximumConnectionsAmount,
63                  maximumMaximumConnectionsAmount);
64      }
65  
66      public GameSettings createChangedGameSettings(GameSettingsPanel gameSettingsPanel) {
67          MultiPlayerGameSettingsPanel multiPlayerGameSettingsPanel =
68                  (MultiPlayerGameSettingsPanel) gameSettingsPanel;
69          return new MultiPlayerGameSettings(minimumParticipantsAmount,
70                  multiPlayerGameSettingsPanel.getMaximumParticipantsAmount(),
71                  minimumMaximumParticipantsAmount, maximumMaximumParticipantsAmount,
72                  multiPlayerGameSettingsPanel.getMaximumConnectionsAmount(),
73                  minimumMaximumConnectionsAmount, maximumMaximumConnectionsAmount);
74      }
75  
76      public boolean isChangeGameSettingsAllowed(GameSettings changedGameSettings) {
77          MultiPlayerGameSettings changedMultiPlayerGameSettings = (MultiPlayerGameSettings)
78                  changedGameSettings;
79          if (engine.getPlayerSettingsMap().getConnectionsAmount()
80                  > changedMultiPlayerGameSettings.maximumConnectionsAmount
81                  || engine.getPlayerSettingsMap().getParticipantsAmount()
82                  > changedMultiPlayerGameSettings.maximumParticipantsAmount) {
83              return false;
84          } else {
85              return true;
86          }
87      }
88  
89      public boolean isCreateDefaultPlayerSettingsAllowed(int playerType) {
90          if (engine.getPlayerSettingsMap().getConnectionsAmount()
91                  >= maximumConnectionsAmount) {
92              return false;
93          }
94          return true;
95      }
96  
97      public PlayerSettings createDefaultPlayerSettings(Integer playerID, int playerType,
98                                                        String nickname) {
99          int playingState = engine.isGamePlaying() ? PlayerSettings.OBSERVING
100                 : PlayerSettings.PARTICIPATING;
101         if (engine.getPlayerSettingsMap().getParticipantsAmount()
102                 >= maximumParticipantsAmount) {
103             playingState = PlayerSettings.OBSERVING;
104         }
105         return new StandardPlayerSettings(engine, playerID, playerType, nickname,
106                 playingState);
107     }
108 
109     public boolean isChangePlayerSettingsAllowed(PlayerSettings currentPlayerSettings,
110                                                  PlayerSettings changedPlayerSettings) {
111         if (currentPlayerSettings.getPlayingState() == PlayerSettings.OBSERVING
112                 && changedPlayerSettings.getPlayingState() == PlayerSettings.PARTICIPATING
113                 && engine.getPlayerSettingsMap().getParticipantsAmount()
114                 >= maximumParticipantsAmount) {
115             return false;
116         } else {
117             return true;
118         }
119     }
120 
121     public boolean isStartGameAllowed() {
122         if (engine.getPlayerSettingsMap().getParticipantsAmount()
123                 < minimumParticipantsAmount) {
124             return false;
125         }
126         return true;
127     }
128 
129     public int getMinimumParticipantsAmount() {
130         return minimumParticipantsAmount;
131     }
132 
133     public void setMinimumParticipantsAmount(int minimumParticipantsAmount) {
134         this.minimumParticipantsAmount = minimumParticipantsAmount;
135     }
136 
137     public int getMaximumParticipantsAmount() {
138         return maximumParticipantsAmount;
139     }
140 
141     public void setMaximumParticipantsAmount(int maximumParticipantsAmount) {
142         this.maximumParticipantsAmount = maximumParticipantsAmount;
143     }
144 
145     public int getMaximumConnectionsAmount() {
146         return maximumConnectionsAmount;
147     }
148 
149     public void setMaximumConnectionsAmount(int maximumConnectionsAmount) {
150         this.maximumConnectionsAmount = maximumConnectionsAmount;
151     }
152 
153     public int getMinimumMaximumParticipantsAmount() {
154         return minimumMaximumParticipantsAmount;
155     }
156 
157     public void setMinimumMaximumParticipantsAmount(int minimumMaximumParticipantsAmount) {
158         this.minimumMaximumParticipantsAmount = minimumMaximumParticipantsAmount;
159     }
160 
161     public int getMaximumMaximumParticipantsAmount() {
162         return maximumMaximumParticipantsAmount;
163     }
164 
165     public void setMaximumMaximumParticipantsAmount(int maximumMaximumParticipantsAmount) {
166         this.maximumMaximumParticipantsAmount = maximumMaximumParticipantsAmount;
167     }
168 
169     public int getMinimumMaximumConnectionsAmount() {
170         return minimumMaximumConnectionsAmount;
171     }
172 
173     public void setMinimumMaximumConnectionsAmount(int minimumMaximumConnectionsAmount) {
174         this.minimumMaximumConnectionsAmount = minimumMaximumConnectionsAmount;
175     }
176 
177     public int getMaximumMaximumConnectionsAmount() {
178         return maximumMaximumConnectionsAmount;
179     }
180 
181     public void setMaximumMaximumConnectionsAmount(int maximumMaximumConnectionsAmount) {
182         this.maximumMaximumConnectionsAmount = maximumMaximumConnectionsAmount;
183     }
184 
185 }