Parameter tweaks, change repetition interval definition

This commit is contained in:
vun 2022-06-19 17:14:31 +08:00
parent 319d0aa036
commit da1d99d5b6
3 changed files with 10 additions and 7 deletions

View File

@ -18,18 +18,18 @@ namespace osu.Game.Rulesets.Taiko.Difficulty.Evaluators
TaikoDifficultyHitObjectColour colour = taikoCurrent.Colour; TaikoDifficultyHitObjectColour colour = taikoCurrent.Colour;
if (colour == null) return 0; if (colour == null) return 0;
double objectStrain = 2.1; double objectStrain = 1.85;
if (colour.Delta) if (colour.Delta)
{ {
objectStrain *= sigmoid(colour.DeltaRunLength, 4, 4) * 0.5 + 0.5; objectStrain *= sigmoid(colour.DeltaRunLength, 3, 3) * 0.5 + 0.5;
} }
else else
{ {
objectStrain *= sigmoid(colour.DeltaRunLength, 2, 2) * 0.5 + 0.5; objectStrain *= sigmoid(colour.DeltaRunLength, 2, 2) * 0.5 + 0.5;
} }
objectStrain *= -sigmoid(colour.RepetitionInterval, 8, 8) * 0.5 + 0.5; objectStrain *= -sigmoid(colour.RepetitionInterval, 1, 8); // * 0.5 + 0.5;
// Console.WriteLine($"{current.StartTime},{colour.Delta},{colour.RepetitionInterval},{objectStrain}"); // Console.WriteLine($"{current.StartTime},{colour.Delta},{colour.RepetitionInterval},{objectStrain}");
return objectStrain; return objectStrain;
} }

View File

@ -28,6 +28,8 @@ namespace osu.Game.Rulesets.Taiko.Difficulty.Preprocessing
/// </summary> /// </summary>
public int RepetitionInterval { get; private set; } public int RepetitionInterval { get; private set; }
public TaikoDifficultyHitObjectColour repeatedColour { get; private set; }
/// <summary> /// <summary>
/// Get the <see cref="TaikoDifficultyHitObjectColour"/> instance for the given hitObject. This is implemented /// Get the <see cref="TaikoDifficultyHitObjectColour"/> instance for the given hitObject. This is implemented
/// as a static function instead of constructor to allow for reusing existing instances. /// as a static function instead of constructor to allow for reusing existing instances.
@ -74,14 +76,14 @@ namespace osu.Game.Rulesets.Taiko.Difficulty.Preprocessing
while (other != null && interval < max_repetition_interval) while (other != null && interval < max_repetition_interval)
{ {
interval += other.DeltaRunLength;
if (other.Delta == Delta && other.DeltaRunLength == DeltaRunLength) if (other.Delta == Delta && other.DeltaRunLength == DeltaRunLength)
{ {
RepetitionInterval = Math.Min(interval, max_repetition_interval); RepetitionInterval = Math.Min(interval, max_repetition_interval);
repeatedColour = other;
return; return;
} }
interval += other.DeltaRunLength;
other = other.previous; other = other.previous;
} }

View File

@ -4,14 +4,15 @@ using System.Linq;
using osu.Game.Rulesets.Difficulty.Preprocessing; using osu.Game.Rulesets.Difficulty.Preprocessing;
using osu.Game.Rulesets.Difficulty.Skills; using osu.Game.Rulesets.Difficulty.Skills;
using osu.Game.Rulesets.Mods; using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.Taiko.Difficulty.Evaluators;
namespace osu.Game.Rulesets.Taiko.Difficulty.Skills namespace osu.Game.Rulesets.Taiko.Difficulty.Skills
{ {
public class Peaks : Skill public class Peaks : Skill
{ {
private const double rhythm_skill_multiplier = 0.32 * final_multiplier; private const double rhythm_skill_multiplier = 0.32 * final_multiplier;
private const double colour_skill_multiplier = 0.37 * final_multiplier; private const double colour_skill_multiplier = 0.33 * final_multiplier;
private const double stamina_skill_multiplier = 0.37 * final_multiplier; private const double stamina_skill_multiplier = 0.4 * final_multiplier;
private const double final_multiplier = 0.047; private const double final_multiplier = 0.047;