コード例 #1
0
ファイル: RegistrarRoom.cs プロジェクト: renfengyi/HexWorld
    public void OnStateChangeHandler(object sender, RoomUpdateEventArgs e)
    {
        if (e.isFirstState)
        {
            IndexedDictionary <string, object> players = (IndexedDictionary <string, object>)e.state ["players"];
            return;
        }

        if (e.state.ContainsKey("command"))
        {
            switch (e.state["command"] as string)
            {
            case "queued":
                Debug.Log("Queued for matchmaking");
                break;

            default:
                break;
            }
        }
        else
        {
            Debug.Log("-----Keys:");
            foreach (string key in e.state.Keys)
            {
                Debug.Log(key);
            }
            Debug.Log("-----values:");
            foreach (object v in e.state.Values)
            {
                Debug.Log(v);
            }
        }
    }
コード例 #2
0
 void OnStateChangeHandler(object sender, RoomUpdateEventArgs e)
 {
     // Setup room first state
     if (e.isFirstState)
     {
         IndexedDictionary <string, object> players = (IndexedDictionary <string, object>)e.state ["players"];
     }
 }
コード例 #3
0
    void Room_OnStateChange(object sender, RoomUpdateEventArgs e)
    {
        Debug.Log("OnStateChange");
        Debug.Log("Is First State = " + e.isFirstState);
        Debug.Log("State = " + e.state);

        var    update = teamLayout.UpdateTeams(e.state);
        string myId   = ColyseusConnector.Instance.Client.id;

        IsOwner         = myId == update.OwnerId;
        IsReady         = update.Players.FirstOrDefault(p => p.Id == myId)?.Ready ?? false;
        AllPlayersReady = update.Players.All(p => p.Ready);
    }
コード例 #4
0
    public override void OnEvent(Dictionary <byte, object> parameter)
    {
        // Create args.
        RoomUpdateEventArgs args = new RoomUpdateEventArgs();

        // Deserialize data.
        byte[] roomInfoDataByte = (byte[])parameter[(byte)ParameterCode.RoomInfoData];
        args.roomInfoData = (RoomInfoData)ProtoBufTool.Deserialize <RoomInfoData>(roomInfoDataByte);

        NetworkRecord.RoomInfoData = args.roomInfoData;

        if (RoomUpdateEvent != null)
        {
            RoomUpdateEvent(this, args);
        }
    }
コード例 #5
0
    void OnUpdateHandler(object sender, RoomUpdateEventArgs e)
    {
        // Setup room first state
        if (e.isFirstState)
        {
            IndexedDictionary <string, object> players = (IndexedDictionary <string, object>)e.state ["players"];

            // trigger to add existing players
            foreach (KeyValuePair <string, object> player in players)
            {
                this.OnPlayerChange(new DataChange {
                    path = new Dictionary <string, string> {
                        { "id", player.Key }
                    },
                    operation = "add",
                    value     = player.Value
                });
            }
        }
    }
コード例 #6
0
 void OnUpdateHandler(object sender, RoomUpdateEventArgs e)
 {
     // Debug.Log(e.state);
 }
コード例 #7
0
ファイル: ChatRoom.cs プロジェクト: renfengyi/HexWorld
 public void OnStateChangeHandler(object sender, RoomUpdateEventArgs e)
 {
 }
コード例 #8
0
ファイル: Network.cs プロジェクト: cpetzold/deck-unity
 void OnUpdate(object sender, RoomUpdateEventArgs e)
 {
 }
コード例 #9
0
 void Room_OnStateChange(object sender, RoomUpdateEventArgs e)
 {
     OnStateChange?.Invoke(sender, e);
 }
コード例 #10
0
 /// <summary>
 /// Triggers whenever the state variable is updated
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnUpdateHandler(object sender, RoomUpdateEventArgs e)
 {
     print("OnUpdate");
 }