From b027d0d3b43230f1ca3ac5e7e832905657a4dcb8 Mon Sep 17 00:00:00 2001 From: smoogipooo Date: Mon, 3 Apr 2017 10:28:03 +0900 Subject: [PATCH] Changing duration is wrong, add HitMultiplier. I don't know if this is the best way to handle this/if there's a better way, but this seems pretty sane? This could be expanded on in the future to make swells harder/require more hits with a smaller duration. --- osu.Game.Modes.Taiko/Beatmaps/TaikoBeatmapConverter.cs | 3 ++- osu.Game.Modes.Taiko/Objects/Swell.cs | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/osu.Game.Modes.Taiko/Beatmaps/TaikoBeatmapConverter.cs b/osu.Game.Modes.Taiko/Beatmaps/TaikoBeatmapConverter.cs index cc361628a3..cc5e394987 100644 --- a/osu.Game.Modes.Taiko/Beatmaps/TaikoBeatmapConverter.cs +++ b/osu.Game.Modes.Taiko/Beatmaps/TaikoBeatmapConverter.cs @@ -70,7 +70,8 @@ namespace osu.Game.Modes.Taiko.Beatmaps Sample = original.Sample, IsStrong = strong, - EndTime = original.StartTime + endTimeData.Duration * bash_convert_factor + EndTime = original.StartTime + endTimeData.Duration, + HitMultiplier = bash_convert_factor }; } diff --git a/osu.Game.Modes.Taiko/Objects/Swell.cs b/osu.Game.Modes.Taiko/Objects/Swell.cs index 4cbb5904c7..a2d52d1358 100644 --- a/osu.Game.Modes.Taiko/Objects/Swell.cs +++ b/osu.Game.Modes.Taiko/Objects/Swell.cs @@ -14,6 +14,12 @@ namespace osu.Game.Modes.Taiko.Objects public double Duration => EndTime - StartTime; + /// + /// The multiplier for cases in which the number of required hits by a Swell is not + /// dependent on solely the overall difficulty and the duration of the swell. + /// + public double HitMultiplier { get; set; } = 1; + /// /// The number of hits required to complete the swell successfully. /// @@ -24,7 +30,7 @@ namespace osu.Game.Modes.Taiko.Objects base.ApplyDefaults(timing, difficulty); double spinnerRotationRatio = BeatmapDifficulty.DifficultyRange(difficulty.OverallDifficulty, 3, 5, 7.5); - RequiredHits = (int)Math.Max(1, Duration / 1000f * spinnerRotationRatio); + RequiredHits = (int)Math.Max(1, Duration / 1000f * spinnerRotationRatio * HitMultiplier); } } } \ No newline at end of file