Exemple #1
0
        private void OnMessageRecieved(MessageType messageType, string message)
        {
            switch (messageType)
            {
            case MessageType.StartGame:
            {
                GameStarted?.Invoke();
                break;
            }

            case MessageType.PlayerType:
            {
                PlayerType playerType = (PlayerType)Enum.Parse(typeof(PlayerType), message);
                PlayerTypeRecieved?.Invoke(playerType);
                break;
            }

            case MessageType.Step:
            {
                string[]   moves = message.Split(',');
                BoardIndex from  = BoardIndex.Parse(moves[0]);
                BoardIndex to    = BoardIndex.Parse(moves[1]);
                MoveRecieved?.Invoke(from, to);
                break;
            }

            case MessageType.TurnEnd:
            {
                TurnEnded?.Invoke();
                break;
            }

            case MessageType.StartTurn:
            {
                PlayerType playerType = (PlayerType)Enum.Parse(typeof(PlayerType), message);
                TurnStarted?.Invoke(playerType);
                break;
            }

            case MessageType.QueenAppeared:
            {
                BoardIndex where = BoardIndex.Parse(message);
                QueenAppeared?.Invoke(where);
                break;
            }

            case MessageType.Result:
            {
                PlayerType winner = (PlayerType)Enum.Parse(typeof(PlayerType), message);
                ResultRecieved?.Invoke(winner);
                break;
            }

            case MessageType.Name:
            {
                OpponentName?.Invoke(message);
                break;
            }

            case MessageType.TextMessage:
            {
                TextMessageRecieved?.Invoke(message);
                break;
            }
            }
        }