mirror of
https://github.com/ppy/osu-tools.git
synced 2025-06-07 23:07:01 +09:00
Merge branch 'master_ppy' into fix_simulate_mania
This commit is contained in:
commit
3ab733da4c
4 changed files with 39 additions and 18 deletions
|
@ -8,10 +8,10 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Alba.CsConsoleFormat" Version="1.0.0" />
|
||||
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.1.1" />
|
||||
<PackageReference Include="ppy.osu.Game" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2025.227.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ppy.osu.Game" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2025.220.0" />
|
||||
<PackageReference Include="ppy.osu.Game" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Osu" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Taiko" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Catch" Version="2025.227.0" />
|
||||
<PackageReference Include="ppy.osu.Game.Rulesets.Mania" Version="2025.227.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Audio.Track;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
|
@ -18,8 +19,10 @@ using osu.Game.Rulesets.Mods;
|
|||
using osu.Game.Rulesets.Osu.Difficulty.Evaluators;
|
||||
using osu.Game.Rulesets.Osu.Difficulty.Preprocessing;
|
||||
using osu.Game.Rulesets.Osu.Objects;
|
||||
using osu.Game.Rulesets.Scoring;
|
||||
using osu.Game.Rulesets.Taiko.Difficulty.Evaluators;
|
||||
using osu.Game.Rulesets.Taiko.Difficulty.Preprocessing;
|
||||
using osu.Game.Rulesets.Taiko.Objects;
|
||||
using osuTK;
|
||||
|
||||
namespace PerformanceCalculatorGUI.Screens.ObjectInspection
|
||||
|
@ -29,6 +32,9 @@ namespace PerformanceCalculatorGUI.Screens.ObjectInspection
|
|||
[Resolved]
|
||||
private Bindable<IReadOnlyList<Mod>> appliedMods { get; set; }
|
||||
|
||||
[Resolved]
|
||||
private Track track { get; set; }
|
||||
|
||||
private SpriteText hitObjectTypeText;
|
||||
|
||||
private FillFlowContainer flowContainer;
|
||||
|
@ -126,20 +132,21 @@ namespace PerformanceCalculatorGUI.Screens.ObjectInspection
|
|||
{
|
||||
new ObjectInspectorDifficultyValue("Position", (hitObject.BaseObject as OsuHitObject)!.StackedPosition),
|
||||
new ObjectInspectorDifficultyValue("Strain Time", hitObject.StrainTime),
|
||||
new ObjectInspectorDifficultyValue("Doubletapness", hitObject.GetDoubletapness((OsuDifficultyHitObject)hitObject.Next(0))),
|
||||
new ObjectInspectorDifficultyValue("Lazy Jump Dist", hitObject.LazyJumpDistance),
|
||||
new ObjectInspectorDifficultyValue("Min Jump Dist", hitObject.MinimumJumpDistance),
|
||||
new ObjectInspectorDifficultyValue("Min Jump Time", hitObject.MinimumJumpTime),
|
||||
|
||||
new ObjectInspectorDifficultyValue("Aim Difficulty", AimEvaluator.EvaluateDifficultyOf(hitObject, true)),
|
||||
new ObjectInspectorDifficultyValue("Aim Difficulty (w/o sliders)", AimEvaluator.EvaluateDifficultyOf(hitObject, false)),
|
||||
new ObjectInspectorDifficultyValue("Speed Difficulty", SpeedEvaluator.EvaluateDifficultyOf(hitObject)),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Diff", RhythmEvaluator.EvaluateDifficultyOf(hitObject)),
|
||||
new ObjectInspectorDifficultyValue("Speed Difficulty", SpeedEvaluator.EvaluateDifficultyOf(hitObject, appliedMods.Value)),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Diff", osu.Game.Rulesets.Osu.Difficulty.Evaluators.RhythmEvaluator.EvaluateDifficultyOf(hitObject)),
|
||||
new ObjectInspectorDifficultyValue(hidden ? "FLHD Difficulty" : "Flashlight Diff", FlashlightEvaluator.EvaluateDifficultyOf(hitObject, hidden)),
|
||||
});
|
||||
|
||||
if (hitObject.Angle is not null)
|
||||
flowContainer.Add(new ObjectInspectorDifficultyValue("Angle", double.RadiansToDegrees(hitObject.Angle.Value)));
|
||||
|
||||
flowContainer.Add(new ObjectInspectorDifficultyValue("Lazy Jump Dist", hitObject.LazyJumpDistance));
|
||||
flowContainer.Add(new ObjectInspectorDifficultyValue("Min Jump Dist", hitObject.MinimumJumpDistance));
|
||||
flowContainer.Add(new ObjectInspectorDifficultyValue("Min Jump Time", hitObject.MinimumJumpTime));
|
||||
|
||||
if (hitObject.BaseObject is Slider)
|
||||
{
|
||||
flowContainer.AddRange(new Drawable[]
|
||||
|
@ -159,14 +166,27 @@ namespace PerformanceCalculatorGUI.Screens.ObjectInspection
|
|||
|
||||
private void drawTaikoValues(TaikoDifficultyHitObject hitObject)
|
||||
{
|
||||
double rhythmDifficulty =
|
||||
osu.Game.Rulesets.Taiko.Difficulty.Evaluators.RhythmEvaluator.EvaluateDifficultyOf(hitObject, 2 * hitObject.BaseObject.HitWindows.WindowFor(HitResult.Great) / track.Rate);
|
||||
|
||||
flowContainer.AddRange(new[]
|
||||
{
|
||||
new ObjectInspectorDifficultyValue("Delta Time", hitObject.DeltaTime),
|
||||
new ObjectInspectorDifficultyValue("Effective BPM", hitObject.EffectiveBPM),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Ratio", hitObject.RhythmData.Ratio),
|
||||
new ObjectInspectorDifficultyValue("Colour Difficulty", ColourEvaluator.EvaluateDifficultyOf(hitObject)),
|
||||
new ObjectInspectorDifficultyValue("Stamina Difficulty", StaminaEvaluator.EvaluateDifficultyOf(hitObject)),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Difficulty", hitObject.Rhythm.Difficulty),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Ratio", hitObject.Rhythm.Ratio),
|
||||
new ObjectInspectorDifficultyValue("Rhythm Difficulty", rhythmDifficulty),
|
||||
});
|
||||
|
||||
if (hitObject.BaseObject is Hit hit)
|
||||
{
|
||||
flowContainer.AddRange(new[]
|
||||
{
|
||||
new ObjectInspectorDifficultyValue($"Mono ({hit.Type}) Index", hitObject.MonoIndex),
|
||||
new ObjectInspectorDifficultyValue("Note Index", hitObject.NoteIndex),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void drawCatchValues(CatchDifficultyHitObject hitObject)
|
||||
|
|
|
@ -87,6 +87,7 @@ namespace PerformanceCalculatorGUI.Screens.ObjectInspection
|
|||
clock = new EditorClock(playableBeatmap, beatDivisor);
|
||||
clock.ChangeSource(processorBeatmap.Track);
|
||||
dependencies.CacheAs(clock);
|
||||
dependencies.CacheAs(processorBeatmap.Track);
|
||||
|
||||
editorBeatmap = new EditorBeatmap(playableBeatmap);
|
||||
dependencies.CacheAs(editorBeatmap);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue