private void OnIntAction(string obj, ICommunication communication) { if (isConnected | !Searched) { _errorMsg = "Error: " + "This command does not exist or isn't enabled at this time"; return; } int chosenServerId = Int32.Parse(obj); if (_ActionHanlder._serverDictionary.Count >= chosenServerId) { PROT_BROADCAST current = _ActionHanlder.GetServer(chosenServerId - 1); communication._client.Connect(IPAddress.Parse(current._Server_ip), 8080); _afterConnectMsg = $"Server {chosenServerId} chosen"; isConnected = true; } else { _afterConnectMsg = "no Server with this indentifier"; } }
public void StateMachine() { State = ClientStates.NotConnected; while (_isRunning) { switch (State) { case ClientStates.NotConnected: _inputHandler._inputActions.Add("/search", _inputHandler.OnSearchAction); _inputHandler._inputActions.Add("/someInt", _inputHandler.OnServerConnectAction); _inputHandler._inputActions.Add("/closegame", _inputHandler.OnCloseGameAction); //_actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.UpdateView, _actionHandler.OnUpdateAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.Broadcast, _actionHandler.OnBroadcastAction); while (State == ClientStates.NotConnected) { } Debug.WriteLine($"State switched: From: {State.ToString()}"); break; case ClientStates.Connecting: Debug.WriteLine($"State switched: From NotConnected To {State.ToString()}"); _inputHandler._inputActions.Clear(); _actionHandler._protocolActions.Clear(); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.ValidationRequest, _actionHandler.OnValidationRequestAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.ValidationAccepted, _actionHandler.OnValidationAcceptedAction); //hier BroadcastDTO current = _actionHandler.GetServer((int)_metaData - 1); _communication._client.Connect(IPAddress.Parse(current._server_ip), current._server_Port); _communication.SetNWStream(); while (State == ClientStates.Connecting) { } break; case ClientStates.WaitingForLobbyCheck: Debug.WriteLine($"State switched: From Connecting To {State.ToString()}"); _inputHandler._inputActions.Add("/closegame", _inputHandler.OnCloseGameAction); _actionHandler._protocolActions.Clear(); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.AcceptInfo, _actionHandler.OnAcceptInfoAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.DeclineInfo, _actionHandler.OnDeclineInfoAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.LobbyCheckFailed, _actionHandler.OnLobbyCheckFailedAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.LobbyCheckSuccessful, _actionHandler.OnLobbyCheckSuccessfulAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.UpdateView, _actionHandler.OnUpdateAction); while (State == ClientStates.WaitingForLobbyCheck) { } break; case ClientStates.Lobby: Debug.WriteLine($"State switched: From WaitingForLobbycheck To {State.ToString()}"); _actionHandler._protocolActions.Clear(); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.AcceptInfo, _actionHandler.OnAcceptInfoAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.UpdateView, _actionHandler.OnUpdateAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.ServerStartingGame, _actionHandler.OnServerStartingGameAction); _inputHandler._inputActions.Add("/startgame", _inputHandler.OnStartGameAction); _inputHandler._inputActions.Add("/classic", _inputHandler.OnClassicAction); while (State == ClientStates.Lobby) { } break; case ClientStates.GameRunning: Debug.WriteLine($"State switched: From Lobby To {State.ToString()}"); _game.CreateRules(); _game.Rules.SetupEntitites(); _game.MakeBoardView(); _actionHandler._protocolActions.Clear(); _inputHandler._inputActions.Clear(); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.UpdateView , _actionHandler.OnUpdateAction); _actionHandler._protocolActions.Add(Shared.Enums.ProtocolActionEnum.TurnResult , _actionHandler.OnTurnResultAction); _inputHandler._inputActions.Add("/rolldice", _inputHandler.OnInputRollDiceAction); _inputHandler._inputActions.Add("/help", _inputHandler.OnInputHelpAction); _inputHandler._inputActions.Add("/closegame", _inputHandler.OnCloseGameAction); while (State == ClientStates.GameRunning) { } break; } } }