コード例 #1
0
        public async Task Leave()
        {
            using var _ = await Lock();

            if (_myInfo is not null)
            {
                await PlayersService.Leave(_myInfo);

                _myInfo = null;
                OnMyInfoChanged?.Invoke(this, _myInfo);
                TokenStock = 0;
            }
        }
コード例 #2
0
        public async Task <PlayerInfo> Register(PlayerInfo myInfo)
        {
            using var _ = await Lock();

            Logger.LogInformation("Register");
            if (_myInfo is not null)
            {
                return(_myInfo);
            }
            Logger.LogInformation("Registering with PS");
            _myInfo = await PlayersService.Register(myInfo);

            if (_myInfo is not null)
            {
                OnMyInfoChanged?.Invoke(this, _myInfo);
                TokenStock = MaxTokenStock;
            }
            return(_myInfo);
        }
コード例 #3
0
 public PlayerServiceWebClient(SignalRConnection signalR)
 {
     SignalR = signalR;
     SignalR.HubConnection.On <IImmutableList <PlayerState> >("PlayerlistChanged", newValue =>
     {
         OnPlayerlistChanged?.Invoke(this, newValue);
     });
     SignalR.HubConnection.On <PlayerInfo?>("MyInfoChanged", newValue =>
     {
         OnMyInfoChanged?.Invoke(this, newValue);
     });
     SignalR.HubConnection.On <int>("TokenStockChanged", newValue =>
     {
         OnTokenStockChanged?.Invoke(this, newValue);
     });
     HubConnection.On <ChangeSet>("BoardChanged", changes =>
     {
         OnBoardChanged?.Invoke(this, changes);
     });
     HubConnection.On <int>("CountdownChanged", countDown =>
     {
         OnCountdownChanged?.Invoke(this, countDown);
     });
 }