Exemplo n.º 1
0
        private ProperMessage LoadMessage(string rawMessage)
        {
            Debug.Log($"Received Message:\n{rawMessage}");
            ProperMessage recvmsg = JsonConvert.DeserializeObject <ProperMessage>(rawMessage);

            return(recvmsg);
        }
Exemplo n.º 2
0
        private void OnMessage(object sender, MessageEventArgs e)
        {
            if (_dir != "lobby")
            {
                ProperMessage message = LoadMessage(e.Data);
                if (message.messageType == MessageType.RoundResult)
                {
                    Debug.Log($"Game Round result received: {message.messageData}");
                    _playManager.ProcessRoundPlayed(JsonConvert.DeserializeObject <GameRound>(message.messageData));
                }

                if (message.messageType == MessageType.JoinAccept)
                {
                    _playManager.me = JsonConvert.DeserializeObject <Player>(message.messageData);
                    Debug.Log($"Got new version of me: {message.messageData}");
                }

                if (message.messageType == MessageType.RoundPlayAccept)
                {
                    _playManager.WaitOnOpponent();
                }
                if (message.messageType == MessageType.RoundPlayDeny)
                {
                    _playManager.ResetActions();
                }
            }
        }
Exemplo n.º 3
0
    private void OnOpen(object sender, EventArgs e)
    {
        ProperMessage m = new ProperMessage {
            messageData = String.Empty, messageType = MessageType.Create
        };

        _ws.Send(JsonConvert.SerializeObject(m));
    }
Exemplo n.º 4
0
        protected override void OnOpen()
        {
            base.OnOpen();
            string        id      = CreateGame();
            ProperMessage message = new ProperMessage {
                messageType = MessageType.CreateAccept, messageData = id
            };

            Send(JsonConvert.SerializeObject(message));
        }
Exemplo n.º 5
0
        private void OnOpen(object sender, EventArgs e)
        {
            Player me = _playManager.me;

            ProperMessage message = new ProperMessage
            {
                messageType = MessageType.Join,
                messageData = JsonConvert.SerializeObject(me)
            };

            SendSocketMessage(message);
        }
Exemplo n.º 6
0
 public void PlayRound()
 {
     CalculateEnergy();
     if (this.energyPoints >= 0)
     {
         ProperMessage play = new ProperMessage
         {
             messageType = MessageType.RoundPlay,
             messageData = JsonConvert.SerializeObject(me)
         };
         _websocket.SendSocketMessage(play);
     }
     WaitOnOpponent();
 }
Exemplo n.º 7
0
    void Start()
    {
        if (Application.isEditor)
        {
            _domain = "scratchbattle.afroraydude.com"; // localhost
        }
        else
        {
            _domain = "scratchbattle.afroraydude.com";
        }
        _ws            = new WebSocket($"ws://{_domain}/lobby");
        _ws.OnMessage += (sender, e) =>
        {
            Debug.Log($"Received Message:\n{e.Data}");
            ProperMessage m = JsonConvert.DeserializeObject <ProperMessage>(e.Data);
            if (m.messageType == MessageType.CreateAccept)
            {
                Debug.Log(m.messageData);
                id = m.messageData;
                PlayerPrefs.SetString("game_id", id);
                PlayerPrefs.Save();
            }
        };
        _ws.OnOpen   += OnOpen;
        _ws.OnClose  += OnClose;
        _ws.Log.Level = LogLevel.Debug;
        _ws.Connect();

        /*
         * using (var ws = new WebSocket("ws://localhost:5001/lobby"))
         * {
         *  ws.OnMessage += (sender, e) =>
         *  {
         *      Console.WriteLine($"Received Message:\n{e.Data}");
         *      ProperMessage m = JsonConvert.DeserializeObject<ProperMessage>(e.Data);
         *      if (m.messageType == MessageType.CreateAccept)
         *      {
         *          idText.text = m.messageData;
         *      }
         *  };
         *  ws.Connect();
         *  ProperMessage m = new ProperMessage {messageData = String.Empty, messageType = MessageType.Create};
         *  ws.Send(JsonConvert.SerializeObject(m));
         * }
         */
    }
Exemplo n.º 8
0
        public void SendSocketMessage(ProperMessage message)
        {
            string msg = JsonConvert.SerializeObject(message);

            if (isOnline)
            {
                _ws.Send(msg);
            }
            if (!isOnline)
            {
                if (message.messageType == MessageType.RoundPlay)
                {
                    Player self = JsonConvert.DeserializeObject <Player>(message.messageData);
                    PlaySinglePlayerRound(self);
                }
            }
        }
Exemplo n.º 9
0
        public static void Main(string[] args)
        {
            using (var ws = new WebSocket("ws://localhost:5001/DebugGame"))
            {
                ws.OnMessage += (sender, e) =>
                {
                    Console.WriteLine($"Received Message:\n{e.Data}");
                    ProperMessage recvmsg = JsonConvert.DeserializeObject <ProperMessage>(e.Data);
                    if (recvmsg.messageType == MessageType.JoinAccept)
                    {
                        Console.WriteLine("Join Accepted");
                    }
                    else if (recvmsg.messageType == MessageType.JoinDeny)
                    {
                        Console.WriteLine("Join Denied");
                    }
                };
                ws.Connect();
                Player me = new Player {
                    sessionId = null, name = RandomString(8), avatar = Avatar.BaldGuy,
                    actions   = new[] { ActionType.NullAction, ActionType.NullAction, ActionType.NullAction,
                                        ActionType.NullAction, ActionType.NullAction }, lockedIn = false
                };
                ProperMessage joinMessage = new ProperMessage {
                    messageType = MessageType.Join, messageData = JsonConvert.SerializeObject(me)
                };
                ws.Send(JsonConvert.SerializeObject(joinMessage));

                var actionsText = Console.ReadLine();
                me.actions = ActionResponse(actionsText);
                ProperMessage playMessage = new ProperMessage {
                    messageType = MessageType.RoundPlay, messageData = JsonConvert.SerializeObject(me)
                };
                ws.Send(JsonConvert.SerializeObject(playMessage));
                Console.ReadKey(true);
            }
        }
Exemplo n.º 10
0
        protected override void OnMessage(MessageEventArgs e)
        {
            ProperMessage recmsg = JsonConvert.DeserializeObject <ProperMessage>(e.Data);

            Console.WriteLine($"Message received: {e.Data}");

            if (recmsg.messageType == MessageType.Join)
            {
                Console.WriteLine("Player joined");
                Console.WriteLine($"Data: {recmsg.messageData}");
                List <Player> _players = _game.getPlayers();
                if (_players.Count < 2)
                {
                    Player player = JsonConvert.DeserializeObject <Player>(recmsg.messageData);
                    player.sessionId = ID;
                    //_players.Add(player);
                    _game.AddPlayer(player);
                    Console.WriteLine(_game.getPlayers().Count);
                    Console.WriteLine(JsonConvert.SerializeObject(_game.getPlayers()));
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.JoinAccept,
                        messageData = JsonConvert.SerializeObject(player)
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                    //response = new ProperMessage { messageType = MessageType.OpponentInfo, messageData = JsonConvert.SerializeObject(_players[0])};
                    //Send(JsonConvert.SerializeObject(response));
                    if (_players.Count == 2)
                    {
                        //response = new ProperMessage { messageType = MessageType.OpponentInfo, messageData = JsonConvert.SerializeObject(player)};
                        //Sessions.SendTo(JsonConvert.SerializeObject(response), _players[0].sessionId);
                    }
                }
                else
                {
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.JoinDeny, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }
            }

            if (recmsg.messageType == MessageType.RoundPlay)
            {
                List <Player> _players = _game.getPlayers();
                Player        player   = JsonConvert.DeserializeObject <Player>(recmsg.messageData);
                if (VerifyRoundPlay(player))
                {
                    player.lockedIn = true;
                    var thisPlayerIndex = _players.IndexOf(_players.Find(p => p.sessionId == ID));
                    Console.WriteLine($"Index: {thisPlayerIndex}");
                    player.sessionId          = ID;
                    _players[thisPlayerIndex] = player;
                    Console.WriteLine("Accepted Player Move");
                    Console.WriteLine($"Data: {e.Data}");
                    ProperMessage response = new ProperMessage {
                        messageType = MessageType.RoundPlayAccept, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }
                else
                {
                    Console.WriteLine("Denied Player Move");
                    Console.WriteLine($"Data: {e.Data}");
                    ProperMessage response = new ProperMessage {
                        messageType = MessageType.RoundPlayDeny, messageData = null
                    };
                    SendTest(JsonConvert.SerializeObject(response));
                }

                if (_players.Count == 2 && (_players[0].lockedIn && _players[1].lockedIn))
                {
                    var gameRound = DetermineRound(_players[0], _players[1]);
                    Console.WriteLine(JsonConvert.SerializeObject(gameRound));
                    ProperMessage response = new ProperMessage
                    {
                        messageType = MessageType.RoundResult, messageData = JsonConvert.SerializeObject(gameRound)
                    };
                    Sessions.Broadcast(JsonConvert.SerializeObject(response));
                    ResetRound();
                }
            }
        }