void Start()
    {
        Api = FindObjectOfType <RestApi>();

        WebSocketListener.Instance().Subscribe(this);

        CardTray = FindObjectOfType <CardTrayBehaviour>();
        CardTray.OnSelected.AddListener(OnCardSelections);

        Board = FindObjectOfType <GameBoardBehaviour>();

        AnimationEngine = FindObjectOfType <AnimationEngineBehaviour>();
        AnimationEngine.OnComplete.AddListener(onAnimationsComplete);

        lobbyInfo = LobbyInfoController.Instance();
        if (lobbyInfo != null && lobbyInfo.msg != null)
        {
            WebSocketListener.Instance().StartListening(lobbyInfo.msg.id, lobbyInfo.playerName, () => {
                Debug.Log("I'm listening...");
                if (lobbyInfo.gameStartMessage != null)
                {
                    handleDownStreamMessage(MsgTypes.GAME_START, lobbyInfo.gameStartMessage);
                }
            });
        }
    }
        void Start()
        {
            cardTray = FindObjectOfType <CardTrayBehaviour>();

            List <CardState> cardStates = new List <CardState>();

            cardStates.Add(new CardState(0, (int)CardType.Unknown));
            cardStates.Add(new CardState(1, (int)CardType.TurnLeft));
            cardStates.Add(new CardState(2, (int)CardType.Rotate180));
            cardStates.Add(new CardState(3, (int)CardType.MoveForwardTwo));
            cardStates.Add(new CardState(4, (int)CardType.MoveForwardThree));
            cardStates.Add(new CardState(5, (int)CardType.MoveBackwardOne));
            cardTray.SetCards(cardStates);
        }