summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/GameOfferControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/GameOfferControl.java')
-rw-r--r--src/jrummikub/control/network/GameOfferControl.java33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/jrummikub/control/network/GameOfferControl.java b/src/jrummikub/control/network/GameOfferControl.java
index 8c5820d..42e3b8b 100644
--- a/src/jrummikub/control/network/GameOfferControl.java
+++ b/src/jrummikub/control/network/GameOfferControl.java
@@ -1,12 +1,15 @@
package jrummikub.control.network;
+import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import jrummikub.model.GameSettings;
import jrummikub.model.PlayerSettings;
import jrummikub.model.PlayerSettings.Type;
+import jrummikub.util.Event1;
import jrummikub.util.GameData;
+import jrummikub.util.IEvent1;
import jrummikub.util.IListener;
import jrummikub.util.IListener1;
import jrummikub.view.ISettingsPanel.SettingsMode;
@@ -16,6 +19,7 @@ import jrummikub.view.IView;
* Control for network game host
*/
public class GameOfferControl extends AbstractGameBeginControl {
+ private Event1<GameSettings> gameStartEvent = new Event1<GameSettings>();
/**
* Creates new game offer control
@@ -84,10 +88,32 @@ public class GameOfferControl extends AbstractGameBeginControl {
}));
}
- @Override
- protected void startGame() {
- super.startGame();
+ /**
+ * The event that is emitted when the game is started
+ *
+ * @return the event
+ */
+ public IEvent1<GameSettings> getStartGameEvent() {
+ return gameStartEvent;
+ }
+
+ private void startGame() {
+ abort();
connectionControl.startGame();
+
+ GameSettings settings = gameData.getGameSettings();
+ removeVacant(settings);
+
+ gameStartEvent.emit(settings);
+ }
+
+ private void removeVacant(GameSettings settings) {
+ Iterator<PlayerSettings> it = settings.getPlayerList().iterator();
+ while (it.hasNext()) {
+ if (it.next().getType() == Type.VACANT) {
+ it.remove();
+ }
+ }
}
/**
@@ -98,7 +124,6 @@ public class GameOfferControl extends AbstractGameBeginControl {
connectionControl.offerGame(gameData);
view.showSettingsPanel(true);
-
}
@Override