Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -344,5 +344,6 @@ FodyWeavers.xsd

.idea/.idea.osu.Desktop/.idea/misc.xml
.idea/.idea.osu.Android/.idea/deploymentTargetDropDown.xml

PerformanceCalculator/cache/
/.idea/.idea.osu.Tools/.idea/indexLayout.xml
/.idea/.idea.osu.Tools/.idea/vcs.xml
/PerformanceCalculator/cache
20 changes: 10 additions & 10 deletions PerformanceCalculator/Difficulty/LegacyScoreConversionCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,32 +32,32 @@ public class LegacyScoreConversionCommand
public int Ruleset { get; }

[UsedImplicitly]
[Option(CommandOptionType.MultipleValue, Template = "-m|--m <mod>", Description = "One for each mod. The mods to compute the difficulty with."
+ "Values: hr, dt, hd, fl, ez, 4k, 5k, etc...")]
[Option(CommandOptionType.MultipleValue, Template = "-m|--mods <mod>", Description = "One for each mod. The mods to compute the difficulty with."
+ "Values: hr, dt, hd, fl, ez, 4k, 5k, etc...")]
public string[] Mods { get; } = [];

[Option(CommandOptionType.SingleValue, Template = "-T|--greats", Description = "Number of greats.")]
[Option(CommandOptionType.SingleValue, Template = "--greats", Description = "Number of greats.")]
public int Greats { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-D|--goods", Description = "Number of goods.")]
[Option(CommandOptionType.SingleValue, Template = "--goods", Description = "Number of goods.")]
public int Goods { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-M|--mehs", Description = "Number of mehs.")]
[Option(CommandOptionType.SingleValue, Template = "--mehs", Description = "Number of mehs.")]
public int Mehs { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-X|--misses", Description = "Number of misses.")]
[Option(CommandOptionType.SingleValue, Template = "--misses", Description = "Number of misses.")]
public int Misses { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-G|--geki", Description = "Number of gekis.")]
[Option(CommandOptionType.SingleValue, Template = "--geki", Description = "Number of gekis.")]
public int Gekis { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-K|--katu", Description = "Number of katus.")]
[Option(CommandOptionType.SingleValue, Template = "--katu", Description = "Number of katus.")]
public int Katus { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-c|--max-combo", Description = "Max combo achieved by user.")]
[Option(CommandOptionType.SingleValue, Template = "--max-combo", Description = "Max combo achieved by user.")]
public int MaxCombo { get; set; }

[Option(CommandOptionType.SingleValue, Template = "-s|--score", Description = "Total score achieved by user.")]
[Option(CommandOptionType.SingleValue, Template = "--score", Description = "Total score achieved by user.")]
public int TotalScore { get; set; }

[UsedImplicitly]
Expand Down
13 changes: 6 additions & 7 deletions PerformanceCalculator/PerformanceCalculator.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,14 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>12.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Alba.CsConsoleFormat" Version="1.0.0" />
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.1.1" />
<PackageReference Include="ppy.osu.Game" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2026.303.0" />
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="5.0.1" />
<PackageReference Include="ppy.osu.Game" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2026.317.0" />
</ItemGroup>
</Project>
8 changes: 4 additions & 4 deletions PerformanceCalculator/Simulate/CatchSimulateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ namespace PerformanceCalculator.Simulate
public class CatchSimulateCommand : SimulateCommand
{
[UsedImplicitly]
[Option(Template = "-c|--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
[Option(Template = "--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
public override int? Combo { get; }

[UsedImplicitly]
[Option(Template = "-C|--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
[Option(Template = "--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
public override double PercentCombo { get; } = 100;

[UsedImplicitly]
[Option(Template = "-T|--tiny-droplets <tinys>", Description = "Number of tiny droplets hit. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--tiny-droplets <tinys>", Description = "Number of tiny droplets hit. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Mehs { get; }

[UsedImplicitly]
[Option(Template = "-D|--droplets <droplets>", Description = "Number of droplets hit. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--droplets <droplets>", Description = "Number of droplets hit. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Goods { get; }

public override Ruleset Ruleset => new CatchRuleset();
Expand Down
8 changes: 4 additions & 4 deletions PerformanceCalculator/Simulate/ManiaSimulateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ namespace PerformanceCalculator.Simulate
public class ManiaSimulateCommand : SimulateCommand
{
[UsedImplicitly]
[Option(Template = "-M|--mehs <mehs>", Description = "Number of mehs. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--mehs <mehs>", Description = "Number of mehs. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Mehs { get; }

[UsedImplicitly]
[Option(Template = "-G|--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Goods { get; }

[UsedImplicitly]
[Option(Template = "-O|--oks <oks>", Description = "Number of oks. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--oks <oks>", Description = "Number of oks. Will override accuracy if used. Otherwise is automatically calculated.")]
private int? oks { get; }

[UsedImplicitly]
[Option(Template = "-T|--greats <greats>", Description = "Number of greats. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--greats <greats>", Description = "Number of greats. Will override accuracy if used. Otherwise is automatically calculated.")]
private int? greats { get; }

public override Ruleset Ruleset => new ManiaRuleset();
Expand Down
12 changes: 6 additions & 6 deletions PerformanceCalculator/Simulate/OsuSimulateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,27 @@ namespace PerformanceCalculator.Simulate
public class OsuSimulateCommand : SimulateCommand
{
[UsedImplicitly]
[Option(Template = "-M|--mehs <mehs>", Description = "Number of mehs. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--mehs <mehs>", Description = "Number of mehs. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Mehs { get; }

[UsedImplicitly]
[Option(Template = "-G|--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Goods { get; }

[UsedImplicitly]
[Option(Template = "-c|--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
[Option(Template = "--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
public override int? Combo { get; }

[UsedImplicitly]
[Option(Template = "-C|--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
[Option(Template = "--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
public override double PercentCombo { get; } = 100;

[UsedImplicitly]
[Option(Template = "-L|--large-tick-misses <misses>", Description = "Number of large tick misses. Defaults to 0.")]
[Option(Template = "--large-tick-misses <misses>", Description = "Number of large tick misses. Defaults to 0.")]
private int largeTickMisses { get; }

[UsedImplicitly]
[Option(Template = "-S|--slider-tail-misses <misses>", Description = "Number of slider tail misses. Defaults to 0.")]
[Option(Template = "--slider-tail-misses <misses>", Description = "Number of slider tail misses. Defaults to 0.")]
private int sliderTailMisses { get; }

public override Ruleset Ruleset => new OsuRuleset();
Expand Down
6 changes: 3 additions & 3 deletions PerformanceCalculator/Simulate/TaikoSimulateCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ namespace PerformanceCalculator.Simulate
public class TaikoSimulateCommand : SimulateCommand
{
[UsedImplicitly]
[Option(Template = "-G|--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
[Option(Template = "--goods <goods>", Description = "Number of goods. Will override accuracy if used. Otherwise is automatically calculated.")]
public override int? Goods { get; }

[UsedImplicitly]
[Option(Template = "-c|--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
[Option(Template = "--combo <combo>", Description = "Maximum combo during play. Defaults to beatmap maximum.")]
public override int? Combo { get; }

[UsedImplicitly]
[Option(Template = "-C|--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
[Option(Template = "--percent-combo <combo>", Description = "Percentage of beatmap maximum combo achieved. Alternative to combo option. Enter as decimal 0-100.")]
public override double PercentCombo { get; } = 100;

public override Ruleset Ruleset => new TaikoRuleset();
Expand Down
11 changes: 5 additions & 6 deletions PerformanceCalculatorGUI/PerformanceCalculatorGUI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ppy.osu.Game" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2026.303.0" />
<PackageReference Include="ppy.osu.Game" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2026.317.0" />
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2026.317.0" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion PerformanceCalculatorGUI/Screens/ProfileScreen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ private void calculateProfiles(string[] usernames)
{
var pinnedScores = await apiManager.GetJsonFromApi<List<SoloScoreInfo>>($"users/{player.OnlineID}/scores/pinned?mode={ruleset.Value.ShortName}&limit={max_api_scores_in_one_query}")
.ConfigureAwait(false);
apiScores = apiScores.Concat(pinnedScores.Where(p => !apiScores.Any(b => b.ID == p.ID)).ToArray()).ToList();
apiScores = apiScores.Concat(pinnedScores.Where(p => apiScores.All(b => b.ID != p.ID)).ToArray()).ToList();
}

foreach (var score in apiScores)
Expand Down
Loading