IEnumerator saveResult() { m_textNetworkStatus.text = "データアップロード中"; var query = new GSSA.SpreadSheetQuery("Ranking"); query.Where("id", "=", Globals.GetInstance().m_userId); yield return(query.FindAsync()); var so = query.Count > 0 ? query.Result.First() : new GSSA.SpreadSheetObject("Ranking"); so["id"] = Globals.GetInstance().m_userId; so["name"] = Globals.GetInstance().m_userName; so["mass"] = Globals.GetInstance().m_savedMass; so["difficulty"] = Globals.GetInstance().m_savedDifficulty; so["rare"] = Globals.GetInstance().m_savedRare; so["cost"] = Globals.GetInstance().m_savedCost; so["etc"] = Globals.GetInstance().m_savedEtc; so["total"] = Globals.GetInstance().m_savedTotal; so["totalAll"] = Globals.GetInstance().m_savedTotalAll; yield return(so.SaveAsync()); m_textNetworkStatus.text = ""; m_panelRoot[0].SetActive(false); }
private void makeRanking(GSSA.SpreadSheetQuery query, int option) { string[] category = { "total", "mass", "difficulty", "rare", "cost", "etc", "totalAll", "All" }; string[] prefix = { "$", "", "", "", "$", "$", "$" }; string[] postfix = { "", "kg", "pts", "pts", "", "", "", "" }; float[] myValues = { Globals.GetInstance().m_total, Globals.GetInstance().m_mass, Globals.GetInstance().m_difficulty, Globals.GetInstance().m_rare, Globals.GetInstance().m_cost, Globals.GetInstance().m_etc, Globals.GetInstance().m_savedTotalAll, }; int lineNum = 0; int rank = 1; float prevValue = 0; int myRank = 0; foreach (var so in query.Result) { lineNum++; float value = float.Parse(so[category[option]].ToString()); if (value < prevValue) { rank = lineNum; } if ((myRank == 0) && (value <= myValues[option])) { myRank = rank; } prevValue = value; m_textRankingNoList.text += rank.ToString() + "\n"; m_textRankingNameList.text += so["name"] as string + "\n"; m_textRankingValueList.text += prefix[option] + " " + string.Format("{0:f}", value) + " " + postfix[option] + "\n"; } if ((myRank == 0) && (query.Count < 50)) { myRank = query.Count + 1; m_textRankingNoList.text += rank.ToString() + "\n"; m_textRankingNameList.text += Globals.GetInstance().m_userName + "\n"; m_textRankingValueList.text += prefix[option] + " " + string.Format("{0:f}", myValues[option]) + " " + postfix[option] + "\n"; } m_textMyRank.text = (myRank == 0) ? "ランキング圏外" : myRank.ToString() + "位"; m_textMyValue.text = prefix[option] + " " + string.Format("{0:f}", myValues[option]) + " " + postfix[option]; }
IEnumerator transitionToRanking() { m_panelRoot[0].SetActive(false); m_panelRoot[1].SetActive(true); if (m_toggleSaveResult.isOn) { Globals.GetInstance().m_userName = m_inputFieldName.text; yield return(StartCoroutine(saveResult())); } m_textNetworkStatus.text = "ランキングデータ取得中"; string[] category = { "total", "mass", "difficulty", "rare", "cost", "etc", "totalAll", "All" }; var query = new GSSA.SpreadSheetQuery("Ranking"); yield return(query.OrderByDescending("total").Limit(50).FindAsync()); m_controlRoot[1].SetActive(true); m_objectMine.SetActive(true); m_objectAll.SetActive(false); makeRanking(query, 0); m_textNetworkStatus.text = ""; int currentOption = 0; while (true) { if (currentOption != m_dropdownRanking.value) { currentOption = m_dropdownRanking.value; m_objectMine.SetActive(false); m_objectAll.SetActive(false); m_textNetworkStatus.text = "ランキングデータ取得中"; if (currentOption == 7) { m_scrollView.SetActive(false); yield return(query.OrderByDescending("totalAll").FindAsync()); m_objectMine.SetActive(false); m_objectAll.SetActive(true); float total = 0; foreach (var so in query.Result) { total += float.Parse(so["totalAll"].ToString()); } m_textAllValue.text = string.Format("{0:f}", total); m_textNetworkStatus.text = ""; } else { m_scrollView.SetActive(true); m_textRankingNoList.text = ""; m_textRankingNameList.text = ""; m_textRankingValueList.text = ""; yield return(query.OrderByDescending(category[currentOption]).Limit(50).FindAsync()); m_objectMine.SetActive(true); m_objectAll.SetActive(false); makeRanking(query, currentOption); m_textNetworkStatus.text = ""; } } yield return(null); } }