public Task <CharacterInfo.Detailed> GetDetailedCharacterInfo(int characterSlot) { if (State != ClientState.LobbyServerCharacterListReceived) { throw new InvalidOperationException("Client has not received characters"); } var tcs = new VirtualTCS <CharacterInfo.Detailed>(); ActiveTask = tcs; LobbyClient.GetDetailedCharacterInfo(characterSlot); return(tcs.Task); }