Skip to content
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

Cognition difficulty calculation rework: High AR part #28112

Open
wants to merge 112 commits into
base: master
Choose a base branch
from

Conversation

Givikap120
Copy link
Contributor

@Givikap120 Givikap120 commented May 5, 2024

For review

Rework on huis:
https://pp.huismetbenen.nl/rankings/players/cognition

Doc (info about rework in the second part):
https://docs.google.com/document/d/1bp_LQpsVaX1VUL2wfIo7aoeTFPHbpBuO

The general path of Skills summing:

  • Low AR + High AR -> AR
  • AR + Flashlight -> FlashlightAR
  • FlashlightAR + Hidden -> Cognition
  • Cognition -> CappedCognition
  • Aim + Speed -> Mechanical
  • Mechanical + CappedCognition + Accuracy -> Total

Refactoring changes are the same for all 3 PRs.

Refactoring Difficulty Calculator changes:

  • Made difficulty_multplier public
  • Moved LP sum power value to the constant SUM_POWER
  • Moved difficulty to performance formulas to OsuStrainSkill.DifficultyToPerformance and Flashlight.DifficultyToPerformance functions
  • Changed preempt formula to use IBeatmapDifficultyInfo.InverseDifficultyRange

Refactoring Performance Calculator changes:

  • Used OsuDifficultyCalculator.SUM_POWER for LP summing
  • Moved difficulty to performance formulas to OsuStrainSkill.DifficultyToPerformance and Flashlight.DifficultyToPerformance functions

Osu Strain Skill changes:

  • Moved Strain Decay function here
  • Added DifficultyToPerformance function

Aim changes:

  • Changed variables accessibility to protected to allow inheritance

Speed changes:

  • Changed variables accessibility to protected to allow inheritance
  • Now it's using RhythmDifficulty field instead of RhythmEvaluator class

Flashlight changes:

  • Added HiddenFlashlight class to calculate FLHD regardless of active mods
  • Added DifficultyToPerformance function
  • Reduces multiplier to account for the fact that it's not longer LP-summed

Difficulty Calculator changes:

  • Added ReadingDifficultyHighAR and HiddenFlashlightDifficulty difficulty attributes
  • Included those attributes into the Star Rating calculation

Performance Calculator changes:

  • Changed Flashlight performance field to the Cognition
  • Added AdjustCognitionPerformance function that limits cognition performance by MechanicalPerformance + HiddenFlashlightPerformance
  • Added Always use HD parameter into computeFlashlightValue that's switching between normal calculation and calculation assuming that HD is always enabled
  • Added ComputePerfectFlashlightValue function to compute flashlight value with length bonus (used for capping Cognition in DifficultyCalculator)
  • Removed High AR bonus
  • Added ReadingDifficultyHighAR performance calculation
  • Added CalculateDefaultLengthBonus function

Osu Hit Object changes:

  • Added TimeFadeInRaw to account for the fact that HD changes TimeFadeIn when applied

Osu Difficulty Hit Object changes:

  • Added RhythmDifficulty field to avoid calculating rhythm multiple times
  • Added AnglePredictability field (self-explanatory)
  • Added Preempt field
  • Added FollowLineTime field to account for the fact that follow lines make high AR easier
  • Added ClockRate field to adjust time-related OsuHitObject fields

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants