added sync at start of round and trick

This commit is contained in:
2021-12-14 17:34:20 +01:00
parent cae83fe2f9
commit 17ade468a3
13 changed files with 138 additions and 10 deletions

View File

@@ -3,8 +3,10 @@ package eu.jonahbauer.wizard.client.cli.state;
import eu.jonahbauer.wizard.client.cli.Client;
import eu.jonahbauer.wizard.client.cli.commands.GameCommand;
import eu.jonahbauer.wizard.client.cli.util.Pair;
import eu.jonahbauer.wizard.common.messages.client.InteractionMessage;
import eu.jonahbauer.wizard.common.messages.data.PlayerData;
import eu.jonahbauer.wizard.common.messages.observer.*;
import eu.jonahbauer.wizard.common.messages.player.ContinueMessage;
import eu.jonahbauer.wizard.common.messages.server.AckMessage;
import eu.jonahbauer.wizard.common.messages.server.GameMessage;
import eu.jonahbauer.wizard.common.messages.server.NackMessage;
@@ -133,20 +135,25 @@ public final class Game extends BaseState {
client.print("The scores are as follows:", "", col0, col1);
} else if (observerMessage instanceof UserInputMessage input) {
if (self.equals(input.getPlayer())) {
if (input.getAction() == UserInputMessage.Action.SYNC) {
client.send(new InteractionMessage(new ContinueMessage()));
} else if (self.equals(input.getPlayer())) {
client.printfln("It is your turn to %s. You have time until %s.", switch (input.getAction()) {
case CHANGE_PREDICTION -> "change your prediction";
case JUGGLE_CARD -> "juggle a card";
case PLAY_CARD -> "play a card";
case PICK_TRUMP -> "pick the trump suit";
case MAKE_PREDICTION -> "make a prediction";
default -> throw new AssertionError();
}, LocalDateTime.ofInstant(Instant.ofEpochMilli(input.getTimeout()), ZoneId.systemDefault()));
} else {
client.printfln(
"Waiting for input %s from %s. (times out at %s)",
input.getAction(),
nameOf(input.getPlayer()),
LocalDateTime.ofInstant(Instant.ofEpochMilli(input.getTimeout()), ZoneId.systemDefault())
LocalDateTime.ofInstant(Instant.ofEpochMilli(input.getTimeout()),
ZoneId.systemDefault()
)
);
}
} else if (observerMessage instanceof TimeoutMessage) {