summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/control/network/NetworkRoundControl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/control/network/NetworkRoundControl.java')
-rw-r--r--src/jrummikub/control/network/NetworkRoundControl.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/jrummikub/control/network/NetworkRoundControl.java b/src/jrummikub/control/network/NetworkRoundControl.java
index 64faebb..d21e8e8 100644
--- a/src/jrummikub/control/network/NetworkRoundControl.java
+++ b/src/jrummikub/control/network/NetworkRoundControl.java
@@ -20,12 +20,27 @@ public class NetworkRoundControl extends RoundControl {
this.connectionControl = connectionControl;
currentlyActive = startActive;
+ connections.add(connectionControl.getRoundStateUpdateEvent().add(
+ new IListener1<IRoundState>() {
+ @Override
+ public void handle(IRoundState state) {
+ NetworkControl.fixGameSettings(state.getGameSettings(),
+ connectionControl.getNickname());
+ setRoundState(state);
+ }
+ }));
connections.add(connectionControl.getTurnStartEvent().add(new IListener() {
@Override
public void handle() {
startTurn();
}
}));
+ connections.add(connectionControl.getNextPlayerEvent().add(new IListener() {
+ @Override
+ public void handle() {
+ NetworkRoundControl.super.nextPlayer();
+ }
+ }));
}
@Override
@@ -68,6 +83,22 @@ public class NetworkRoundControl extends RoundControl {
}
@Override
+ protected void deal() {
+ super.deal();
+
+ if (currentlyActive) {
+ connectionControl.updateRoundState(roundState);
+ }
+ }
+
+ @Override
+ protected void nextPlayer() {
+ if (currentlyActive) {
+ connectionControl.nextPlayer();
+ }
+ }
+
+ @Override
protected void endOfTurn(InvalidTurnInfo invalidTurnInfo) {
if (currentlyActive) {
connectionControl.endTurn(roundState, invalidTurnInfo);