private void InitLiveTokens() { liveTokens["acc"] = new TokenWithFormat(_rawData.Play.Acc, TokenType.Live, "{0:0.00}", 0d); liveTokens["300"] = new TokenWithFormat(_rawData.Play.C300, TokenType.Live, "{0}", (ushort)0); liveTokens["100"] = new TokenWithFormat(_rawData.Play.C100, TokenType.Live, "{0}", (ushort)0); liveTokens["50"] = new TokenWithFormat(_rawData.Play.C50, TokenType.Live, "{0}", (ushort)0); liveTokens["miss"] = new TokenWithFormat(_rawData.Play.CMiss, TokenType.Live, "{0}", (ushort)0); liveTokens["time"] = new TokenWithFormat(0d, TokenType.Live, "{0:0.00}", 0d); liveTokens["combo"] = new TokenWithFormat(_rawData.Play.Combo, TokenType.Live, "{0}", (ushort)0); liveTokens["CurrentMaxCombo"] = new TokenWithFormat(_rawData.Play.MaxCombo, TokenType.Live, "{0}", (ushort)0); liveTokens["PlayerHp"] = new TokenWithFormat(_rawData.Play.Hp, TokenType.Live, "{0:0.00}", 0d); liveTokens["PpIfMapEndsNow"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.PpIfMapEndsNow].Current, TokenType.Live, "{0:0.00}", 0d); liveTokens["AimPpIfMapEndsNow"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.AimPpIfMapEndsNow].Current, TokenType.Live, "{0:0.00}", 0d); liveTokens["SpeedPpIfMapEndsNow"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.SpeedPpIfMapEndsNow].Current, TokenType.Live, "{0:0.00}", 0d); liveTokens["AccPpIfMapEndsNow"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.AccPpIfMapEndsNow].Current, TokenType.Live, "{0:0.00}", 0d); liveTokens["StrainPpIfMapEndsNow"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.StrainPpIfMapEndsNow].Current, TokenType.Live, "{0:0.00}", 0d); liveTokens["PpIfRestFced"] = new TokenWithFormat(InterpolatedValues[InterpolatedValueName.PpIfRestFced].Current, TokenType.Live, "{0:0.00}", 0d); }
public Tokens GetMapReplacements(MapSearchResult map) { var ret = new Tokens { { "GameMode", new Token(null) }, { "MaxCombo", new Token(null) }, { "SSPP", new Token(null) }, { "99.9PP", new Token(null) }, { "99PP", new Token(null) }, { "98PP", new Token(null) }, { "95PP", new Token(null) }, { "90PP", new Token(null) }, { "1 000 000PP", new Token(null) }, { "990 000PP", new Token(null) }, { "950 000PP", new Token(null) }, { "900 000PP", new Token(null) }, { "800 000PP", new Token(null) }, { "700 000PP", new Token(null) }, { "600 000PP", new Token(null) }, { "mMod", new Token(null) }, { "mSSPP", new Token(null) }, { "m99.9PP", new Token(null) }, { "m99PP", new Token(null) }, { "m98PP", new Token(null) }, { "m95PP", new Token(null) }, { "m90PP", new Token(null) }, { "m1 000 000PP", new Token(null) }, { "m990 000PP", new Token(null) }, { "m950 000PP", new Token(null) }, { "m900 000PP", new Token(null) }, { "m800 000PP", new Token(null) }, { "m700 000PP", new Token(null) }, { "m600 000PP", new Token(null) }, }; if (!map.FoundBeatmaps || !map.BeatmapsFound[0].IsValidBeatmap(_settings, out var mapLocation) ) { return(ret); } var workingBeatmap = new ProcessorWorkingBeatmap(mapLocation); var playMode = (PlayMode)PpCalculatorHelpers.GetRulesetId(workingBeatmap.RulesetID, map.PlayMode.HasValue ? (int?)map.PlayMode : null); _ppCalculator = PpCalculatorHelpers.GetPpCalculator((int)playMode, mapLocation, _ppCalculator); if (_ppCalculator == null) { return(ret);//Ctb not supported :( } if (playMode == PlayMode.OsuMania) { _ppCalculator.Score = 1_000_000; } else { _ppCalculator.Score = 0; } _ppCalculator.Mods = null; ret["GameMode"] = new TokenWithFormat(playMode.ToString()); string mods = ""; if (playMode == PlayMode.OsuMania) { ret["1 000 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 1_000_000), format: PpFormat); ret["990 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 990_000), format: PpFormat); ret["950 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 950_000), format: PpFormat); ret["900 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 900_000), format: PpFormat); ret["800 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 800_000), format: PpFormat); ret["700 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 700_000), format: PpFormat); ret["600 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 600_000), format: PpFormat); } else { ret["SSPP"] = new TokenWithFormat(GetPp(_ppCalculator, 100d), format: PpFormat); ret["99.9PP"] = new TokenWithFormat(GetPp(_ppCalculator, 99.9d), format: PpFormat); ret["99PP"] = new TokenWithFormat(GetPp(_ppCalculator, 99d), format: PpFormat); ret["98PP"] = new TokenWithFormat(GetPp(_ppCalculator, 98d), format: PpFormat); ret["95PP"] = new TokenWithFormat(GetPp(_ppCalculator, 95d), format: PpFormat); ret["90PP"] = new TokenWithFormat(GetPp(_ppCalculator, 90d), format: PpFormat); } ret["MaxCombo"] = new TokenWithFormat(_ppCalculator.GetMaxCombo()); string modsStr; if (map.Action == OsuStatus.Playing || map.Action == OsuStatus.Watching) { mods = map.Mods?.WorkingMods ?? ""; modsStr = map.Mods?.ShownMods ?? ""; _lastShortMods = mods; _lastModsStr = modsStr; } else { mods = _lastShortMods; modsStr = _lastModsStr; } ret["mMod"] = new Token(modsStr); if (playMode == PlayMode.OsuMania) { ret["m1 000 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 1_000_000), format: PpFormat); ret["m990 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 990_000), format: PpFormat); ret["m950 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 950_000), format: PpFormat); ret["m900 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 900_000), format: PpFormat); ret["m800 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 800_000), format: PpFormat); ret["m700 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 700_000), format: PpFormat); ret["m600 000PP"] = new TokenWithFormat(GetPp(_ppCalculator, 0, mods, 600_000), format: PpFormat); } else { ret["mSSPP"] = new TokenWithFormat(GetPp(_ppCalculator, 100d, mods), format: PpFormat); ret["m99.9PP"] = new TokenWithFormat(GetPp(_ppCalculator, 99.9d, mods), format: PpFormat); ret["m99PP"] = new TokenWithFormat(GetPp(_ppCalculator, 99d, mods), format: PpFormat); ret["m98PP"] = new TokenWithFormat(GetPp(_ppCalculator, 98d, mods), format: PpFormat); ret["m95PP"] = new TokenWithFormat(GetPp(_ppCalculator, 95d, mods), format: PpFormat); ret["m90PP"] = new TokenWithFormat(GetPp(_ppCalculator, 90d, mods), format: PpFormat); } return(ret); }