/// <summary> /// 使用json填充一个OnlineBestRecord对象,并指定模式 /// </summary> /// <param name="json"></param> /// <param name="mode"></param> public OnlineBestRecord(string json, OsuGameMode mode) { Mode = mode; var jobj = (JObject)JsonConvert.DeserializeObject(json); int.TryParse(jobj["countgeki"].ToString(), out _countgeki); int.TryParse(jobj["countkatu"].ToString(), out _countkatu); int.TryParse(jobj["count300"].ToString(), out _count300); int.TryParse(jobj["count100"].ToString(), out _count100); int.TryParse(jobj["count50"].ToString(), out _count50); int.TryParse(jobj["countmiss"].ToString(), out _countmiss); int.TryParse(jobj["maxcombo"].ToString(), out _maxcombo); int.TryParse(jobj["score"].ToString(), out _score); int.TryParse(jobj["user_id"].ToString(), out _userId); int.TryParse(jobj["perfect"].ToString(), out _perfect); int.TryParse(jobj["enabled_mods"].ToString(), out _mods); int.TryParse(jobj["beatmap_id"].ToString(), out _beatmapId); int.TryParse(jobj["score_id"].ToString(), out _scoreId); double.TryParse(jobj["pp"].ToString(), out _pp); _date = jobj["date"].ToString(); Rank = jobj["rank"].ToString(); Mods = new OsuGameModConverter().Convert(_mods, out _); Accuracy = AccCalc(mode); DateTime.TryParse(_date, out _d); if (_perfect == 1) { Perfect = true; } else if (_perfect == 0) { Perfect = false; } }
/// <summary> /// 初始化一个新的OnlineBestRecord实例 /// </summary> public OnlineBestRecord() { Perfect = false; _d = DateTime.MinValue; _beatmapId = 0; _scoreId = 0; _score = 0; _pp = 0.0; WeightedPP = 0.0; _maxcombo = 0; _count300 = 0; _count100 = 0; _count50 = 0; _countgeki = 0; _countkatu = 0; _countmiss = 0; _perfect = 0; _userId = 0; _date = "0-0-0 0:0:0"; Mods = new OsuGameModConverter().Convert(_mods, out _); Rank = "?"; }