private IEnumerator Login(string userName, int passwordHash, Result <bool> result, NetworkConnection con = null) { if (loggedInAccounts.Any(x => x.Key.userName == userName)) { Debug.LogWarning("already loggedIn!"); result.SetValue(false); yield break; } yield return(StartCoroutine(storage.IsLoginDataCorrect(userName, passwordHash, result))); if (result.Value) { Result <StorageAccountInfo> r = new Result <StorageAccountInfo>(this); yield return(StartCoroutine(storage.GetAccountByUserName(userName, r))); var user = r.Value; loggedInAccounts.Add(new AccountInfo(user.userID, user.userName, user.data), con); } yield break; }