コード例 #1
0
 public void JoinLocation(string location, bool joiningLocation = true)
 {
     PlayerData.Location = location;
     socket.Emit("set_location", PlayerData.Location);
     Debug.LogInfo($"Socket.IO Emit: 'set_location', sent data:\n{PlayerData.Location}\n", "NETWORK");
     SceneManager.Instance.LoadScene(joiningLocation ? $"{location}-Menu" : "Map");
 }
コード例 #2
0
 public void NextQuestionMinigame3()
 {
     socket.Emit("request_minigame_3", new JObject {
         ["gameGuid"] = ActiveMinigame3.GUID
     }.ToString(Formatting.None));
     Debug.LogInfo($"Socket.IO Emit: 'request_minigame_3', sent data:\n{new JObject {["gameGuid"] = ActiveMinigame3.GUID}.ToString(Formatting.None)}\n", "NETWORK");
 }
コード例 #3
0
 public void LeaveRoom()
 {
     socket.Emit("leave_room");
     Debug.LogInfo($"Socket.IO Emit: 'leave_room', sent data: \"\"", "NETWORK");
     SoundManager.Instance.StopPlaying("bar_ambiance");
     JoinLocation(PlayerData.Location);
 }
コード例 #4
0
        public void LoadScene(string sceneID)
        {
            MouseCursor.Instance.Normal();
            if (scenes.ContainsKey(activeSceneID))
            {
                Debug.LogInfo($"Unloaded scene `{activeSceneID}`.");
                scenes[activeSceneID].Unload();
                RemoveChild(scenes[activeSceneID]);
            }
            else
            {
                Debug.LogWarning($"Could not unload scene `{activeSceneID}`. Reason: Scene not found in Scene dictionary.");
            }

            activeSceneID = sceneID;
            if (scenes.ContainsKey(activeSceneID))
            {
                Debug.LogInfo($"Loaded scene `{activeSceneID}`.");
                scenes[activeSceneID].Load();
                AddChild(scenes[activeSceneID]);
            }
            else
            {
                Debug.LogWarning($"Could not load scene `{activeSceneID}`. Reason: Scene not found in Scene dictionary.");
            }
        }
コード例 #5
0
 public void StopPlayingSound(string soundId)
 {
     socket.Emit("stop_playing_sound", new JObject {
         ["soundId"] = soundId
     }.ToString(Formatting.None));
     Debug.LogInfo($"Socket.IO Emit: 'stop_playing_sound', sent data:\n{new JObject {["soundId"] = soundId}.ToString(Formatting.None)}\n", "NETWORK");
     SoundManager.Instance.StopPlaying(soundId);
 }
コード例 #6
0
 public void CreateAccount(string username, int avatarIndex, bool consent)
 {
     PlayerData.Username    = username;
     PlayerData.AvatarIndex = avatarIndex;
     PlayerData.Consent     = consent;
     socket.Emit("update_account", PlayerData.JSONString);
     Debug.LogInfo($"Socket.IO Emit: 'update_account', sent data:\n{PlayerData.JSONString}\n", "NETWORK");
 }
コード例 #7
0
 public void PlaySound(string soundId, bool stopAlreadyPlaying)
 {
     socket.Emit("play_sound", new JObject {
         ["soundId"] = soundId, ["stopAlreadyPlaying"] = stopAlreadyPlaying
     }.ToString(Formatting.None));
     Debug.LogInfo($"Socket.IO Emit: 'play_sound', sent data:\n{new JObject {["soundId"] = soundId, ["stopAlreadyPlaying"] = stopAlreadyPlaying}.ToString(Formatting.None)}\n", "NETWORK");
     SoundManager.Instance.PlaySound(soundId, stopAlreadyPlaying);
 }
コード例 #8
0
 public void StopPlayingMinigame3()
 {
     socket.Emit("finish_minigame_3", new JObject {
         ["gameGuid"] = ActiveMinigame3.GUID
     }.ToString(Formatting.None));
     Debug.LogInfo($"Socket.IO Emit: 'finish_minigame_3', sent data:\n{new JObject {["gameGuid"] = ActiveMinigame3.GUID}.ToString(Formatting.None)}\n", "NETWORK");
     Minigame3Element.ActiveMinigame.Deinitialize();
 }
コード例 #9
0
        public void TryJoinRoom(string roomGuid, string roomCode)
        {
            var roomData = new JObject {
                ["guid"] = roomGuid, ["code"] = roomCode
            };

            socket.Emit("join_room", roomData.ToString(Formatting.None));
            Debug.LogInfo($"Socket.IO Emit: 'join_room', sent data:\n{roomData.ToString(Formatting.None)}\n", "NETWORK");
        }
コード例 #10
0
 public void CreateAndJoinRoom(string roomName, string roomDesc, string code, bool isNSFW, bool isPublic)
 {
     ActiveRoom = new NetworkRoom(roomName, roomDesc, Guid.NewGuid().ToString(), code, PlayerData.Location, isPublic, isNSFW);
     ActiveRoom.Players.Add(PlayerData.GUID, PlayerData);
     PlayerData.RoomID = ActiveRoom.GUID;
     socket.Emit("create_room", ActiveRoom.JSONString);
     Debug.LogInfo($"Socket.IO Emit: 'create_room', sent data:\n{ActiveRoom.JSONString}\n", "NETWORK");
     SceneManager.Instance.LoadScene($"{PlayerData.Location}-Bar");
     SoundManager.Instance.PlaySound("bar_ambiance");
 }
コード例 #11
0
        public void StartMinigame3()
        {
            var minigame3Data = new NetworkNeverHaveIEver(Guid.NewGuid().ToString(), PlayerData.GUID);

            ActiveMinigame3 = minigame3Data;
            var jsonData = minigame3Data.JSONObject;

            jsonData["roomGuid"] = ActiveRoom.GUID;
            socket.Emit("start_minigame_3", jsonData.ToString(Formatting.None));
            Debug.LogInfo($"Socket.IO Emit: 'start_minigame_3', sent data:\n{jsonData.ToString(Formatting.None)}\n", "NETWORK");
            socket.Emit("request_minigame_3", jsonData.ToString(Formatting.None));
            Debug.LogInfo($"Socket.IO Emit: 'request_minigame_3', sent data:\n{jsonData.ToString(Formatting.None)}\n", "NETWORK");
        }
コード例 #12
0
        private void SetupSocket_Minigames_3()
        {
            socket.On("started_minigame_3", data => {
                Debug.LogInfo($"Socket.IO: 'started_minigame_3', received data:\n{data?.ToString()}\n", "NETWORK");
                var minigameData = (JObject)data;
                ActiveMinigame3  = new NetworkNeverHaveIEver(minigameData.Value <string>("gameGuid"), minigameData.Value <string>("ownerGuid"));
                startedMinigame3 = true;
            });
            socket.On("voted_minigame_3", data => {
                Debug.LogInfo($"Socket.IO: 'voted_minigame_3', received data:\n{data?.ToString()}\n", "NETWORK");
                var minigameData = (JObject)data;
                var redirect     = minigameData.TryGetValue("redirect", out _);
                ActiveMinigame3.SetVote(minigameData.Value <string>("guid"), minigameData.Value <string>("vote"));
                if (redirect)
                {
                    return;
                }
                if (ActiveMinigame3.Owner == PlayerData.GUID && ActiveMinigame3.IsQuestionDone)
                {
                    socket.Emit("results_minigame_3", "");
                    Debug.LogInfo($"Socket.IO Emit: 'results_minigame_3', sent data: \"\"", "NETWORK");
                    showResultsMinigame3 = true;
                }
                else
                {
                    newVoteMinigame3 = true;
                }
            });

            socket.On("request_minigame_3", data => {
                Debug.LogInfo($"Socket.IO: 'request_minigame_3', received data:\n{data?.ToString()}\n", "NETWORK");
                var minigameData  = (JObject)data;
                var questionIndex = minigameData.Value <int>("question");
                var question      = Minigame3Element.GetQuestion(questionIndex);
                ActiveMinigame3.StartNewQuestion(question);
                newQuestionMinigame3 = true;
            });
            socket.On("results_minigame_3", data => {
                Debug.LogInfo($"Socket.IO: 'results_minigame_3', received data:\n{data?.ToString()}\n", "NETWORK");
                showResultsMinigame3 = true;
            });
            socket.On("finished_minigame_3", data => {
                Debug.LogInfo($"Socket.IO: 'finished_minigame_3', received data:\n{data?.ToString()}\n", "NETWORK");
                finishedMinigame3 = true;
            });
        }
コード例 #13
0
 private void SetupSocket_Basic()
 {
     socket.On("connect", data => {
         Debug.LogInfo($"Socket.IO: 'connect', received data:\n{data?.ToString()}\n", "NETWORK");
         if (!initialized)
         {
             clientLoggedIn = true;
         }
         initialized = true;
     });
     socket.On("disconnect", data => {
         Debug.LogInfo($"Socket.IO: 'disconnect', received data:\n{data?.ToString()}\n", "NETWORK");
         Debug.Log($"Client disconnected. Reason: {data}");
     });
     socket.On("request_account", data => {
         Debug.LogInfo($"Socket.IO: 'request_account', received data:\n{data?.ToString()}\n", "NETWORK");
         socket.Emit("request_account_success", PlayerData.JSONString);
         Debug.LogInfo($"Socket.IO Emit: 'request_account_success', sent data:\n{PlayerData.JSONString}\n", "NETWORK");
     });
 }
コード例 #14
0
 public void VoteMinigame3(string playerGuid)
 {
     ActiveMinigame3.SetVote(PlayerData.GUID, playerGuid);
     if (ActiveMinigame3.Owner == PlayerData.GUID && ActiveMinigame3.IsQuestionDone)
     {
         socket.Emit("results_minigame_3", "");
         Debug.LogInfo($"Socket.IO Emit: 'results_minigame_3', sent data: \"\"", "NETWORK");
         socket.Emit("voted_minigame_3", new JObject {
             ["guid"] = PlayerData.GUID, ["vote"] = playerGuid, ["redirect"] = false
         }.ToString(Formatting.None));
         Debug.LogInfo($"Socket.IO Emit: 'voted_minigame_3', sent data:\n{new JObject {["guid"] = PlayerData.GUID, ["vote"] = playerGuid, ["redirect"] = false}.ToString(Formatting.None)}\n", "NETWORK");
         showResultsMinigame3 = true;
     }
     else
     {
         socket.Emit("voted_minigame_3", new JObject {
             ["guid"] = PlayerData.GUID, ["vote"] = playerGuid
         }.ToString(Formatting.None));
         Debug.LogInfo($"Socket.IO Emit: 'voted_minigame_3', sent data:\n{new JObject {["guid"] = PlayerData.GUID, ["vote"] = playerGuid}.ToString(Formatting.None)}\n", "NETWORK");
     }
 }
コード例 #15
0
        private void SetupSocket_Sound()
        {
            socket.On("play_sound", data => {
                Debug.LogInfo($"Socket.IO: 'play_sound', received data:\n{data?.ToString()}\n", "NETWORK");
                var jsonData           = (JObject)data;
                var soundId            = jsonData.Value <string>("soundId");
                var stopAlreadyPlaying = jsonData.Value <bool>("stopAlreadyPlaying");
                if (soundId.StartsWith("Song"))
                {
                    JukeboxElement.ActiveJukebox.CurrentlyPlaying = soundId;
                }

                SoundManager.Instance.PlaySound(soundId, stopAlreadyPlaying);
            });

            socket.On("stop_playing_sound", data => {
                Debug.LogInfo($"Socket.IO: 'stop_playing_sound', received data:\n{data?.ToString()}\n", "NETWORK");
                var jsonData = (JObject)data;
                var soundId  = jsonData.Value <string>("soundId");
                SoundManager.Instance.StopPlaying(soundId);
            });
        }
コード例 #16
0
 public void RequestRooms()
 {
     socket.Emit("request_rooms");
     Debug.LogInfo($"Socket.IO Emit: 'join_room', sent data: \"\"", "NETWORK");
 }
コード例 #17
0
        private void SetupSocket_Rooms()
        {
            socket.On("request_rooms_success", data => {
                Debug.LogInfo($"Socket.IO: 'request_rooms_success', received data:\n{data?.ToString()}\n", "NETWORK");
                Rooms       = new List <NetworkRoom>();
                var objData = (JObject)data;
                foreach (var prop in objData.Properties())
                {
                    var roomData = (JObject)objData[prop.Name];
                    var room     = new NetworkRoom(roomData.Value <string>("name"), roomData.Value <string>("desc"), roomData.Value <string>("guid"), roomData.Value <string>("code"), roomData.Value <string>("type"), roomData.Value <bool>("pub"), roomData.Value <bool>("nsfw"));
                    Rooms.Add(room);
                }

                RoomsReady = true;
            });
            socket.On("create_room_success", data => { Debug.LogInfo($"Socket.IO: 'create_room_success', received data:\n{data?.ToString()}\n", "NETWORK"); });
            socket.On("join_room_failed", data => {
                Debug.LogInfo($"Socket.IO: 'join_room_failed', received data:\n{data?.ToString()}\n", "NETWORK");
                Debug.LogWarning("Socket.IO response not implemented for 'join_room_failed'");
            });
            socket.On("join_room_success", data => {
                Debug.LogInfo($"Socket.IO: 'join_room_success', received data:\n{data?.ToString()}\n", "NETWORK");
                var roomData      = (JObject)data;
                ActiveRoom        = new NetworkRoom(roomData.Value <string>("name"), roomData.Value <string>("desc"), roomData.Value <string>("guid"), roomData.Value <string>("code"), roomData.Value <string>("type"), roomData.Value <bool>("pub"), roomData.Value <bool>("nsfw"));
                PlayerData.RoomID = ActiveRoom.GUID;
                ActiveRoom.Players.Add(PlayerData.GUID, PlayerData);
                joinRoomSuccess = true;
                socket.Emit("request_players", ActiveRoom.GUID);
                Debug.LogInfo($"Socket.IO Emit: 'request_players', sent data:\n{ActiveRoom.GUID}\n", "NETWORK");
            });
            socket.On("request_players_success", data => {
                Debug.LogInfo($"Socket.IO: 'request_players_success', received data:\n{data?.ToString()}\n", "NETWORK");
                var playerData = (JObject)data;
                foreach (var playerId in playerData.Properties())
                {
                    var networkPlayerData = new NetworkPlayer(playerData[playerId.Name].Value <string>("username"), playerData[playerId.Name].Value <string>("guid"), playerData[playerId.Name].Value <string>("room"), playerData[playerId.Name].Value <string>("location"), playerData[playerId.Name].Value <int>("avatar"), playerData[playerId.Name].Value <bool>("consent"));
                    ActiveRoom.Players.Add(playerId.Name, networkPlayerData);
                }
            });
            socket.On("client_joined", data => {
                Debug.LogInfo($"Socket.IO: 'client_joined', received data:\n{data?.ToString()}\n", "NETWORK");
                if (PlayerData.RoomID == "none")
                {
                    return;
                }
                var playerData = (JObject)data;
                newestMessage  = new ChatMessage("SERVER", "00000000-0000-0000-0000-000000000000", $"`{playerData.Value<string>("username")}` joined the room!");
                ActiveRoom.Players.Add(playerData.Value <string>("guid"), new NetworkPlayer()
                {
                    AvatarIndex = playerData.Value <int>("avatar"), Username = playerData.Value <string>("username"), GUID = playerData.Value <string>("guid")
                });
                SoundManager.Instance.PlaySound("client_joined");
                gotNewMessage = true;
            });

            socket.On("new_message", data => {
                Debug.LogInfo($"Socket.IO: 'new_message', received data:\n{data?.ToString()}\n", "NETWORK");
                newestMessage = ChatMessage.FromJSON(JObject.Parse(((JObject)data).Value <string>("message")));
                gotNewMessage = true;
            });

            socket.On("client_disconnected", data => {
                Debug.LogInfo($"Socket.IO: 'client_disconnected', received data:\n{data?.ToString()}\n", "NETWORK");
                if (PlayerData.RoomID == "none")
                {
                    return;
                }
                var playerData = (JObject)data;
                newestMessage  = new ChatMessage("SERVER", "00000000-0000-0000-0000-000000000000", $"`{playerData.Value<string>("username")}` left the room!");
                ActiveRoom.Players.Remove(playerData.Value <string>("guid"));
                SoundManager.Instance.PlaySound("client_left", true);
                gotNewMessage = true;
            });
        }
コード例 #18
0
 public void SendMessage(ChatMessage message)
 {
     socket.Emit("send_message", message.JSONString);
     Debug.LogInfo($"Socket.IO Emit: 'send_message', sent data:\n{message.JSONString}\n", "NETWORK");
 }