/// <summary> /// Attempt to authenticate, enumerate account characters, and attach to default character /// </summary> /// <returns>True if ready to play, false if one or more steps were unsuccessful</returns> public async Task <bool> ConnectAsync() { var connected = false; if (WebSocketService.GetState() == WebSocketState.Open) { var loginState = GetState(); if (GetState() == LoginState.Guest) { var account = GetAccount(); if (account?.Id != null) { await LoginAsync(account.Name, account.Password); } } } return(connected); }