-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pp Refactoring: Reworking StrainSkill
#29290
base: master
Are you sure you want to change the base?
Conversation
StrainSkill
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
few things that stand out to me initially as issues, but overall I think the direction of this is fine?
@smoogipoo can we get a sheet for all rulesets to ensure there's no value differences please |
Will need giga conflict resolution here before that |
My main question is do we actually need to remove |
protected override double StrainValueOf(DifficultyHitObject current) => SpeedEvaluator.EvaluateDifficultyOf(current); | ||
|
||
protected override double StrainValueAt(DifficultyHitObject current) | ||
{ | ||
currentStrain *= strainDecay(((OsuDifficultyHitObject)current).StrainTime); | ||
currentStrain += SpeedEvaluator.EvaluateDifficultyOf(current) * skillMultiplier; | ||
CurrentStrain *= StrainDecay(((OsuDifficultyHitObject)current).StrainTime); | ||
CurrentStrain += StrainValueOf(current) * SkillMultiplier; | ||
|
||
currentRhythm = RhythmEvaluator.EvaluateDifficultyOf(current); | ||
|
||
double totalStrain = currentStrain * currentRhythm; | ||
double totalStrain = CurrentStrain * currentRhythm; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
worth noting this entire thing becomes a little more confusing to read with these changes, but it's not really at fault of this PR - rhythm really should be entirely separate or atleast additive to speed so that we don't need to do this stupid solution. not a blocker, just speaking my mind
what is the point of strain skill without strain decay? also, if you need to have 0 decay - you can just override StrainDecayBase to be 1.0 or 0.0 (just as taiko rhythm and mania strain already do) |
!diffcalc |
!diffcalc |
!diffcalc |
!diffcalc |
Difficulty calculation failed: https://github.com/ppy/osu/actions/runs/11772325316 |
oh, there's conflicts again |
The main goal of this PR is to remove unnecessary code duplication of strain logic, making it much simpler and easier to understand.
StrainDecaySkill
is removed. The logic ofStrainDecaySkill
is moved to theStrainSkill
Aim
andFlashlight
DecayWeight
toSumDecay
to avoid confusion withStrainDecayBase
, what is entirely different constant.