public void SaveRecord(SaveFileInstance curSaveFileInstance, List <List <int> > resultList, string symbol, float timeCost) { curSaveFileInstance.isUpload = false; curSaveFileInstance.timeCost = timeCost; string finishTime = DateTime.Now.ToString("yyyyMMddHHmmss"); curSaveFileInstance.fileName = finishTime; float accuracy = CalculateAccuracy(resultList); curSaveFileInstance.accuracy = accuracy; List <QuestionInstance> qInstanceList = ConvertToInstanceList(resultList, symbol); curSaveFileInstance.qInstancList = qInstanceList; curSaveFileInstance.achievementName = ""; curSaveFileInstance.opponentName = ""; CurSaveFileInstance = curSaveFileInstance; string toSave = JsonUtility.ToJson(curSaveFileInstance); SaveRecord(toSave, finishTime); TotalGame++; TotalTime += timeCost; }
private void InitRank() { RankInstance rInstance = RankController.Instance.CurRankInstance; SaveFileInstance sInstance = RecordController.Instance.CurSaveFileInstance; if (rInstance == null || sInstance == null) { return; } sharelTitle.gameObject.SetActive(true); sharelTitle.text = LanguageController.Instance.GetLanguage("Text_90009"); sharelTitle.text = string.Format(sharelTitle.text, rInstance.name); rankSharePattern_Time.SetActive(sInstance.cInstance.patternID == PatternID.Time); rankSharePattern_Number.SetActive(sInstance.cInstance.patternID == PatternID.Number); rankShareRank.text = string.Format(rankShareRank.text, rInstance.rank); rankShareAmount.text = string.Format(rankShareAmount.text, sInstance.qInstancList.Count); rankShareTime.text = string.Format(rankShareTime.text, sInstance.timeCost.ToString("f1")); rankShareSymbol.text = string.Format(rankShareSymbol.text, FightController.Instance.GetSymbol(sInstance.cInstance.symbolID)); rankShareDigit.text = string.Format(rankShareDigit.text, (int)(sInstance.cInstance.digitID + 2)); rankShareOperand.text = string.Format(rankShareOperand.text, (int)(sInstance.cInstance.operandID + 2)); rankShareAccuracy.text = string.Format(rankShareAccuracy.text, sInstance.accuracy.ToString("f1")); string meanTime = (sInstance.timeCost / sInstance.qInstancList.Count).ToString("f1"); rankShareMeanTime.text = string.Format(rankShareMeanTime.text, meanTime); }
private void InitBluetooth() { SaveFileInstance instance = RecordController.Instance.CurSaveFileInstance; if (instance == null) { return; } sharelTitle.gameObject.SetActive(true); sharelTitle.text = LanguageController.Instance.GetLanguage("Text_80015"); sharelTitle.text = string.Format(sharelTitle.text, GameManager.Instance.UserName, instance.opponentName); bluetoothShareAmount.text = string.Format(bluetoothShareAmount.text, instance.qInstancList.Count); bluetoothShareTime.text = string.Format(bluetoothShareTime.text, instance.timeCost.ToString("f1")); bluetoothShareSymbol.text = string.Format(bluetoothShareSymbol.text, FightController.Instance.GetSymbol(instance.cInstance.symbolID)); bluetoothShareDigit.text = string.Format(bluetoothShareDigit.text, (int)(instance.cInstance.digitID + 2)); bluetoothShareOperand.text = string.Format(bluetoothShareOperand.text, (int)(instance.cInstance.operandID + 2)); int right, noAnswer, wrong; CalcResult(instance.qInstancList, true, out right, out noAnswer, out wrong); bluetoothShareOwnRight.text = string.Format(bluetoothShareOwnRight.text, right); bluetoothShareOwnNoAnswer.text = string.Format(bluetoothShareOwnNoAnswer.text, noAnswer); bluetoothShareOwnWrong.text = string.Format(bluetoothShareOwnWrong.text, wrong); CalcResult(instance.qInstancList, false, out right, out noAnswer, out wrong); bluetoothShareOtherRight.text = string.Format(bluetoothShareOtherRight.text, right); bluetoothShareOtherNoAnswer.text = string.Format(bluetoothShareOtherNoAnswer.text, noAnswer); bluetoothShareOtherWrong.text = string.Format(bluetoothShareOtherWrong.text, wrong); }
public SaveFileInstance ReadRecord(string fileName) { string fullName = string.Format(fileFullName, fileName); string data = CommonTool.GetDataFromDataPath(fullName); SaveFileInstance saveFileInstance = JsonUtility.FromJson <SaveFileInstance>(data); return(saveFileInstance); }
private void FightOver() { CancelInvoke(); SaveFileInstance curSaveFileInstance = new SaveFileInstance(); curSaveFileInstance.cInstance = FightController.Instance.CurCategoryInstance; curSaveFileInstance.opponentName = BluetoothController.Instance.CurPeripheralInstance.name; RecordController.Instance.SaveRecord(curSaveFileInstance, resultList, symbol, timeCost); GuiController.Instance.SwitchWrapper(GuiFrameID.SettlementFrame); }
/// <summary> /// “TimeLast”字段,在限数模式下传耗时,在限时模式下传答题数 /// </summary> /// <returns></returns> public string FillTimeLast(SaveFileInstance content) { if (content.cInstance.patternID == PatternID.Number) { return(content.timeCost.ToString("f1")); } else { return(content.qInstancList.Count.ToString()); } }
private void FightOver() { CancelInvoke(); SaveFileInstance curSaveFileInstance = new SaveFileInstance(); curSaveFileInstance.cInstance = FightController.Instance.CurCategoryInstance; RecordController.Instance.SaveRecord(curSaveFileInstance, resultList, symbol, timeCost); if (GuiController.Instance.CompetitionGUI == GuiFrameID.ChapterFrame && AchievementController.Instance.CheckAchievement(curSaveFileInstance)) { RecordController.Instance.RefreshRecord(curSaveFileInstance); } GuiController.Instance.SwitchWrapper(GuiFrameID.SettlementFrame); }
public bool CheckAchievement(SaveFileInstance instance) { instance.achievementName = ""; int star = 0; float meanTime = instance.timeCost / instance.qInstancList.Count; List <AchievementInstance> achievementList = GetAchievementUnFinish(); for (int i = 0; i < achievementList.Count; i++) { if (achievementList[i].cInstance.Equals(instance.cInstance)) { instance.achievementName = achievementList[i].achievementName; if (achievementList[i].accuracy <= instance.accuracy && achievementList[i].meanTime >= meanTime) { star = 3; } else if (achievementList[i].accuracy - 5 <= instance.accuracy && achievementList[i].meanTime * 1.1 >= meanTime) { star = 2; } else if (achievementList[i].accuracy - 10 <= instance.accuracy && achievementList[i].meanTime * 1.2 >= meanTime) { star = 1; } break; } } switch (star) { case 3: PlayerPrefs.SetString(instance.achievementName, instance.fileName); PlayerPrefs.SetInt(instance.achievementName + "Star", 3); WriteFinishTime(instance.achievementName, instance.fileName, 3); LastestAchievement = instance.achievementName; break; case 2: case 1: PlayerPrefs.SetInt(instance.achievementName + "Star", star); WriteFinishTime(instance.achievementName, "", star); break; default: break; } return(star == 3); }
private void RefreshLatestSaveFile(SummarySaveFileItem item, SymbolID symbolID, Text summary) { List <SaveFileInstance> instanceList = saveFileDict[symbolID]; GameObject saveFileDefaultItem = CommonTool.GetGameObjectContainsName(item.gameObject, "SaveFileDefaultItem"); saveFileDefaultItem.SetActive(instanceList.Count <= 0); if (instanceList.Count > 0) { SaveFileInstance latestInstance = instanceList[instanceList.Count - 1]; item.SendMessage("InitPrefabItem", latestInstance); } string content = LanguageController.Instance.GetLanguage(summary.index); summary.text = string.Format(content, instanceList.Count, curSaveFileCount); }
private void OnGetRankDetailSucceed(string data) { SaveFileInstance instance = JsonUtility.FromJson <SaveFileInstance>(data); if (instance != null) { instance.isUpload = true; RankController.Instance.CurRankInstance = content; RecordController.Instance.CurSaveFileInstance = instance; GuiController.Instance.SwitchWrapper(GuiFrameID.SaveFileFrame, true); } else { string message = LanguageController.Instance.GetLanguage("Text_20066"); OnGetRankDetailFail(message); } }
public List <SaveFileInstance> ReadAllRecords() { List <SaveFileInstance> recordList = new List <SaveFileInstance>(); string[] fileNames = Directory.GetFiles(saveDir, "*.sav"); string data; for (int i = 0; i < fileNames.Length; i++) { data = CommonTool.GetDataFromDataPath(fileNames[i]); if (string.IsNullOrEmpty(data)) { continue; } SaveFileInstance saveFileInstance = JsonUtility.FromJson <SaveFileInstance>(data); recordList.Add(saveFileInstance); } return(recordList); }
private void InitSettlement() { curSaveFileInstance = RecordController.Instance.CurSaveFileInstance; settlementTime.text = string.Format(settlementTime.text, curSaveFileInstance.timeCost.ToString("f1")); settlementAmount.text = string.Format(settlementAmount.text, curSaveFileInstance.qInstancList.Count); settlementAccuracy.text = string.Format(settlementAccuracy.text, curSaveFileInstance.accuracy.ToString("f1")); isBluetooth = !string.IsNullOrEmpty(curSaveFileInstance.opponentName); commonResult.SetActive(!isBluetooth); bluetoothResult.SetActive(isBluetooth); if (isBluetooth) { saveFileOwnName.text = GameManager.Instance.UserName; saveFileOtherName.text = curSaveFileInstance.opponentName; } allInstanceList = curSaveFileInstance.qInstancList; onlyWrongList = allInstanceList.FindAll(FindWrong); onlyWrong = false; RefreshSettlementGrid(); }
protected override void InitPrefabItem(object data) { content = data as SaveFileInstance; if (content == null) { MyDebug.LogYellow("SaveFileInstance is null!!"); return; } Init(); hasAchievement = !string.IsNullOrEmpty(content.achievementName); isBluetooth = !string.IsNullOrEmpty(content.opponentName); saveFileName.text = content.fileName; saveFileAchiOrBLE.gameObject.SetActive(hasAchievement || isBluetooth); if (hasAchievement) { saveFileAchiOrBLE.sprite = SkinController.Instance.GetSprite("Image_20006"); } if (isBluetooth) { saveFileAchiOrBLE.sprite = SkinController.Instance.GetSprite("Image_10006"); } int digit = (int)content.cInstance.digitID + 2; int operand = (int)content.cInstance.operandID + 2; if (content.cInstance.patternID == PatternID.Time) { saveFileType_Time.gameObject.SetActive(true); saveFileType_Number.gameObject.SetActive(false); int amount = FightController.Instance.GetTimeAmount(content.cInstance.amountID); saveFileType_Time.text = string.Format(saveFileType_Time.text, amount, digit, operand); } else { saveFileType_Time.gameObject.SetActive(false); saveFileType_Number.gameObject.SetActive(true); int amount = FightController.Instance.GetNumberAmount(content.cInstance.amountID); saveFileType_Number.text = string.Format(saveFileType_Number.text, amount, digit, operand); } }
private void InitSaveFile() { SaveFileInstance instance = RecordController.Instance.CurSaveFileInstance; if (instance == null) { return; } sharelTitle.text = LanguageController.Instance.GetLanguage("Text_20037"); saveFileSharePattern_Time.SetActive(instance.cInstance.patternID == PatternID.Time); saveFileSharePattern_Number.SetActive(instance.cInstance.patternID == PatternID.Number); saveFileShareAmount.text = string.Format(saveFileShareAmount.text, instance.qInstancList.Count); saveFileShareTime.text = string.Format(saveFileShareTime.text, instance.timeCost.ToString("f1")); saveFileShareSymbol.text = string.Format(saveFileShareSymbol.text, FightController.Instance.GetSymbol(instance.cInstance.symbolID)); saveFileShareDigit.text = string.Format(saveFileShareDigit.text, (int)(instance.cInstance.digitID + 2)); saveFileShareOperand.text = string.Format(saveFileShareOperand.text, (int)(instance.cInstance.operandID + 2)); saveFileShareAccuracy.text = string.Format(saveFileShareAccuracy.text, instance.accuracy.ToString("f1")); string meanTime = (instance.timeCost / instance.qInstancList.Count).ToString("f1"); saveFileShareMeanTime.text = string.Format(saveFileShareMeanTime.text, meanTime); }
void Start() { id = GuiFrameID.SaveFileFrame; Init(); content = RecordController.Instance.CurSaveFileInstance; saveFileDetailTime.text = string.Format(saveFileDetailTime.text, content.timeCost.ToString("f1")); saveFileDetailAmount.text = string.Format(saveFileDetailAmount.text, content.qInstancList.Count); saveFileDetailAccuracy.text = string.Format(saveFileDetailAccuracy.text, content.accuracy.ToString("f1")); achievementBtn.SetActive(GuiController.Instance.LastGUI != GuiFrameID.ShareFrame && !string.IsNullOrEmpty(content.achievementName)); uploadDataBtn.SetActive(!content.isUpload); isBluetooth = !string.IsNullOrEmpty(content.opponentName); commonResult.SetActive(!isBluetooth); bluetoothResult.SetActive(isBluetooth); if (isBluetooth) { saveFileOwnName.text = GameManager.Instance.UserName; saveFileOtherName.text = content.opponentName; } onlyWrongList = content.qInstancList.FindAll(FindWrong); onlyWrong = false; RefreshSettlementGrid(); CommonTool.GuiVerticalMove(saveFileDetailBg, Screen.height, MoveID.LeftOrDown, canvasGroup, true); }
public void RefreshRecord(SaveFileInstance instance) { string toSave = JsonUtility.ToJson(instance); SaveRecord(toSave, instance.fileName); }