1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-18 03:43:22 +08:00

Fix repetition nerf not updating the counts

This commit is contained in:
StanR 2024-09-19 19:15:54 +05:00
parent 202364be5e
commit e986a7dfe1

View File

@ -4,7 +4,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using osu.Framework.Lists;
using osu.Game.Rulesets.Difficulty.Preprocessing; using osu.Game.Rulesets.Difficulty.Preprocessing;
using osu.Game.Rulesets.Osu.Difficulty.Preprocessing; using osu.Game.Rulesets.Osu.Difficulty.Preprocessing;
using osu.Game.Rulesets.Osu.Objects; using osu.Game.Rulesets.Osu.Objects;
@ -113,6 +112,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
if (islandCount != default) if (islandCount != default)
{ {
int countIndex = islandCounts.IndexOf(islandCount);
// only add island to island counts if they're going one after another // only add island to island counts if they're going one after another
if (previousIsland.Equals(island)) if (previousIsland.Equals(island))
islandCount.Count++; islandCount.Count++;
@ -120,6 +121,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
// repeated island (ex: triplet -> triplet) // repeated island (ex: triplet -> triplet)
double power = logistic(island.Delta, 4, 0.165, 10); double power = logistic(island.Delta, 4, 0.165, 10);
effectiveRatio *= Math.Min(3.0 / islandCount.Count, Math.Pow(1.0 / islandCount.Count, power)); effectiveRatio *= Math.Min(3.0 / islandCount.Count, Math.Pow(1.0 / islandCount.Count, power));
islandCounts[countIndex] = (islandCount.Island, islandCount.Count);
} }
else else
{ {