Esempio n. 1
0
    public async void Matchmake(User user)
    {
        try
        {
            client = new Colyseus.Client("ws://10.57.30.20:2567");
            room   = await client.JoinOrCreate <State>("game");

            await Task.Delay(1000);

            await room.Send(
                new
            {
                userInfo =
                    new
                {
                    user.DeviceID,
                    user.Gender,
                    user.Name,
                    user.Star,
                    user.Age
                }
            });

            room.State.players.OnAdd    += Players_OnAdd;
            room.State.players.OnChange += Players_OnChange;
            room.State.OnChange         += State_OnChange;
            room.OnError += Room_OnError;

            numPlayers++;

            if (room.State.players.Count == 2)
            {
                playernumber = 2;
                USER value = ((PlayerSchema)(room.State.players.Items[0])).User;

                EnemyInfoReceived?.Invoke(new User()
                {
                    Age    = (int)value.Age,
                    Name   = value.Name,
                    Star   = value.Star,
                    Gender = value.Gender
                });

                PlayersConnected?.Invoke(true);
            }
        }
        catch (Exception e)
        {
            PlayersConnected?.Invoke(false);
            Debug.Log("Error: " + e.Message);
        }
    }
Esempio n. 2
0
    private void Players_OnChange(PlayerSchema value, string key)
    {
        Debug.Log("player state changed");
        if (value.SessionID != room.SessionId && value.Choice != -1)
        {
            Debug.Log("choice received of the enemy");
            EnemySelected?.Invoke((int)value.Choice);
        }

        if (value.SessionID != room.SessionId && value.User.Age != 0)
        {
            Debug.LogWarning(value.User.Name);

            EnemyInfoReceived?.Invoke(new User()
            {
                Age    = (int)value.User.Age,
                Name   = value.User.Name,
                Star   = value.User.Star,
                Gender = value.User.Gender
            });
        }
    }
 private void Colyseus_EnemyInfoReceived(User obj)
 {
     EnemyInfoReceived?.Invoke(obj);
 }