Exemple #1
0
        private void Dispose(bool removeFromCache)
        {
            PlayerAdded?.Dispose();
            PlayerRemoved?.Dispose();
            Status?.Dispose();
            CurrentPlayerId?.Dispose();
            LobbyTime?.Dispose();

            SocketIo.Instance.GameIsStarting       -= SocketIoOnGameIsStarting;
            SocketIo.Instance.GameLobbyTimer       -= SocketIoOnGameLobbyTimer;
            SocketIo.Instance.GameStarted          -= SocketIoOnGameStarted;
            SocketIo.Instance.PlayerJoined         -= SocketIoOnPlayerJoined;
            SocketIo.Instance.PlayerLeft           -= SocketIoOnPlayerLeft;
            SocketIo.Instance.PlayerTurnChanged    -= SocketIoOnPlayerTurnChanged;
            SocketIo.Instance.PropertyOwnerChanged -= SocketIoOnPropertyOwnerChanged;

            foreach (var player in Players)
            {
                player?.Dispose();
            }

            foreach (var property in Properties)
            {
                property?.Dispose();
            }

            if (removeFromCache)
            {
                _games.Remove(Id);
            }

            GC.SuppressFinalize(this);
        }
Exemple #2
0
 private void SocketIoOnPlayerTurnChanged(Player player)
 {
     CurrentPlayerId.OnNext(player.UserId);
 }
Exemple #3
0
 private void SocketIoOnGameStarted(Player firstPlayer)
 {
     CurrentPlayerId.OnNext(firstPlayer.UserId);
     Status.OnNext("running");
 }