@rian8337/osu-difficulty-calculator 4.0.0-beta.14 → 4.0.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/evaluators/base/AimEvaluator.ts","../src/preprocessing/DifficultyHitObject.ts","../src/preprocessing/DroidDifficultyHitObject.ts","../src/preprocessing/OsuDifficultyHitObject.ts","../src/preprocessing/DifficultyHitObjectCreator.ts","../src/base/DifficultyCalculator.ts","../src/evaluators/droid/DroidAimEvaluator.ts","../src/base/Skill.ts","../src/base/StrainSkill.ts","../src/skills/droid/DroidSkill.ts","../src/skills/droid/DroidAim.ts","../src/evaluators/base/SpeedEvaluator.ts","../src/evaluators/droid/DroidTapEvaluator.ts","../src/skills/droid/DroidTap.ts","../src/evaluators/base/FlashlightEvaluator.ts","../src/evaluators/droid/DroidFlashlightEvaluator.ts","../src/skills/droid/DroidFlashlight.ts","../src/evaluators/base/RhythmEvaluator.ts","../src/evaluators/droid/DroidRhythmEvaluator.ts","../src/skills/droid/DroidRhythm.ts","../src/evaluators/droid/DroidVisualEvaluator.ts","../src/skills/droid/DroidVisual.ts","../src/DroidDifficultyCalculator.ts","../src/base/PerformanceCalculator.ts","../src/DroidPerformanceCalculator.ts","../src/skills/osu/OsuSkill.ts","../src/evaluators/osu/OsuAimEvaluator.ts","../src/skills/osu/OsuAim.ts","../src/evaluators/osu/OsuSpeedEvaluator.ts","../src/evaluators/osu/OsuRhythmEvaluator.ts","../src/skills/osu/OsuSpeed.ts","../src/evaluators/osu/OsuFlashlightEvaluator.ts","../src/skills/osu/OsuFlashlight.ts","../src/OsuDifficultyCalculator.ts","../src/MapStars.ts","../src/OsuPerformanceCalculator.ts"],"sourcesContent":["/**\n * An evaluator for calculating aim skill.\n *\n * This class should be considered an \"evaluating\" class and not persisted.\n */\nexport class AimEvaluator {\n static wideAngleMultiplier = 1.5;\n static acuteAngleMultiplier = 1.95;\n static sliderMultiplier = 1.35;\n static velocityChangeMultiplier = 0.75;\n /**\n * Calculates the bonus of wide angles.\n */\n static calculateWideAngleBonus(angle) {\n return Math.pow(Math.sin((3 / 4) *\n (Math.min((5 / 6) * Math.PI, Math.max(Math.PI / 6, angle)) -\n Math.PI / 6)), 2);\n }\n /**\n * Calculates the bonus of acute angles.\n */\n static calculateAcuteAngleBonus(angle) {\n return 1 - this.calculateWideAngleBonus(angle);\n }\n}\n//# sourceMappingURL=AimEvaluator.js.map","import { MathUtils, Modes, ModHidden, Slider, Spinner, } from \"@rian8337/osu-base\";\n/**\n * Represents a hit object with difficulty calculation values.\n */\nexport class DifficultyHitObject {\n /**\n * The underlying hitobject.\n */\n object;\n /**\n * The index of this hitobject in the list of all hitobjects.\n *\n * This is one less than the actual index of the hitobject in the beatmap.\n */\n index = 0;\n /**\n * The preempt time of the hitobject.\n */\n baseTimePreempt = 600;\n /**\n * Adjusted preempt time of the hitobject, taking speed multiplier into account.\n */\n timePreempt = 600;\n /**\n * The fade in time of the hitobject.\n */\n timeFadeIn = 400;\n /**\n * The aim strain generated by the hitobject if sliders are considered.\n */\n aimStrainWithSliders = 0;\n /**\n * The aim strain generated by the hitobject if sliders are not considered.\n */\n aimStrainWithoutSliders = 0;\n /**\n * The rhythm multiplier generated by the hitobject. This is used to alter tap strain.\n */\n rhythmMultiplier = 0;\n /**\n * The normalized distance from the \"lazy\" end position of the previous hitobject to the start position of this hitobject.\n *\n * The \"lazy\" end position is the position at which the cursor ends up if the previous hitobject is followed with as minimal movement as possible (i.e. on the edge of slider follow circles).\n */\n lazyJumpDistance = 0;\n /**\n * The normalized shortest distance to consider for a jump between the previous hitobject and this hitobject.\n *\n * This is bounded from above by `lazyJumpDistance`, and is smaller than the former if a more natural path is able to be taken through the previous hitobject.\n *\n * Suppose a linear slider - circle pattern. Following the slider lazily (see: `lazyJumpDistance`) will result in underestimating the true end position of the slider as being closer towards the start position.\n * As a result, `lazyJumpDistance` overestimates the jump distance because the player is able to take a more natural path by following through the slider to its end,\n * such that the jump is felt as only starting from the slider's true end position.\n *\n * Now consider a slider - circle pattern where the circle is stacked along the path inside the slider.\n * In this case, the lazy end position correctly estimates the true end position of the slider and provides the more natural movement path.\n */\n minimumJumpDistance = 0;\n /**\n * The time taken to travel through `minimumJumpDistance`, with a minimum value of 25ms.\n */\n minimumJumpTime = 0;\n /**\n * The normalized distance between the start and end position of this hitobject.\n */\n travelDistance = 0;\n /**\n * The time taken to travel through `travelDistance`, with a minimum value of 25ms for sliders.\n */\n travelTime = 0;\n /**\n * Angle the player has to take to hit this hitobject.\n *\n * Calculated as the angle between the circles (current-2, current-1, current).\n */\n angle = null;\n /**\n * The amount of milliseconds elapsed between this hitobject and the last hitobject.\n */\n deltaTime = 0;\n /**\n * The amount of milliseconds elapsed since the start time of the previous hitobject, with a minimum of 25ms.\n */\n strainTime = 0;\n /**\n * Adjusted start time of the hitobject, taking speed multiplier into account.\n */\n startTime = 0;\n /**\n * Adjusted end time of the hitobject, taking speed multiplier into account.\n */\n endTime = 0;\n /**\n * Other hitobjects in the beatmap, including this hitobject.\n */\n hitObjects;\n /**\n * @param object The underlying hitobject.\n * @param hitObjects All difficulty hitobjects in the processed beatmap.\n */\n constructor(object, hitObjects) {\n this.object = object;\n this.hitObjects = hitObjects;\n }\n /**\n * Gets the difficulty hitobject at a specific index with respect to the current\n * difficulty hitobject's index.\n *\n * Will return `null` if the index is out of range.\n *\n * @param backwardsIndex The index to move backwards for.\n * @returns The difficulty hitobject at the index with respect to the current\n * difficulty hitobject's index, `null` if the index is out of range.\n */\n previous(backwardsIndex) {\n return this.hitObjects[this.index - backwardsIndex] ?? null;\n }\n /**\n * Gets the difficulty hitobject at a specific index with respect to the current\n * difficulty hitobject's index.\n *\n * Will return `null` if the index is out of range.\n *\n * @param forwardsIndex The index to move forwards for.\n * @returns The difficulty hitobject at the index with respect to the current\n * difficulty hitobject's index, `null` if the index is out of range.\n */\n next(forwardsIndex) {\n return (this.hitObjects[this.index + forwardsIndex + 2] ?? null);\n }\n /**\n * Calculates the opacity of the hitobject at a given time.\n *\n * @param time The time to calculate the hitobject's opacity at.\n * @param isHidden Whether Hidden mod is used.\n * @returns The opacity of the hitobject at the given time.\n */\n opacityAt(time, isHidden) {\n if (time > this.object.startTime) {\n // Consider a hitobject as being invisible when its start time is passed.\n // In reality the hitobject will be visible beyond its start time up until its hittable window has passed,\n // but this is an approximation and such a case is unlikely to be hit where this function is used.\n return 0;\n }\n const fadeInStartTime = this.object.startTime - this.baseTimePreempt;\n const fadeInDuration = this.timeFadeIn;\n if (isHidden) {\n const fadeOutStartTime = fadeInStartTime + fadeInDuration;\n const fadeOutDuration = this.baseTimePreempt * ModHidden.fadeOutDurationMultiplier;\n return Math.min(MathUtils.clamp((time - fadeInStartTime) / fadeInDuration, 0, 1), 1 -\n MathUtils.clamp((time - fadeOutStartTime) / fadeOutDuration, 0, 1));\n }\n return MathUtils.clamp((time - fadeInStartTime) / fadeInDuration, 0, 1);\n }\n /**\n * Determines whether this hitobject is considered overlapping with the hitobject before it.\n *\n * Keep in mind that \"overlapping\" in this case is overlapping to the point where both hitobjects\n * can be hit with just a single tap in osu!droid.\n *\n * @param considerDistance Whether to consider the distance between both hitobjects.\n * @returns Whether the hitobject is considered overlapping.\n */\n isOverlapping(considerDistance) {\n if (this.object instanceof Spinner) {\n return false;\n }\n const previous = this.previous(0);\n if (!previous || previous.object instanceof Spinner) {\n return false;\n }\n if (this.deltaTime >= 5) {\n return false;\n }\n if (considerDistance) {\n const endPosition = this.object.getStackedPosition(Modes.droid);\n let distance = previous.object\n .getStackedEndPosition(Modes.droid)\n .getDistance(endPosition);\n if (previous.object instanceof Slider &&\n previous.object.lazyEndPosition) {\n distance = Math.min(distance, previous.object.lazyEndPosition.getDistance(endPosition));\n }\n return distance <= 2 * this.object.getRadius(Modes.droid);\n }\n return true;\n }\n}\n//# sourceMappingURL=DifficultyHitObject.js.map","import { DifficultyHitObject } from \"./DifficultyHitObject\";\n/**\n * Represents an osu!droid hit object with difficulty calculation values.\n */\nexport class DroidDifficultyHitObject extends DifficultyHitObject {\n /**\n * The tap strain generated by the hitobject.\n */\n tapStrain = 0;\n /**\n * The tap strain generated by the hitobject if `strainTime` isn't modified by\n * OD. This is used in three-finger detection.\n */\n originalTapStrain = 0;\n /**\n * The rhythm strain generated by the hitobject.\n */\n rhythmStrain = 0;\n /**\n * The flashlight strain generated by the hitobject if sliders are considered.\n */\n flashlightStrainWithSliders = 0;\n /**\n * The flashlight strain generated by the hitobject if sliders are not considered.\n */\n flashlightStrainWithoutSliders = 0;\n /**\n * The visual strain generated by the hitobject if sliders are considered.\n */\n visualStrainWithSliders = 0;\n /**\n * The visual strain generated by the hitobject if sliders are not considered.\n */\n visualStrainWithoutSliders = 0;\n /**\n * The note density of the hitobject.\n */\n noteDensity = 1;\n /**\n * The overlapping factor of the hitobject.\n *\n * This is used to scale visual skill.\n */\n overlappingFactor = 0;\n /**\n * @param object The underlying hitobject.\n * @param hitObjects All difficulty hitobjects in the processed beatmap.\n */\n constructor(object, hitObjects) {\n super(object, hitObjects);\n }\n}\n//# sourceMappingURL=DroidDifficultyHitObject.js.map","import { DifficultyHitObject } from \"./DifficultyHitObject\";\n/**\n * Represents an osu!standard hit object with difficulty calculation values.\n */\nexport class OsuDifficultyHitObject extends DifficultyHitObject {\n /**\n * The speed strain generated by the hitobject.\n */\n speedStrain = 0;\n /**\n * The flashlight strain generated by this hitobject.\n */\n flashlightStrain = 0;\n /**\n * @param object The underlying hitobject.\n * @param hitObjects All difficulty hitobjects in the processed beatmap.\n */\n constructor(object, hitObjects) {\n super(object, hitObjects);\n }\n}\n//# sourceMappingURL=OsuDifficultyHitObject.js.map","import { Modes, Precision, Slider, SliderRepeat, Spinner, } from \"@rian8337/osu-base\";\nimport { DroidDifficultyHitObject } from \"./DroidDifficultyHitObject\";\nimport { OsuDifficultyHitObject } from \"./OsuDifficultyHitObject\";\n/**\n * A converter used to convert normal hitobjects into difficulty hitobjects.\n */\nexport class DifficultyHitObjectCreator {\n /**\n * The threshold for small circle buff for osu!droid.\n */\n DROID_CIRCLESIZE_BUFF_THRESHOLD = 70;\n /**\n * The threshold for small circle buff for osu!standard.\n */\n PC_CIRCLESIZE_BUFF_THRESHOLD = 30;\n /**\n * The gamemode this creator is creating for.\n */\n mode = Modes.osu;\n /**\n * The base normalized radius of hitobjects.\n */\n normalizedRadius = 50;\n maximumSliderRadius = this.normalizedRadius * 2.4;\n assumedSliderRadius = this.normalizedRadius * 1.8;\n minDeltaTime = 25;\n generateDifficultyObjects(params) {\n params.preempt ??= 600;\n this.mode = params.mode;\n if (this.mode === Modes.droid) {\n this.maximumSliderRadius = this.normalizedRadius * 2;\n }\n const scalingFactor = this.getScalingFactor(params.objects[0].getRadius(this.mode));\n const difficultyObjects = [];\n for (let i = 0; i < params.objects.length; ++i) {\n const object = this.mode === Modes.droid\n ? new DroidDifficultyHitObject(params.objects[i], difficultyObjects)\n : new OsuDifficultyHitObject(params.objects[i], difficultyObjects);\n object.index = difficultyObjects.length - 1;\n object.timePreempt = params.preempt;\n object.baseTimePreempt = params.preempt * params.speedMultiplier;\n if (object.object instanceof Slider) {\n this.calculateSliderCursorPosition(object.object);\n object.travelDistance = object.object.lazyTravelDistance;\n // Bonus for repeat sliders until a better per nested object strain system can be achieved.\n if (this.mode === Modes.droid) {\n object.travelDistance *= Math.pow(1 + object.object.repeats / 4, 1 / 4);\n }\n else {\n object.travelDistance *= Math.pow(1 + object.object.repeats / 2.5, 1 / 2.5);\n }\n object.travelTime = Math.max(object.object.lazyTravelTime / params.speedMultiplier, this.minDeltaTime);\n }\n const lastObject = difficultyObjects[i - 1];\n const lastLastObject = difficultyObjects[i - 2];\n object.startTime = object.object.startTime / params.speedMultiplier;\n object.endTime = object.object.endTime / params.speedMultiplier;\n if (!lastObject) {\n difficultyObjects.push(object);\n continue;\n }\n object.deltaTime =\n (object.object.startTime - lastObject.object.startTime) /\n params.speedMultiplier;\n // Cap to 25ms to prevent difficulty calculation breaking from simultaneous objects.\n object.strainTime = Math.max(this.minDeltaTime, object.deltaTime);\n if (object.object instanceof Spinner) {\n difficultyObjects.push(object);\n continue;\n }\n if (object instanceof DroidDifficultyHitObject) {\n // We'll have two visible object arrays. The first array contains objects before the current object starts in a reversed order,\n // while the second array contains objects after the current object ends.\n // For overlapping factor, we also need to consider previous visible objects.\n const prevVisibleObjects = [];\n const nextVisibleObjects = [];\n for (let j = i + 1; j < params.objects.length; ++j) {\n const o = params.objects[j];\n if (o instanceof Spinner) {\n continue;\n }\n if (o.startTime / params.speedMultiplier >\n object.endTime + object.timePreempt) {\n break;\n }\n nextVisibleObjects.push(o);\n }\n for (let j = 0; j < object.index; ++j) {\n const prev = object.previous(j);\n if (prev.object instanceof Spinner) {\n continue;\n }\n if (prev.startTime >= object.startTime) {\n continue;\n }\n if (prev.startTime <\n object.startTime - object.timePreempt) {\n break;\n }\n prevVisibleObjects.push(prev.object);\n }\n for (const hitObject of prevVisibleObjects) {\n const distance = object.object\n .getStackedPosition(this.mode)\n .getDistance(hitObject.getStackedEndPosition(this.mode));\n const deltaTime = object.startTime -\n hitObject.endTime / params.speedMultiplier;\n this.applyToOverlappingFactor(object, distance, deltaTime);\n }\n for (const hitObject of nextVisibleObjects) {\n const distance = hitObject\n .getStackedPosition(this.mode)\n .getDistance(object.object.getStackedEndPosition(this.mode));\n const deltaTime = hitObject.startTime / params.speedMultiplier -\n object.endTime;\n if (deltaTime >= 0) {\n object.noteDensity +=\n 1 - deltaTime / object.timePreempt;\n }\n this.applyToOverlappingFactor(object, distance, deltaTime);\n }\n }\n if (lastObject.object instanceof Spinner) {\n difficultyObjects.push(object);\n continue;\n }\n const lastCursorPosition = this.getEndCursorPosition(lastObject.object);\n object.lazyJumpDistance = object.object\n .getStackedPosition(this.mode)\n .scale(scalingFactor)\n .subtract(lastCursorPosition.scale(scalingFactor)).length;\n object.minimumJumpTime = object.strainTime;\n object.minimumJumpDistance = object.lazyJumpDistance;\n if (lastObject.object instanceof Slider) {\n object.minimumJumpTime = Math.max(object.strainTime - lastObject.travelTime, this.minDeltaTime);\n // There are two types of slider-to-object patterns to consider in order to better approximate the real movement a player will take to jump between the hitobjects.\n //\n // 1. The anti-flow pattern, where players cut the slider short in order to move to the next hitobject.\n //\n // <======o==> ← slider\n // | ← most natural jump path\n // o ← a follow-up hitcircle\n //\n // In this case the most natural jump path is approximated by LazyJumpDistance.\n //\n // 2. The flow pattern, where players follow through the slider to its visual extent into the next hitobject.\n //\n // <======o==>---o\n // ↑\n // most natural jump path\n //\n // In this case the most natural jump path is better approximated by a new distance called \"tailJumpDistance\" - the distance between the slider's tail and the next hitobject.\n //\n // Thus, the player is assumed to jump the minimum of these two distances in all cases.\n const tailJumpDistance = lastObject.object.tail\n .getStackedPosition(this.mode)\n .subtract(object.object.getStackedPosition(this.mode))\n .length * scalingFactor;\n object.minimumJumpDistance = Math.max(0, Math.min(object.lazyJumpDistance -\n (this.maximumSliderRadius -\n this.assumedSliderRadius), tailJumpDistance - this.maximumSliderRadius));\n }\n if (lastLastObject && !(lastLastObject.object instanceof Spinner)) {\n const lastLastCursorPosition = this.getEndCursorPosition(lastLastObject.object);\n const v1 = lastLastCursorPosition.subtract(lastObject.object.getStackedPosition(this.mode));\n const v2 = object.object\n .getStackedPosition(this.mode)\n .subtract(lastCursorPosition);\n const dot = v1.dot(v2);\n const det = v1.x * v2.y - v1.y * v2.x;\n object.angle = Math.abs(Math.atan2(det, dot));\n }\n difficultyObjects.push(object);\n }\n return difficultyObjects;\n }\n /**\n * Calculates a slider's cursor position.\n */\n calculateSliderCursorPosition(slider) {\n if (slider.lazyEndPosition) {\n return;\n }\n // Droid doesn't have a legacy slider tail. Since beatmap parser defaults slider tail\n // to legacy slider tail, it needs to be changed to real slider tail first.\n if (this.mode === Modes.droid) {\n slider.tail.startTime += Slider.legacyLastTickOffset;\n slider.tail.endTime += Slider.legacyLastTickOffset;\n slider.nestedHitObjects.sort((a, b) => a.startTime - b.startTime);\n // Temporary lazy end position until a real result can be derived.\n slider.lazyEndPosition = slider.getStackedPosition(this.mode);\n // Stop here if the slider has too short duration due to float number limitation.\n // Incredibly close start and end time fluctuates travel distance and lazy\n // end position heavily, which we do not want to happen.\n //\n // In the real game, this shouldn't happen. Perhaps we need to reinvestigate this\n // in the future.\n if (Precision.almostEqualsNumber(slider.startTime, slider.endTime)) {\n return;\n }\n }\n // Not using slider.endTime due to legacy last tick offset.\n slider.lazyTravelTime =\n slider.nestedHitObjects.at(-1).startTime - slider.startTime;\n let endTimeMin = slider.lazyTravelTime / slider.spanDuration;\n if (endTimeMin % 2 >= 1) {\n endTimeMin = 1 - (endTimeMin % 1);\n }\n else {\n endTimeMin %= 1;\n }\n // Temporary lazy end position until a real result can be derived.\n slider.lazyEndPosition = slider\n .getStackedPosition(this.mode)\n .add(slider.path.positionAt(endTimeMin));\n let currentCursorPosition = slider.getStackedPosition(this.mode);\n const scalingFactor = this.normalizedRadius / slider.getRadius(this.mode);\n for (let i = 1; i < slider.nestedHitObjects.length; ++i) {\n const currentMovementObject = slider.nestedHitObjects[i];\n let currentMovement = currentMovementObject\n .getStackedPosition(this.mode)\n .subtract(currentCursorPosition);\n let currentMovementLength = scalingFactor * currentMovement.length;\n // The amount of movement required so that the cursor position needs to be updated.\n let requiredMovement = this.assumedSliderRadius;\n if (i === slider.nestedHitObjects.length - 1) {\n // The end of a slider has special aim rules due to the relaxed time constraint on position.\n // There is both a lazy end position as well as the actual end slider position. We assume the player takes the simpler movement.\n // For sliders that are circular, the lazy end position may actually be farther away than the sliders' true end.\n // This code is designed to prevent buffing situations where lazy end is actually a less efficient movement.\n const lazyMovement = slider.lazyEndPosition.subtract(currentCursorPosition);\n if (lazyMovement.length < currentMovement.length) {\n currentMovement = lazyMovement;\n }\n currentMovementLength = scalingFactor * currentMovement.length;\n }\n else if (currentMovementObject instanceof SliderRepeat) {\n // For a slider repeat, assume a tighter movement threshold to better assess repeat sliders.\n requiredMovement = this.normalizedRadius;\n }\n if (currentMovementLength > requiredMovement) {\n // This finds the positional delta from the required radius and the current position,\n // and updates the currentCursorPosition accordingly, as well as rewarding distance.\n currentCursorPosition = currentCursorPosition.add(currentMovement.scale((currentMovementLength - requiredMovement) /\n currentMovementLength));\n currentMovementLength *=\n (currentMovementLength - requiredMovement) /\n currentMovementLength;\n slider.lazyTravelDistance += currentMovementLength;\n }\n if (i === slider.nestedHitObjects.length - 1) {\n slider.lazyEndPosition = currentCursorPosition;\n }\n }\n }\n /**\n * Gets the scaling factor of a radius.\n *\n * @param radius The radius to get the scaling factor from.\n */\n getScalingFactor(radius) {\n // We will scale distances by this factor, so we can assume a uniform CircleSize among beatmaps.\n let scalingFactor = this.normalizedRadius / radius;\n // High circle size (small CS) bonus\n switch (this.mode) {\n case Modes.droid:\n if (radius < this.DROID_CIRCLESIZE_BUFF_THRESHOLD) {\n scalingFactor *=\n 1 +\n Math.pow((this.DROID_CIRCLESIZE_BUFF_THRESHOLD - radius) /\n 50, 2);\n }\n break;\n case Modes.osu:\n if (radius < this.PC_CIRCLESIZE_BUFF_THRESHOLD) {\n scalingFactor *=\n 1 +\n Math.min(this.PC_CIRCLESIZE_BUFF_THRESHOLD - radius, 5) /\n 50;\n }\n }\n return scalingFactor;\n }\n /**\n * Returns the end cursor position of a hitobject.\n */\n getEndCursorPosition(object) {\n let pos = object.getStackedPosition(this.mode);\n if (object instanceof Slider) {\n this.calculateSliderCursorPosition(object);\n pos = object.lazyEndPosition ?? pos;\n }\n return pos;\n }\n applyToOverlappingFactor(object, distance, deltaTime) {\n // Penalize objects that are too close to the object in both distance\n // and delta time to prevent stream maps from being overweighted.\n object.overlappingFactor +=\n Math.max(0, 1 - distance / (3 * object.object.getRadius(this.mode))) *\n (7.5 /\n (1 +\n Math.exp(0.15 * (Math.max(deltaTime, this.minDeltaTime) - 75))));\n }\n}\n//# sourceMappingURL=DifficultyHitObjectCreator.js.map","import { MapStats, Utils } from \"@rian8337/osu-base\";\nimport { DifficultyHitObjectCreator } from \"../preprocessing/DifficultyHitObjectCreator\";\n/**\n * The base of a difficulty calculator.\n */\nexport class DifficultyCalculator {\n /**\n * The calculated beatmap.\n */\n beatmap;\n /**\n * The difficulty objects of the beatmap.\n */\n objects = [];\n /**\n * The modifications applied.\n */\n mods = [];\n /**\n * The total star rating of the beatmap.\n */\n total = 0;\n /**\n * The map statistics of the beatmap after modifications are applied.\n */\n stats = new MapStats();\n /**\n * The strain peaks of various calculated difficulties.\n */\n strainPeaks = {\n aimWithSliders: [],\n aimWithoutSliders: [],\n speed: [],\n flashlight: [],\n };\n /**\n * Constructs a new instance of the calculator.\n *\n * @param beatmap The beatmap to calculate. This beatmap will be deep-cloned to prevent reference changes.\n */\n constructor(beatmap) {\n this.beatmap = Utils.deepCopy(beatmap);\n }\n /**\n * Calculates the star rating of the specified beatmap.\n *\n * The beatmap is analyzed in chunks of `sectionLength` duration.\n * For each chunk the highest hitobject strains are added to\n * a list which is then collapsed into a weighted sum, much\n * like scores are weighted on a user's profile.\n *\n * For subsequent chunks, the initial max strain is calculated\n * by decaying the previous hitobject's strain until the\n * beginning of the new chunk.\n *\n * @param options Options for the difficulty calculation.\n * @returns The current instance.\n */\n calculate(options) {\n this.mods = options?.mods ?? [];\n this.stats = new MapStats({\n cs: this.beatmap.difficulty.cs,\n ar: this.beatmap.difficulty.ar,\n od: this.beatmap.difficulty.od,\n hp: this.beatmap.difficulty.hp,\n mods: options?.mods,\n speedMultiplier: options?.stats?.speedMultiplier ?? 1,\n oldStatistics: options?.stats?.oldStatistics ?? false,\n }).calculate({ mode: this.mode });\n this.preProcess();\n this.populateDifficultyAttributes();\n this.generateDifficultyHitObjects();\n this.calculateAll();\n return this;\n }\n /**\n * Generates difficulty hitobjects for this calculator.\n */\n generateDifficultyHitObjects() {\n this.objects.length = 0;\n this.objects.push(...new DifficultyHitObjectCreator().generateDifficultyObjects({\n objects: this.beatmap.hitObjects.objects,\n circleSize: this.beatmap.difficulty.cs,\n mods: this.mods,\n speedMultiplier: this.stats.speedMultiplier,\n mode: this.mode,\n preempt: MapStats.arToMS(this.stats.ar),\n }));\n }\n /**\n * Performs some pre-processing before proceeding with difficulty calculation.\n */\n preProcess() {\n void 0;\n }\n /**\n * Calculates the skills provided.\n *\n * @param skills The skills to calculate.\n */\n calculateSkills(...skills) {\n // The first object doesn't generate a strain, so we begin calculating from the second object.\n for (const object of this.objects.slice(1)) {\n for (const skill of skills) {\n skill.process(object);\n }\n }\n }\n /**\n * Populates the stored difficulty attributes with necessary data.\n */\n populateDifficultyAttributes() {\n this.attributes.approachRate = this.stats.ar;\n this.attributes.hitCircleCount = this.beatmap.hitObjects.circles;\n this.attributes.maxCombo = this.beatmap.maxCombo;\n this.attributes.mods = this.mods.slice();\n this.attributes.overallDifficulty = this.stats.od;\n this.attributes.sliderCount = this.beatmap.hitObjects.sliders;\n this.attributes.spinnerCount = this.beatmap.hitObjects.spinners;\n this.attributes.clockRate = this.stats.speedMultiplier;\n }\n /**\n * Calculates the star rating value of a difficulty.\n *\n * @param difficulty The difficulty to calculate.\n */\n starValue(difficulty) {\n return Math.sqrt(difficulty) * this.difficultyMultiplier;\n }\n /**\n * Calculates the base performance value of a difficulty rating.\n *\n * @param rating The difficulty rating.\n */\n basePerformanceValue(rating) {\n return Math.pow(5 * Math.max(1, rating / 0.0675) - 4, 3) / 100000;\n }\n}\n//# sourceMappingURL=DifficultyCalculator.js.map","import { Spinner, Slider, MathUtils } from \"@rian8337/osu-base\";\nimport { AimEvaluator } from \"../base/AimEvaluator\";\n/**\n * An evaluator for calculating osu!droid Aim skill.\n */\nexport class DroidAimEvaluator extends AimEvaluator {\n static wideAngleMultiplier = 1.65;\n static sliderMultiplier = 1.5;\n static velocityChangeMultiplier = 0.85;\n static singleSpacingThreshold = 100;\n // 200 1/4 BPM delta time\n static minSpeedBonus = 75;\n /**\n * Evaluates the difficulty of aiming the current object, based on:\n *\n * - cursor velocity to the current object,\n * - angle difficulty,\n * - sharp velocity increases,\n * - and slider difficulty.\n *\n * @param current The current object.\n * @param withSliders Whether to take slider difficulty into account.\n */\n static evaluateDifficultyOf(current, withSliders) {\n if (current.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n current.isOverlapping(true)) {\n return 0;\n }\n return (this.snapAimStrainOf(current, withSliders) +\n this.flowAimStrainOf(current));\n }\n /**\n * Calculates the snap aim strain of a hitobject.\n */\n static snapAimStrainOf(current, withSliders) {\n if (current.index <= 1 ||\n current.previous(0)?.object instanceof Spinner) {\n return 0;\n }\n const last = current.previous(0);\n const lastLast = current.previous(1);\n // Calculate the velocity to the current hitobject, which starts with a base distance / time assuming the last object is a hitcircle.\n let currentVelocity = current.lazyJumpDistance / current.strainTime;\n // But if the last object is a slider, then we extend the travel velocity through the slider into the current object.\n if (last.object instanceof Slider && withSliders) {\n // Calculate the slider velocity from slider head to slider end.\n const travelVelocity = last.travelDistance / last.travelTime;\n // Calculate the movement velocity from slider end to current object.\n const movementVelocity = current.minimumJumpTime !== 0\n ? current.minimumJumpDistance / current.minimumJumpTime\n : 0;\n // Take the larger total combined velocity.\n currentVelocity = Math.max(currentVelocity, movementVelocity + travelVelocity);\n }\n // As above, do the same for the previous hitobject.\n let prevVelocity = last.lazyJumpDistance / last.strainTime;\n if (lastLast.object instanceof Slider && withSliders) {\n const travelVelocity = lastLast.travelDistance / lastLast.travelTime;\n const movementVelocity = last.minimumJumpTime !== 0\n ? last.minimumJumpDistance / last.minimumJumpTime\n : 0;\n prevVelocity = Math.max(prevVelocity, movementVelocity + travelVelocity);\n }\n let wideAngleBonus = 0;\n let acuteAngleBonus = 0;\n let sliderBonus = 0;\n let velocityChangeBonus = 0;\n // Start strain with regular velocity.\n let strain = currentVelocity;\n if (\n // If rhythms are the same.\n Math.max(current.strainTime, last.strainTime) <\n 1.25 * Math.min(current.strainTime, last.strainTime) &&\n current.angle !== null &&\n last.angle !== null &&\n lastLast.angle !== null) {\n // Rewarding angles, take the smaller velocity as base.\n const angleBonus = Math.min(currentVelocity, prevVelocity);\n wideAngleBonus = this.calculateWideAngleBonus(current.angle);\n acuteAngleBonus = this.calculateAcuteAngleBonus(current.angle);\n // Only buff deltaTime exceeding 300 BPM 1/2.\n if (current.strainTime > 100) {\n acuteAngleBonus = 0;\n }\n else {\n acuteAngleBonus *=\n // Multiply by previous angle, we don't want to buff unless this is a wiggle type pattern.\n this.calculateAcuteAngleBonus(last.angle) *\n // The maximum velocity we buff is equal to 125 / strainTime.\n Math.min(angleBonus, 125 / current.strainTime) *\n // Scale buff from 300 BPM 1/2 to 400 BPM 1/2.\n Math.pow(Math.sin((Math.PI / 2) *\n Math.min(1, (100 - current.strainTime) / 25)), 2) *\n // Buff distance exceeding 50 (radius) up to 100 (diameter).\n Math.pow(Math.sin(((Math.PI / 2) *\n (MathUtils.clamp(current.lazyJumpDistance, 50, 100) -\n 50)) /\n 50), 2);\n }\n // Penalize wide angles if they're repeated, reducing the penalty as last.angle gets more acute.\n wideAngleBonus *=\n angleBonus *\n (1 -\n Math.min(wideAngleBonus, Math.pow(this.calculateWideAngleBonus(last.angle), 3)));\n // Penalize acute angles if they're repeated, reducing the penalty as lastLast.angle gets more obtuse.\n acuteAngleBonus *=\n 0.5 +\n 0.5 *\n (1 -\n Math.min(acuteAngleBonus, Math.pow(this.calculateAcuteAngleBonus(lastLast.angle), 3)));\n }\n if (Math.max(prevVelocity, currentVelocity)) {\n // We want to use the average velocity over the whole object when awarding differences, not the individual jump and slider path velocities.\n prevVelocity =\n (last.lazyJumpDistance + lastLast.travelDistance) /\n last.strainTime;\n currentVelocity =\n (current.lazyJumpDistance + last.travelDistance) /\n current.strainTime;\n // Scale with ratio of difference compared to half the max distance.\n const distanceRatio = Math.pow(Math.sin(((Math.PI / 2) * Math.abs(prevVelocity - currentVelocity)) /\n Math.max(prevVelocity, currentVelocity)), 2);\n // Reward for % distance up to 125 / strainTime for overlaps where velocity is still changing.\n const overlapVelocityBuff = Math.min(125 / Math.min(current.strainTime, last.strainTime), Math.abs(prevVelocity - currentVelocity));\n velocityChangeBonus = overlapVelocityBuff * distanceRatio;\n // Penalize for rhythm changes.\n velocityChangeBonus *= Math.pow(Math.min(current.strainTime, last.strainTime) /\n Math.max(current.strainTime, last.strainTime), 2);\n }\n if (last.object instanceof Slider) {\n // Reward sliders based on velocity.\n sliderBonus = last.travelDistance / last.travelTime;\n }\n // Add in acute angle bonus or wide angle bonus + velocity change bonus, whichever is larger.\n strain += Math.max(acuteAngleBonus * this.acuteAngleMultiplier, wideAngleBonus * this.wideAngleMultiplier +\n velocityChangeBonus * this.velocityChangeMultiplier);\n // Add in additional slider velocity bonus.\n if (withSliders) {\n strain +=\n Math.pow(1 + sliderBonus * this.sliderMultiplier, 1.25) - 1;\n }\n return strain;\n }\n /**\n * Calculates the flow aim strain of a hitobject.\n */\n static flowAimStrainOf(current) {\n let speedBonus = 1;\n if (current.strainTime < this.minSpeedBonus) {\n speedBonus +=\n 0.75 *\n Math.pow((this.minSpeedBonus - current.strainTime) / 40, 2);\n }\n const travelDistance = current.previous(0)?.travelDistance ?? 0;\n const shortDistancePenalty = Math.pow(Math.min(this.singleSpacingThreshold, travelDistance + current.minimumJumpDistance) / this.singleSpacingThreshold, 3.5);\n return (200 * speedBonus * shortDistancePenalty) / current.strainTime;\n }\n}\n//# sourceMappingURL=DroidAimEvaluator.js.map","/**\n * A bare minimal abstract skill for fully custom skill implementations.\n *\n * This class should be considered a \"processing\" class and not persisted.\n */\nexport class Skill {\n /**\n * The mods that this skill processes.\n */\n mods;\n constructor(mods) {\n this.mods = mods;\n }\n}\n//# sourceMappingURL=Skill.js.map","import { Skill } from \"./Skill\";\n/**\n * Used to processes strain values of difficulty hitobjects, keep track of strain levels caused by the processed objects\n * and to calculate a final difficulty value representing the difficulty of hitting all the processed objects.\n */\nexport class StrainSkill extends Skill {\n /**\n * Strain peaks are stored here.\n */\n strainPeaks = [];\n sectionLength = 400;\n currentStrain = 0;\n currentSectionPeak = 0;\n currentSectionEnd = 0;\n process(current) {\n // The first object doesn't generate a strain, so we begin with an incremented section end\n if (current.index === 0) {\n this.currentSectionEnd =\n Math.ceil(current.startTime / this.sectionLength) *\n this.sectionLength;\n }\n while (current.startTime > this.currentSectionEnd) {\n this.saveCurrentPeak();\n this.startNewSectionFrom(this.currentSectionEnd, current);\n this.currentSectionEnd += this.sectionLength;\n }\n // Ignore the first hitobject.\n this.currentStrain = this.strainValueAt(current);\n this.saveToHitObject(current);\n this.currentSectionPeak = Math.max(this.currentStrain, this.currentSectionPeak);\n if (!current.next(0)) {\n // Don't forget to save the last strain peak, which would otherwise be ignored.\n this.saveCurrentPeak();\n }\n }\n /**\n * Saves the current peak strain level to the list of strain peaks, which will be used to calculate an overall difficulty.\n */\n saveCurrentPeak() {\n this.strainPeaks.push(this.currentSectionPeak);\n }\n /**\n * Calculates strain decay for a specified time frame.\n *\n * @param ms The time frame to calculate.\n */\n strainDecay(ms) {\n return Math.pow(this.strainDecayBase, ms / 1000);\n }\n /**\n * Sets the initial strain level for a new section.\n *\n * @param time The beginning of the new section in milliseconds.\n * @param current The current hitobject.\n */\n startNewSectionFrom(time, current) {\n // The maximum strain of the new section is not zero by default.\n // This means we need to capture the strain level at the beginning of the new section, and use that as the initial peak level.\n this.currentSectionPeak = this.calculateInitialStrain(time, current);\n }\n}\n//# sourceMappingURL=StrainSkill.js.map","import { Interpolation, MathUtils } from \"@rian8337/osu-base\";\nimport { StrainSkill } from \"../../base/StrainSkill\";\n/**\n * Used to processes strain values of difficulty hitobjects, keep track of strain levels caused by the processed objects\n * and to calculate a final difficulty value representing the difficulty of hitting all the processed objects.\n */\nexport class DroidSkill extends StrainSkill {\n difficultyValue() {\n const strains = this.strainPeaks.slice();\n if (this.reducedSectionCount > 0) {\n strains.sort((a, b) => b - a);\n // We are reducing the highest strains first to account for extreme difficulty spikes.\n for (let i = 0; i < Math.min(strains.length, this.reducedSectionCount); ++i) {\n const scale = Math.log10(Interpolation.lerp(1, 10, MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));\n strains[i] *= Interpolation.lerp(this.reducedSectionBaseline, 1, scale);\n }\n }\n // Math here preserves the property that two notes of equal difficulty x, we have their summed difficulty = x * starsPerDouble.\n // This also applies to two sets of notes with equal difficulty.\n return Math.pow(strains.reduce((a, v) => {\n if (v <= 0) {\n return a;\n }\n return a + Math.pow(v, 1 / Math.log2(this.starsPerDouble));\n }, 0), Math.log2(this.starsPerDouble));\n }\n}\n//# sourceMappingURL=DroidSkill.js.map","import { DroidAimEvaluator } from \"../../evaluators/droid/DroidAimEvaluator\";\nimport { DroidSkill } from \"./DroidSkill\";\n/**\n * Represents the skill required to correctly aim at every object in the map with a uniform CircleSize and normalized distances.\n */\nexport class DroidAim extends DroidSkill {\n strainDecayBase = 0.15;\n reducedSectionCount = 10;\n reducedSectionBaseline = 0.75;\n starsPerDouble = 1.05;\n skillMultiplier = 24.55;\n withSliders;\n currentAimStrain = 0;\n constructor(mods, withSliders) {\n super(mods);\n this.withSliders = withSliders;\n }\n strainValueAt(current) {\n this.currentAimStrain *= this.strainDecay(current.deltaTime);\n this.currentAimStrain +=\n DroidAimEvaluator.evaluateDifficultyOf(current, this.withSliders) *\n this.skillMultiplier;\n return this.currentAimStrain;\n }\n calculateInitialStrain(time, current) {\n return (this.currentAimStrain *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n /**\n * @param current The hitobject to save to.\n */\n saveToHitObject(current) {\n if (this.withSliders) {\n current.aimStrainWithSliders = this.currentAimStrain;\n }\n else {\n current.aimStrainWithoutSliders = this.currentAimStrain;\n }\n }\n}\n//# sourceMappingURL=DroidAim.js.map","/**\n * An evaluator for calculating speed or tap skill.\n *\n * This class should be considered an \"evaluating\" class and not persisted.\n */\nexport class SpeedEvaluator {\n // ~200 1/4 BPM streams\n static minSpeedBonus = 75;\n}\n//# sourceMappingURL=SpeedEvaluator.js.map","import { Spinner, ErrorFunction } from \"@rian8337/osu-base\";\nimport { SpeedEvaluator } from \"../base/SpeedEvaluator\";\n/**\n * An evaluator for calculating osu!droid tap skill.\n */\nexport class DroidTapEvaluator extends SpeedEvaluator {\n /**\n * Evaluates the difficulty of tapping the current object, based on:\n *\n * - time between pressing the previous and current object,\n * - distance between those objects,\n * - and how easily they can be cheesed.\n *\n * @param current The current object.\n * @param greatWindow The great hit window of the current object.\n * @param considerCheesability Whether to consider cheesability.\n */\n static evaluateDifficultyOf(current, greatWindow, considerCheesability) {\n if (current.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n current.isOverlapping(false)) {\n return 0;\n }\n let doubletapness = 1;\n if (considerCheesability) {\n // Nerf doubletappable doubles.\n const next = current.next(0);\n if (next) {\n const greatWindowFull = greatWindow * 2;\n const currentDeltaTime = Math.max(1, current.deltaTime);\n const nextDeltaTime = Math.max(1, next.deltaTime);\n const deltaDifference = Math.abs(nextDeltaTime - currentDeltaTime);\n const speedRatio = currentDeltaTime /\n Math.max(currentDeltaTime, deltaDifference);\n const windowRatio = Math.pow(Math.min(1, currentDeltaTime / greatWindowFull), 2);\n doubletapness = Math.pow(speedRatio, 1 - windowRatio);\n }\n }\n let speedBonus = 1;\n if (current.strainTime < this.minSpeedBonus) {\n speedBonus +=\n 0.75 *\n Math.pow(ErrorFunction.erf((this.minSpeedBonus - current.strainTime) / 40), 2);\n }\n return (speedBonus * Math.pow(doubletapness, 1.5)) / current.strainTime;\n }\n}\n//# sourceMappingURL=DroidTapEvaluator.js.map","import { OsuHitWindow } from \"@rian8337/osu-base\";\nimport { DroidTapEvaluator } from \"../../evaluators/droid/DroidTapEvaluator\";\nimport { DroidSkill } from \"./DroidSkill\";\n/**\n * Represents the skill required to press keys or tap with regards to keeping up with the speed at which objects need to be hit.\n */\nexport class DroidTap extends DroidSkill {\n reducedSectionCount = 10;\n reducedSectionBaseline = 0.75;\n strainDecayBase = 0.3;\n starsPerDouble = 1.1;\n currentTapStrain = 0;\n currentRhythmMultiplier = 0;\n skillMultiplier = 1375;\n greatWindow;\n considerCheesability;\n constructor(mods, overallDifficulty, considerCheesability) {\n super(mods);\n this.greatWindow = new OsuHitWindow(overallDifficulty).hitWindowFor300();\n this.considerCheesability = considerCheesability;\n }\n strainValueAt(current) {\n const decay = this.strainDecay(current.strainTime);\n this.currentTapStrain *= decay;\n this.currentTapStrain +=\n DroidTapEvaluator.evaluateDifficultyOf(current, this.greatWindow, this.considerCheesability) * this.skillMultiplier;\n this.currentRhythmMultiplier = current.rhythmMultiplier;\n return this.currentTapStrain * current.rhythmMultiplier;\n }\n calculateInitialStrain(time, current) {\n return (this.currentTapStrain *\n this.currentRhythmMultiplier *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n /**\n * @param current The hitobject to save to.\n */\n saveToHitObject(current) {\n const strain = this.currentTapStrain * this.currentRhythmMultiplier;\n if (this.considerCheesability) {\n current.tapStrain = strain;\n }\n else {\n current.originalTapStrain = strain;\n }\n }\n}\n//# sourceMappingURL=DroidTap.js.map","/**\n * An evaluator for calculating flashlight skill.\n *\n * This class should be considered an \"evaluating\" class and not persisted.\n */\nexport class FlashlightEvaluator {\n static maxOpacityBonus = 0.4;\n static hiddenBonus = 0.2;\n static minVelocity = 0.5;\n static sliderMultiplier = 1.3;\n static minAngleMultiplier = 0.2;\n}\n//# sourceMappingURL=FlashlightEvaluator.js.map","import { Modes, Slider, Spinner } from \"@rian8337/osu-base\";\nimport { FlashlightEvaluator } from \"../base/FlashlightEvaluator\";\n/**\n * An evaluator for calculating osu!droid Flashlight skill.\n */\nexport class DroidFlashlightEvaluator extends FlashlightEvaluator {\n /**\n * Evaluates the difficulty of memorizing and hitting the current object, based on:\n *\n * - distance between a number of previous objects and the current object,\n * - the visual opacity of the current object,\n * - the angle made by the current object,\n * - length and speed of the current object (for sliders),\n * - and whether Hidden mod is enabled.\n *\n * @param current The current object.\n * @param isHiddenMod Whether the Hidden mod is enabled.\n * @param withSliders Whether to take slider difficulty into account.\n */\n static evaluateDifficultyOf(current, isHiddenMod, withSliders) {\n if (current.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n current.isOverlapping(true)) {\n return 0;\n }\n const scalingFactor = 52 / current.object.getRadius(Modes.droid);\n let smallDistNerf = 1;\n let cumulativeStrainTime = 0;\n let result = 0;\n let last = current;\n let angleRepeatCount = 0;\n for (let i = 0; i < Math.min(current.index, 10); ++i) {\n const currentObject = current.previous(i);\n if (!(currentObject.object instanceof Spinner) &&\n // Exclude overlapping objects that can be tapped at once.\n !currentObject.isOverlapping(false)) {\n const jumpDistance = current.object\n .getStackedPosition(Modes.droid)\n .subtract(currentObject.object.getStackedEndPosition(Modes.droid)).length;\n cumulativeStrainTime += last.strainTime;\n // We want to nerf objects that can be easily seen within the Flashlight circle radius.\n if (i === 0) {\n smallDistNerf = Math.min(1, jumpDistance / 75);\n }\n // We also want to nerf stacks so that only the first object of the stack is accounted for.\n const stackNerf = Math.min(1, currentObject.lazyJumpDistance / scalingFactor / 25);\n // Bonus based on how visible the object is.\n const opacityBonus = 1 +\n this.maxOpacityBonus *\n (1 -\n current.opacityAt(currentObject.object.startTime, isHiddenMod));\n result +=\n (stackNerf * opacityBonus * scalingFactor * jumpDistance) /\n cumulativeStrainTime;\n if (currentObject.angle !== null && current.angle !== null) {\n // Objects further back in time should count less for the nerf.\n if (Math.abs(currentObject.angle - current.angle) < 0.02) {\n angleRepeatCount += Math.max(0, 1 - 0.1 * i);\n }\n }\n }\n last = currentObject;\n }\n result = Math.pow(smallDistNerf * result, 2);\n // Additional bonus for Hidden due to there being no approach circles.\n if (isHiddenMod) {\n result *= 1 + this.hiddenBonus;\n }\n // Nerf patterns with repeated angles.\n result *=\n this.minAngleMultiplier +\n (1 - this.minAngleMultiplier) / (angleRepeatCount + 1);\n let sliderBonus = 0;\n if (current.object instanceof Slider && withSliders) {\n // Invert the scaling factor to determine the true travel distance independent of circle size.\n const pixelTravelDistance = current.object.lazyTravelDistance / scalingFactor;\n // Reward sliders based on velocity.\n sliderBonus = Math.pow(Math.max(0, pixelTravelDistance / current.travelTime - this.minVelocity), 0.5);\n // Longer sliders require more memorization.\n sliderBonus *= pixelTravelDistance;\n // Nerf sliders with repeats, as less memorization is required.\n if (current.object.repeats > 0)\n sliderBonus /= current.object.repeats + 1;\n }\n result += sliderBonus * this.sliderMultiplier;\n return result;\n }\n}\n//# sourceMappingURL=DroidFlashlightEvaluator.js.map","import { ModHidden } from \"@rian8337/osu-base\";\nimport { DroidFlashlightEvaluator } from \"../../evaluators/droid/DroidFlashlightEvaluator\";\nimport { DroidSkill } from \"./DroidSkill\";\n/**\n * Represents the skill required to memorize and hit every object in a beatmap with the Flashlight mod enabled.\n */\nexport class DroidFlashlight extends DroidSkill {\n strainDecayBase = 0.15;\n reducedSectionCount = 0;\n reducedSectionBaseline = 1;\n starsPerDouble = 1.06;\n skillMultiplier = 0.052;\n isHidden;\n withSliders;\n currentFlashlightStrain = 0;\n constructor(mods, withSliders) {\n super(mods);\n this.isHidden = mods.some((m) => m instanceof ModHidden);\n this.withSliders = withSliders;\n }\n strainValueAt(current) {\n this.currentFlashlightStrain *= this.strainDecay(current.deltaTime);\n this.currentFlashlightStrain +=\n DroidFlashlightEvaluator.evaluateDifficultyOf(current, this.isHidden, this.withSliders) * this.skillMultiplier;\n return this.currentFlashlightStrain;\n }\n calculateInitialStrain(time, current) {\n return (this.currentFlashlightStrain *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n saveToHitObject(current) {\n if (this.withSliders) {\n current.flashlightStrainWithSliders = this.currentFlashlightStrain;\n }\n else {\n current.flashlightStrainWithoutSliders =\n this.currentFlashlightStrain;\n }\n }\n difficultyValue() {\n return Math.pow(this.strainPeaks.reduce((a, v) => a + v, 0) * this.starsPerDouble, 0.8);\n }\n}\n//# sourceMappingURL=DroidFlashlight.js.map","/**\n * An evaluator for calculating rhythm skill.\n *\n * This class should be considered an \"evaluating\" class and not persisted.\n */\nexport class RhythmEvaluator {\n static rhythmMultiplier = 0.75;\n static historyTimeMax = 5000; // 5 seconds of calculateRhythmBonus max.\n}\n//# sourceMappingURL=RhythmEvaluator.js.map","import { Spinner, Slider } from \"@rian8337/osu-base\";\nimport { RhythmEvaluator } from \"../base/RhythmEvaluator\";\n/**\n * An evaluator for calculating osu!droid Rhythm skill.\n */\nexport class DroidRhythmEvaluator extends RhythmEvaluator {\n /**\n * Calculates a rhythm multiplier for the difficulty of the tap associated\n * with historic data of the current object.\n *\n * @param current The current object.\n * @param greatWindow The great hit window of the current object.\n */\n static evaluateDifficultyOf(current, greatWindow) {\n if (current.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n current.isOverlapping(false)) {\n return 1;\n }\n let previousIslandSize = 0;\n let rhythmComplexitySum = 0;\n let islandSize = 1;\n // Store the ratio of the current start of an island to buff for tighter rhythms.\n let startRatio = 0;\n let firstDeltaSwitch = false;\n let rhythmStart = 0;\n const historicalNoteCount = Math.min(current.index, 32);\n // Exclude overlapping objects that can be tapped at once.\n const validPrevious = [];\n for (let i = 0; i < historicalNoteCount; ++i) {\n const object = current.previous(i);\n if (!object) {\n break;\n }\n if (!object.isOverlapping(false)) {\n validPrevious.push(object);\n }\n }\n while (rhythmStart < validPrevious.length - 2 &&\n current.startTime - validPrevious[rhythmStart].startTime <\n this.historyTimeMax) {\n ++rhythmStart;\n }\n for (let i = rhythmStart; i > 0; --i) {\n // Scale note 0 to 1 from history to now.\n let currentHistoricalDecay = (this.historyTimeMax -\n (current.startTime - validPrevious[i - 1].startTime)) /\n this.historyTimeMax;\n // Either we're limited by time or limited by object count.\n currentHistoricalDecay = Math.min(currentHistoricalDecay, (validPrevious.length - i) / validPrevious.length);\n const currentDelta = validPrevious[i - 1].strainTime;\n const prevDelta = validPrevious[i].strainTime;\n const lastDelta = validPrevious[i + 1].strainTime;\n const currentRatio = 1 +\n 6 *\n Math.min(0.5, Math.pow(Math.sin(Math.PI /\n (Math.min(prevDelta, currentDelta) /\n Math.max(prevDelta, currentDelta))), 2));\n const windowPenalty = Math.min(1, Math.max(0, Math.abs(prevDelta - currentDelta) - greatWindow * 0.6) /\n (greatWindow * 0.6));\n let effectiveRatio = windowPenalty * currentRatio;\n if (firstDeltaSwitch) {\n if (prevDelta <= 1.25 * currentDelta &&\n prevDelta * 1.25 >= currentDelta) {\n // Island is still progressing, count size.\n if (islandSize < 7) {\n ++islandSize;\n }\n }\n else {\n if (validPrevious[i - 1].object instanceof Slider) {\n // BPM change is into slider, this is easy acc window.\n effectiveRatio /= 8;\n }\n if (validPrevious[i].object instanceof Slider) {\n // BPM change was from a slider, this is typically easier than circle -> circle.\n effectiveRatio /= 4;\n }\n if (previousIslandSize === islandSize) {\n // Repeated island size (ex: triplet -> triplet).\n effectiveRatio /= 4;\n }\n if (previousIslandSize % 2 === islandSize % 2) {\n // Repeated island polarity (2 -> 4, 3 -> 5).\n effectiveRatio /= 2;\n }\n if (lastDelta > prevDelta + 10 &&\n prevDelta > currentDelta + 10) {\n // Previous increase happened a note ago.\n // Albeit this is a 1/1 -> 1/2-1/4 type of transition, we don't want to buff this.\n effectiveRatio /= 8;\n }\n rhythmComplexitySum +=\n (((Math.sqrt(effectiveRatio * startRatio) *\n currentHistoricalDecay *\n Math.sqrt(4 + islandSize)) /\n 2) *\n Math.sqrt(4 + previousIslandSize)) /\n 2;\n startRatio = effectiveRatio;\n previousIslandSize = islandSize;\n if (prevDelta * 1.25 < currentDelta) {\n // We're slowing down, stop counting.\n // If we're speeding up, this stays as is and we keep counting island size.\n firstDeltaSwitch = false;\n }\n islandSize = 1;\n }\n }\n else if (prevDelta > 1.25 * currentDelta) {\n // We want to be speeding up.\n // Begin counting island until we change speed again.\n firstDeltaSwitch = true;\n startRatio = effectiveRatio;\n islandSize = 1;\n }\n }\n // Nerf doubles that can be tapped at the same time to get Great hit results.\n const next = current.next(0);\n let doubletapness = 1;\n if (next) {\n const currentDeltaTime = Math.max(1, current.deltaTime);\n const nextDeltaTime = Math.max(1, next.deltaTime);\n const deltaDifference = Math.abs(nextDeltaTime - currentDeltaTime);\n const speedRatio = currentDeltaTime / Math.max(currentDeltaTime, deltaDifference);\n const windowRatio = Math.pow(Math.min(1, currentDeltaTime / (greatWindow * 2)), 2);\n doubletapness = Math.pow(speedRatio, 1 - windowRatio);\n }\n return (Math.sqrt(4 + rhythmComplexitySum * this.rhythmMultiplier * doubletapness) / 2);\n }\n}\n//# sourceMappingURL=DroidRhythmEvaluator.js.map","import { OsuHitWindow } from \"@rian8337/osu-base\";\nimport { DroidRhythmEvaluator } from \"../../evaluators/droid/DroidRhythmEvaluator\";\nimport { DroidSkill } from \"./DroidSkill\";\n/**\n * Represents the skill required to properly follow a beatmap's rhythm.\n */\nexport class DroidRhythm extends DroidSkill {\n reducedSectionCount = 5;\n reducedSectionBaseline = 0.75;\n strainDecayBase = 0.3;\n starsPerDouble = 1.75;\n currentRhythmStrain = 0;\n currentRhythmMultiplier = 1;\n hitWindow;\n constructor(mods, overallDifficulty) {\n super(mods);\n this.hitWindow = new OsuHitWindow(overallDifficulty);\n }\n strainValueAt(current) {\n this.currentRhythmMultiplier =\n DroidRhythmEvaluator.evaluateDifficultyOf(current, this.hitWindow.hitWindowFor300());\n this.currentRhythmStrain *= this.strainDecay(current.deltaTime);\n this.currentRhythmStrain += this.currentRhythmMultiplier - 1;\n return this.currentRhythmStrain;\n }\n calculateInitialStrain(time, current) {\n return (this.currentRhythmStrain *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n saveToHitObject(current) {\n current.rhythmStrain = this.currentRhythmStrain;\n current.rhythmMultiplier = this.currentRhythmMultiplier;\n }\n}\n//# sourceMappingURL=DroidRhythm.js.map","import { Spinner, Slider, Modes } from \"@rian8337/osu-base\";\n/**\n * An evaluator for calculating osu!droid Visual skill.\n */\nexport class DroidVisualEvaluator {\n /**\n * Evaluates the difficulty of reading the current object, based on:\n *\n * - note density of the current object,\n * - overlapping factor of the current object,\n * - the preempt time of the current object,\n * - the visual opacity of the current object,\n * - the velocity of the current object if it's a slider,\n * - past objects' velocity if they are sliders,\n * - and whether the Hidden mod is enabled.\n *\n * @param current The current object.\n * @param isHiddenMod Whether the Hidden mod is enabled.\n * @param withSliders Whether to take slider difficulty into account.\n */\n static evaluateDifficultyOf(current, isHiddenMod, withSliders) {\n if (current.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n current.isOverlapping(true) ||\n current.index === 0) {\n return 0;\n }\n // Start with base density and give global bonus for Hidden.\n // Add density caps for sanity.\n let strain;\n if (isHiddenMod) {\n strain = Math.min(30, Math.pow(current.noteDensity, 3));\n }\n else {\n strain = Math.min(20, Math.pow(current.noteDensity, 2));\n }\n // Bonus based on how visible the object is.\n for (let i = 0; i < Math.min(current.index, 10); ++i) {\n const previous = current.previous(i);\n if (previous.object instanceof Spinner ||\n // Exclude overlapping objects that can be tapped at once.\n previous.isOverlapping(true)) {\n continue;\n }\n // Do not consider objects that don't fall under time preempt.\n if (current.object.startTime - previous.object.endTime >\n current.baseTimePreempt) {\n break;\n }\n strain +=\n (1 -\n current.opacityAt(previous.object.startTime, isHiddenMod)) /\n 4;\n }\n // Scale the value with overlapping factor.\n strain /= 10 * (1 + current.overlappingFactor);\n if (current.timePreempt < 400) {\n // Give bonus for AR higher than 10.33.\n strain += Math.pow(400 - current.timePreempt, 1.3) / 100;\n }\n if (current.object instanceof Slider && withSliders) {\n const scalingFactor = 50 / current.object.getRadius(Modes.droid);\n // Invert the scaling factor to determine the true travel distance independent of circle size.\n const pixelTravelDistance = current.object.lazyTravelDistance / scalingFactor;\n const currentVelocity = pixelTravelDistance / current.travelTime;\n strain +=\n // Reward sliders based on velocity, while also avoiding overbuffing extremely fast sliders.\n Math.min(6, currentVelocity * 1.5) *\n // Longer sliders require more reading.\n (pixelTravelDistance / 100);\n let cumulativeStrainTime = 0;\n // Reward for velocity changes based on last few sliders.\n for (let i = 0; i < Math.min(current.index, 4); ++i) {\n const last = current.previous(i);\n cumulativeStrainTime += last.strainTime;\n if (!(last.object instanceof Slider) ||\n // Exclude overlapping objects that can be tapped at once.\n last.isOverlapping(true)) {\n continue;\n }\n // Invert the scaling factor to determine the true travel distance independent of circle size.\n const pixelTravelDistance = last.object.lazyTravelDistance / scalingFactor;\n const lastVelocity = pixelTravelDistance / last.travelTime;\n strain +=\n // Reward past sliders based on velocity changes, while also\n // avoiding overbuffing extremely fast velocity changes.\n Math.min(10, 2.5 * Math.abs(currentVelocity - lastVelocity)) *\n // Longer sliders require more reading.\n (pixelTravelDistance / 125) *\n // Avoid overbuffing past sliders.\n Math.min(1, 300 / cumulativeStrainTime);\n }\n }\n return strain;\n }\n}\n//# sourceMappingURL=DroidVisualEvaluator.js.map","import { ModHidden } from \"@rian8337/osu-base\";\nimport { DroidVisualEvaluator } from \"../../evaluators/droid/DroidVisualEvaluator\";\nimport { DroidSkill } from \"./DroidSkill\";\n/**\n * Represents the skill required to read every object in the map.\n */\nexport class DroidVisual extends DroidSkill {\n starsPerDouble = 1.025;\n reducedSectionCount = 10;\n reducedSectionBaseline = 0.75;\n strainDecayBase = 0.1;\n isHidden;\n withSliders;\n currentVisualStrain = 0;\n currentRhythmMultiplier = 1;\n skillMultiplier = 10;\n constructor(mods, withSliders) {\n super(mods);\n this.isHidden = mods.some((m) => m instanceof ModHidden);\n this.withSliders = withSliders;\n }\n strainValueAt(current) {\n this.currentVisualStrain *= this.strainDecay(current.deltaTime);\n this.currentVisualStrain +=\n DroidVisualEvaluator.evaluateDifficultyOf(current, this.isHidden, this.withSliders) * this.skillMultiplier;\n this.currentRhythmMultiplier = current.rhythmMultiplier;\n return this.currentVisualStrain * this.currentRhythmMultiplier;\n }\n calculateInitialStrain(time, current) {\n return (this.currentVisualStrain *\n this.currentRhythmMultiplier *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n saveToHitObject(current) {\n const strain = this.currentVisualStrain * this.currentRhythmMultiplier;\n if (this.withSliders) {\n current.visualStrainWithSliders = strain;\n }\n else {\n current.visualStrainWithoutSliders = strain;\n }\n }\n}\n//# sourceMappingURL=DroidVisual.js.map","import { DroidAim } from \"./skills/droid/DroidAim\";\nimport { DroidTap } from \"./skills/droid/DroidTap\";\nimport { DifficultyCalculator } from \"./base/DifficultyCalculator\";\nimport { DroidFlashlight } from \"./skills/droid/DroidFlashlight\";\nimport { ModRelax, ModFlashlight, Modes, CircleSizeCalculator, HitObjectStackEvaluator, ModUtil, } from \"@rian8337/osu-base\";\nimport { DroidRhythm } from \"./skills/droid/DroidRhythm\";\nimport { DroidVisual } from \"./skills/droid/DroidVisual\";\n/**\n * A difficulty calculator for osu!droid gamemode.\n */\nexport class DroidDifficultyCalculator extends DifficultyCalculator {\n /**\n * The aim star rating of the beatmap.\n */\n aim = 0;\n /**\n * The tap star rating of the beatmap.\n */\n tap = 0;\n /**\n * The rhythm star rating of the beatmap.\n */\n rhythm = 0;\n /**\n * The flashlight star rating of the beatmap.\n */\n flashlight = 0;\n /**\n * The visual star rating of the beatmap.\n */\n visual = 0;\n /**\n * The strain threshold to start detecting for possible three-fingered section.\n *\n * Increasing this number will result in less sections being flagged.\n */\n static threeFingerStrainThreshold = 175;\n attributes = {\n tapDifficulty: 0,\n rhythmDifficulty: 0,\n visualDifficulty: 0,\n aimNoteCount: 0,\n mods: [],\n starRating: 0,\n maxCombo: 0,\n aimDifficulty: 0,\n flashlightDifficulty: 0,\n speedNoteCount: 0,\n sliderFactor: 0,\n clockRate: 1,\n approachRate: 0,\n overallDifficulty: 0,\n hitCircleCount: 0,\n sliderCount: 0,\n spinnerCount: 0,\n aimDifficultStrainCount: 0,\n tapDifficultStrainCount: 0,\n flashlightDifficultStrainCount: 0,\n visualDifficultStrainCount: 0,\n flashlightSliderFactor: 0,\n visualSliderFactor: 0,\n possibleThreeFingeredSections: [],\n difficultSliders: [],\n averageSpeedDeltaTime: 0,\n };\n get cacheableAttributes() {\n return {\n tapDifficulty: this.tap,\n rhythmDifficulty: this.rhythm,\n visualDifficulty: this.visual,\n mods: ModUtil.modsToOsuString(this.attributes.mods),\n starRating: this.total,\n maxCombo: this.attributes.maxCombo,\n aimDifficulty: this.aim,\n flashlightDifficulty: this.flashlight,\n speedNoteCount: this.attributes.speedNoteCount,\n sliderFactor: this.attributes.sliderFactor,\n clockRate: this.attributes.clockRate,\n approachRate: this.attributes.approachRate,\n overallDifficulty: this.attributes.overallDifficulty,\n hitCircleCount: this.attributes.hitCircleCount,\n sliderCount: this.attributes.sliderCount,\n spinnerCount: this.attributes.spinnerCount,\n aimDifficultStrainCount: this.attributes.aimDifficultStrainCount,\n tapDifficultStrainCount: this.attributes.tapDifficultStrainCount,\n flashlightDifficultStrainCount: this.attributes.flashlightDifficultStrainCount,\n visualDifficultStrainCount: this.attributes.visualDifficultStrainCount,\n averageSpeedDeltaTime: this.attributes.averageSpeedDeltaTime,\n };\n }\n difficultyMultiplier = 0.18;\n mode = Modes.droid;\n /**\n * Calculates the aim star rating of the beatmap and stores it in this instance.\n */\n calculateAim() {\n const aimSkill = new DroidAim(this.mods, true);\n const aimSkillWithoutSliders = new DroidAim(this.mods, false);\n this.calculateSkills(aimSkill, aimSkillWithoutSliders);\n this.postCalculateAim(aimSkill, aimSkillWithoutSliders);\n }\n /**\n * Calculates the tap star rating of the beatmap and stores it in this instance.\n */\n calculateTap() {\n const od = this.stats.od;\n const tapSkillCheese = new DroidTap(this.mods, od, true);\n const tapSkillNoCheese = new DroidTap(this.mods, od, false);\n this.calculateSkills(tapSkillCheese, tapSkillNoCheese);\n this.postCalculateTap(tapSkillCheese);\n }\n /**\n * Calculates the rhythm star rating of the beatmap and stores it in this instance.\n */\n calculateRhythm() {\n const rhythmSkill = new DroidRhythm(this.mods, this.stats.od);\n this.calculateSkills(rhythmSkill);\n this.postCalculateRhythm(rhythmSkill);\n }\n /**\n * Calculates the flashlight star rating of the beatmap and stores it in this instance.\n */\n calculateFlashlight() {\n const flashlightSkill = new DroidFlashlight(this.mods, true);\n const flashlightSkillWithoutSliders = new DroidFlashlight(this.mods, false);\n this.calculateSkills(flashlightSkill, flashlightSkillWithoutSliders);\n this.postCalculateFlashlight(flashlightSkill, flashlightSkillWithoutSliders);\n }\n /**\n * Calculates the visual star rating of the beatmap and stores it in this instance.\n */\n calculateVisual() {\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.visual = this.attributes.visualDifficulty = 0;\n return;\n }\n const visualSkill = new DroidVisual(this.mods, true);\n const visualSkillWithoutSliders = new DroidVisual(this.mods, false);\n this.calculateSkills(visualSkill, visualSkillWithoutSliders);\n this.postCalculateVisual(visualSkill, visualSkillWithoutSliders);\n }\n calculateTotal() {\n const aimPerformanceValue = this.basePerformanceValue(Math.pow(this.aim, 0.8));\n const tapPerformanceValue = this.basePerformanceValue(this.tap);\n const flashlightPerformanceValue = this.mods.some((m) => m instanceof ModFlashlight)\n ? Math.pow(this.flashlight, 1.6) * 25\n : 0;\n const visualPerformanceValue = Math.pow(this.visual, 1.6) * 22.5;\n const basePerformanceValue = Math.pow(Math.pow(aimPerformanceValue, 1.1) +\n Math.pow(tapPerformanceValue, 1.1) +\n Math.pow(flashlightPerformanceValue, 1.1) +\n Math.pow(visualPerformanceValue, 1.1), 1 / 1.1);\n if (basePerformanceValue > 1e-5) {\n // Document for formula derivation:\n // https://docs.google.com/document/d/10DZGYYSsT_yjz2Mtp6yIJld0Rqx4E-vVHupCqiM4TNI/edit\n this.total = this.attributes.starRating =\n 0.027 *\n (Math.cbrt((100000 / Math.pow(2, 1 / 1.1)) * basePerformanceValue) +\n 4);\n }\n else {\n this.total = this.attributes.starRating = 0;\n }\n }\n calculateAll() {\n const skills = this.createSkills();\n this.calculateSkills(...skills);\n const aimSkill = skills[0];\n const aimSkillWithoutSliders = skills[1];\n const rhythmSkill = skills[2];\n const tapSkillCheese = skills[3];\n const flashlightSkill = skills[5];\n const flashlightSkillWithoutSliders = skills[6];\n const visualSkill = skills[7];\n const visualSkillWithoutSliders = skills[8];\n this.postCalculateAim(aimSkill, aimSkillWithoutSliders);\n this.postCalculateTap(tapSkillCheese);\n this.postCalculateRhythm(rhythmSkill);\n this.postCalculateFlashlight(flashlightSkill, flashlightSkillWithoutSliders);\n this.postCalculateVisual(visualSkill, visualSkillWithoutSliders);\n this.calculateTotal();\n }\n toString() {\n return (this.total.toFixed(2) +\n \" stars (\" +\n this.aim.toFixed(2) +\n \" aim, \" +\n this.tap.toFixed(2) +\n \" tap, \" +\n this.rhythm.toFixed(2) +\n \" rhythm, \" +\n this.flashlight.toFixed(2) +\n \" flashlight, \" +\n this.visual.toFixed(2) +\n \" visual)\");\n }\n preProcess() {\n const scale = CircleSizeCalculator.standardCSToStandardScale(this.stats.cs);\n for (const object of this.beatmap.hitObjects.objects) {\n object.droidScale = scale;\n }\n HitObjectStackEvaluator.applyDroidStacking(this.beatmap.hitObjects.objects, this.beatmap.general.stackLeniency);\n }\n createSkills() {\n const od = this.stats.od;\n return [\n new DroidAim(this.mods, true),\n new DroidAim(this.mods, false),\n // Tap skill depends on rhythm skill, so we put it first\n new DroidRhythm(this.mods, od),\n new DroidTap(this.mods, od, true),\n new DroidTap(this.mods, od, false),\n new DroidFlashlight(this.mods, true),\n new DroidFlashlight(this.mods, false),\n new DroidVisual(this.mods, true),\n new DroidVisual(this.mods, false),\n ];\n }\n /**\n * Called after aim skill calculation.\n *\n * @param aimSkill The aim skill that considers sliders.\n * @param aimSkillWithoutSliders The aim skill that doesn't consider sliders.\n */\n postCalculateAim(aimSkill, aimSkillWithoutSliders) {\n this.strainPeaks.aimWithSliders = aimSkill.strainPeaks;\n this.strainPeaks.aimWithoutSliders = aimSkillWithoutSliders.strainPeaks;\n this.aim = this.starValue(aimSkill.difficultyValue());\n if (this.aim) {\n this.attributes.sliderFactor =\n this.starValue(aimSkillWithoutSliders.difficultyValue()) /\n this.aim;\n }\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.aim *= 0.9;\n }\n this.attributes.aimDifficulty = this.aim;\n this.calculateAimAttributes();\n }\n /**\n * Calculates aim-related attributes.\n */\n calculateAimAttributes() {\n const objectStrains = [];\n let maxStrain = 0;\n const topDifficultSliders = [];\n for (let i = 0; i < this.objects.length; ++i) {\n const object = this.objects[i];\n objectStrains.push(object.aimStrainWithSliders);\n maxStrain = Math.max(maxStrain, object.aimStrainWithSliders);\n const velocity = object.travelDistance / object.travelTime;\n if (velocity > 0) {\n topDifficultSliders.push({\n index: i,\n velocity: velocity,\n });\n }\n }\n if (maxStrain) {\n this.attributes.aimNoteCount = objectStrains.reduce((total, next) => total + 1 / (1 + Math.exp(-((next / maxStrain) * 12 - 6))), 0);\n this.attributes.aimDifficultStrainCount = objectStrains.reduce((total, next) => total + Math.pow(next / maxStrain, 4), 0);\n }\n const velocitySum = topDifficultSliders.reduce((a, v) => a + v.velocity, 0);\n for (const slider of topDifficultSliders) {\n const difficultyRating = slider.velocity / velocitySum;\n // Only consider sliders that are fast enough.\n if (difficultyRating > 0.02) {\n this.attributes.difficultSliders.push({\n index: slider.index,\n difficultyRating: slider.velocity / velocitySum,\n });\n }\n }\n this.attributes.difficultSliders.sort((a, b) => b.difficultyRating - a.difficultyRating);\n // Take the top 15% most difficult sliders.\n while (this.attributes.difficultSliders.length >\n Math.ceil(0.15 * this.beatmap.hitObjects.sliders)) {\n this.attributes.difficultSliders.pop();\n }\n }\n /**\n * Called after tap skill calculation.\n *\n * @param tapSkillCheese The tap skill that considers cheesing.\n */\n postCalculateTap(tapSkillCheese) {\n this.strainPeaks.speed = tapSkillCheese.strainPeaks;\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.tap = this.attributes.tapDifficulty = 0;\n this.attributes.possibleThreeFingeredSections = [];\n }\n else {\n this.tap = this.attributes.tapDifficulty = this.starValue(tapSkillCheese.difficultyValue());\n }\n this.calculateTapAttributes();\n }\n /**\n * Calculates tap-related attributes.\n */\n calculateTapAttributes() {\n this.attributes.possibleThreeFingeredSections = [];\n const tempSections = [];\n const objectStrains = [];\n const objectDeltaTimes = [];\n let maxStrain = 0;\n const maxSectionDeltaTime = 2000;\n const minSectionObjectCount = 5;\n let firstObjectIndex = 0;\n for (let i = 0; i < this.objects.length - 1; ++i) {\n const current = this.objects[i];\n const next = this.objects[i + 1];\n if (i === 0) {\n objectStrains.push(current.tapStrain);\n objectDeltaTimes.push(current.deltaTime);\n }\n objectStrains.push(next.tapStrain);\n objectDeltaTimes.push(next.deltaTime);\n maxStrain = Math.max(current.tapStrain, maxStrain);\n const realDeltaTime = next.object.startTime - current.object.endTime;\n if (realDeltaTime >= maxSectionDeltaTime) {\n // Ignore sections that don't meet object count requirement.\n if (i - firstObjectIndex < minSectionObjectCount) {\n firstObjectIndex = i + 1;\n continue;\n }\n tempSections.push({\n firstObjectIndex,\n lastObjectIndex: i,\n });\n firstObjectIndex = i + 1;\n }\n }\n // Don't forget to manually add the last beatmap section, which would otherwise be ignored.\n if (this.objects.length - firstObjectIndex > minSectionObjectCount) {\n tempSections.push({\n firstObjectIndex,\n lastObjectIndex: this.objects.length - 1,\n });\n }\n // Refilter with tap strain in mind.\n const { threeFingerStrainThreshold } = DroidDifficultyCalculator;\n for (const section of tempSections) {\n let inSpeedSection = false;\n let newFirstObjectIndex = section.firstObjectIndex;\n for (let i = section.firstObjectIndex; i <= section.lastObjectIndex; ++i) {\n const current = this.objects[i];\n if (!inSpeedSection &&\n current.originalTapStrain >= threeFingerStrainThreshold) {\n inSpeedSection = true;\n newFirstObjectIndex = i;\n continue;\n }\n if (inSpeedSection &&\n current.originalTapStrain < threeFingerStrainThreshold) {\n inSpeedSection = false;\n // Ignore sections that don't meet object count requirement.\n if (i - newFirstObjectIndex < minSectionObjectCount) {\n continue;\n }\n this.attributes.possibleThreeFingeredSections.push({\n firstObjectIndex: newFirstObjectIndex,\n lastObjectIndex: i,\n sumStrain: this.calculateThreeFingerSummedStrain(newFirstObjectIndex, i),\n });\n }\n }\n // Don't forget to manually add the last beatmap section, which would otherwise be ignored.\n // Ignore sections that don't meet object count requirement.\n if (inSpeedSection &&\n section.lastObjectIndex - newFirstObjectIndex >=\n minSectionObjectCount) {\n this.attributes.possibleThreeFingeredSections.push({\n firstObjectIndex: newFirstObjectIndex,\n lastObjectIndex: section.lastObjectIndex,\n sumStrain: this.calculateThreeFingerSummedStrain(newFirstObjectIndex, section.lastObjectIndex),\n });\n }\n }\n if (maxStrain) {\n this.attributes.speedNoteCount = objectStrains.reduce((total, next) => total + 1 / (1 + Math.exp(-((next / maxStrain) * 12 - 6))), 0);\n this.attributes.averageSpeedDeltaTime =\n objectDeltaTimes.reduce((total, next, index) => total +\n (next * 1) /\n (1 +\n Math.exp(-((objectStrains[index] / maxStrain) *\n 25 -\n 20))), 0) /\n objectStrains.reduce((total, next) => total +\n 1 / (1 + Math.exp(-((next / maxStrain) * 25 - 20))), 0);\n this.attributes.tapDifficultStrainCount = objectStrains.reduce((total, next) => total + Math.pow(next / maxStrain, 4), 0);\n }\n }\n /**\n * Calculates the sum of strains for possible three-fingered sections.\n *\n * @param firstObjectIndex The index of the first object in the section.\n * @param lastObjectIndex The index of the last object in the section.\n * @returns The summed strain of the section.\n */\n calculateThreeFingerSummedStrain(firstObjectIndex, lastObjectIndex) {\n return Math.pow(this.objects\n .slice(firstObjectIndex, lastObjectIndex)\n .reduce((a, v) => a +\n v.originalTapStrain /\n DroidDifficultyCalculator.threeFingerStrainThreshold, 0), 0.75);\n }\n /**\n * Called after rhythm skill calculation.\n *\n * @param rhythmSkill The rhythm skill.\n */\n postCalculateRhythm(rhythmSkill) {\n this.rhythm = this.attributes.rhythmDifficulty = this.mods.some((m) => m instanceof ModRelax)\n ? 0\n : this.starValue(rhythmSkill.difficultyValue());\n }\n /**\n * Called after flashlight skill calculation.\n *\n * @param flashlightSkill The flashlight skill that considers sliders.\n * @param flashlightSkillWithoutSliders The flashlight skill that doesn't consider sliders.\n */\n postCalculateFlashlight(flashlightSkill, flashlightSkillWithoutSliders) {\n this.strainPeaks.flashlight = flashlightSkill.strainPeaks;\n this.flashlight = this.starValue(flashlightSkill.difficultyValue());\n if (this.flashlight) {\n this.attributes.flashlightSliderFactor =\n this.starValue(flashlightSkillWithoutSliders.difficultyValue()) / this.flashlight;\n }\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.flashlight *= 0.7;\n }\n const objectStrains = this.objects.map((v) => v.flashlightStrainWithSliders);\n const maxStrain = Math.max(...objectStrains);\n if (maxStrain) {\n this.attributes.flashlightDifficultStrainCount =\n objectStrains.reduce((total, next) => total + Math.pow(next / maxStrain, 4), 0);\n }\n this.attributes.flashlightDifficulty = this.flashlight;\n }\n /**\n * Called after visual skill calculation.\n *\n * @param visualSkillWithSliders The visual skill that considers sliders.\n * @param visualSkillWithoutSliders The visual skill that doesn't consider sliders.\n */\n postCalculateVisual(visualSkillWithSliders, visualSkillWithoutSliders) {\n this.visual = this.attributes.visualDifficulty = this.mods.some((m) => m instanceof ModRelax)\n ? 0\n : this.starValue(visualSkillWithSliders.difficultyValue());\n if (this.visual) {\n this.attributes.visualSliderFactor =\n this.starValue(visualSkillWithoutSliders.difficultyValue()) /\n this.visual;\n }\n const objectStrains = this.objects.map((v) => v.flashlightStrainWithSliders);\n const maxStrain = Math.max(...objectStrains);\n if (maxStrain) {\n this.attributes.visualDifficultStrainCount = objectStrains.reduce((total, next) => total + Math.pow(next / maxStrain, 4), 0);\n }\n }\n}\n//# sourceMappingURL=DroidDifficultyCalculator.js.map","import { Accuracy, ModNoFail, ModSpunOut, ModRelax, MathUtils, ModUtil, Utils, } from \"@rian8337/osu-base\";\n/**\n * The base class of performance calculators.\n */\nexport class PerformanceCalculator {\n /**\n * The overall performance value.\n */\n total = 0;\n /**\n * The calculated accuracy.\n */\n computedAccuracy = new Accuracy({});\n /**\n * The difficulty attributes that is being calculated.\n */\n difficultyAttributes;\n /**\n * Penalty for combo breaks.\n */\n comboPenalty = 0;\n /**\n * The amount of misses that are filtered out from sliderbreaks.\n */\n effectiveMissCount = 0;\n /**\n * Nerf factor used for nerfing beatmaps with very likely dropped sliderends.\n */\n sliderNerfFactor = 1;\n /**\n * @param difficultyAttributes The difficulty attributes to calculate.\n */\n constructor(difficultyAttributes) {\n if (this.isCacheableAttribute(difficultyAttributes)) {\n this.difficultyAttributes = {\n ...difficultyAttributes,\n mods: ModUtil.pcStringToMods(difficultyAttributes.mods),\n };\n }\n else {\n this.difficultyAttributes = Utils.deepCopy(difficultyAttributes);\n }\n }\n /**\n * Calculates the performance points of the beatmap.\n *\n * @param options Options for performance calculation.\n * @returns The current instance.\n */\n calculate(options) {\n this.handleOptions(options);\n this.calculateValues();\n this.total = this.calculateTotalValue();\n return this;\n }\n /**\n * The total hits that can be done in the beatmap.\n */\n get totalHits() {\n return (this.difficultyAttributes.hitCircleCount +\n this.difficultyAttributes.sliderCount +\n this.difficultyAttributes.spinnerCount);\n }\n /**\n * The total hits that were successfully done.\n */\n get totalSuccessfulHits() {\n return (this.computedAccuracy.n300 +\n this.computedAccuracy.n100 +\n this.computedAccuracy.n50);\n }\n /**\n * Calculates the base performance value of a star rating.\n */\n baseValue(stars) {\n return Math.pow(5 * Math.max(1, stars / 0.0675) - 4, 3) / 100000;\n }\n /**\n * Processes given options for usage in performance calculation.\n *\n * @param options Options for performance calculation.\n */\n handleOptions(options) {\n const maxCombo = this.difficultyAttributes.maxCombo;\n const miss = this.computedAccuracy.nmiss;\n const combo = options?.combo ?? maxCombo - miss;\n this.comboPenalty = Math.min(Math.pow(combo / maxCombo, 0.8), 1);\n if (options?.accPercent instanceof Accuracy) {\n // Copy into new instance to not modify the original\n this.computedAccuracy = new Accuracy(options.accPercent);\n if (this.computedAccuracy.n300 <= 0) {\n this.computedAccuracy.n300 = Math.max(0, this.totalHits -\n this.computedAccuracy.n100 -\n this.computedAccuracy.n50 -\n this.computedAccuracy.nmiss);\n }\n else {\n this.computedAccuracy.nmiss = Math.max(0, this.totalHits - this.totalSuccessfulHits);\n }\n }\n else {\n this.computedAccuracy = new Accuracy({\n percent: options?.accPercent,\n nobjects: this.totalHits,\n nmiss: options?.miss || 0,\n });\n }\n this.effectiveMissCount = this.calculateEffectiveMissCount(combo, maxCombo);\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModNoFail)) {\n this.finalMultiplier *= Math.max(0.9, 1 - 0.02 * this.effectiveMissCount);\n }\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModSpunOut)) {\n this.finalMultiplier *=\n 1 -\n Math.pow(this.difficultyAttributes.spinnerCount / this.totalHits, 0.85);\n }\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModRelax)) {\n // Graph: https://www.desmos.com/calculator/bc9eybdthb\n // We use OD13.3 as maximum since it's the value at which great hit window becomes 0.\n const n100Multiplier = Math.max(0, this.difficultyAttributes.overallDifficulty > 0\n ? 1 -\n Math.pow(this.difficultyAttributes.overallDifficulty /\n 13.33, 1.8)\n : 1);\n const n50Multiplier = Math.max(0, this.difficultyAttributes.overallDifficulty > 0.0\n ? 1 -\n Math.pow(this.difficultyAttributes.overallDifficulty /\n 13.33, 5)\n : 1);\n // As we're adding 100s and 50s to an approximated number of combo breaks, the result can be higher\n // than total hits in specific scenarios (which breaks some calculations), so we need to clamp it.\n this.effectiveMissCount = Math.min(this.effectiveMissCount +\n this.computedAccuracy.n100 * n100Multiplier +\n this.computedAccuracy.n50 * n50Multiplier, this.totalHits);\n }\n if (this.difficultyAttributes.sliderCount > 0) {\n // We assume 15% of sliders in a beatmap are difficult since there's no way to tell from the performance calculator.\n const estimateDifficultSliders = this.difficultyAttributes.sliderCount * 0.15;\n const estimateSliderEndsDropped = MathUtils.clamp(Math.min(this.computedAccuracy.n100 +\n this.computedAccuracy.n50 +\n this.computedAccuracy.nmiss, maxCombo - combo), 0, estimateDifficultSliders);\n this.sliderNerfFactor =\n (1 - this.difficultyAttributes.sliderFactor) *\n Math.pow(1 -\n estimateSliderEndsDropped /\n estimateDifficultSliders, 3) +\n this.difficultyAttributes.sliderFactor;\n }\n }\n /**\n * Calculates the amount of misses + sliderbreaks from combo.\n */\n calculateEffectiveMissCount(combo, maxCombo) {\n // Guess the number of misses + slider breaks from combo.\n let comboBasedMissCount = 0;\n if (this.difficultyAttributes.sliderCount > 0) {\n const fullComboThreshold = maxCombo - 0.1 * this.difficultyAttributes.sliderCount;\n if (combo < fullComboThreshold) {\n // Clamp miss count to maximum amount of possible breaks.\n comboBasedMissCount = Math.min(fullComboThreshold / Math.max(1, combo), this.computedAccuracy.n100 +\n this.computedAccuracy.n50 +\n this.computedAccuracy.nmiss);\n }\n }\n return Math.max(this.computedAccuracy.nmiss, comboBasedMissCount);\n }\n /**\n * Determines whether an attribute is a cacheable attribute.\n *\n * @param attributes The attributes to check.\n * @returns Whether the attributes are cacheable.\n */\n isCacheableAttribute(attributes) {\n return typeof attributes.mods === \"string\";\n }\n}\n//# sourceMappingURL=PerformanceCalculator.js.map","import { ModRelax, ModFlashlight, Modes, OsuHitWindow, DroidHitWindow, ModPrecise, ErrorFunction, ModScoreV2, } from \"@rian8337/osu-base\";\nimport { PerformanceCalculator } from \"./base/PerformanceCalculator\";\n/**\n * A performance points calculator that calculates performance points for osu!droid gamemode.\n */\nexport class DroidPerformanceCalculator extends PerformanceCalculator {\n /**\n * The aim performance value.\n */\n aim = 0;\n /**\n * The tap performance value.\n */\n tap = 0;\n /**\n * The accuracy performance value.\n */\n accuracy = 0;\n /**\n * The flashlight performance value.\n */\n flashlight = 0;\n /**\n * The visual performance value.\n */\n visual = 0;\n /**\n * The penalty used to penalize the tap performance value.\n *\n * Can be properly obtained by analyzing the replay associated with the score.\n */\n get tapPenalty() {\n return this._tapPenalty;\n }\n /**\n * The estimated deviation of the score.\n */\n get deviation() {\n return this._deviation;\n }\n /**\n * The estimated tap deviation of the score.\n */\n get tapDeviation() {\n return this._tapDeviation;\n }\n /**\n * The penalty used to penalize the aim performance value.\n *\n * Can be properly obtained by analyzing the replay associated with the score.\n */\n get aimSliderCheesePenalty() {\n return this._aimSliderCheesePenalty;\n }\n /**\n * The penalty used to penalize the flashlight performance value.\n *\n * Can be properly obtained by analyzing the replay associated with the score.\n */\n get flashlightSliderCheesePenalty() {\n return this._flashlightSliderCheesePenalty;\n }\n /**\n * The penalty used to penalize the visual performance value.\n *\n * Can be properly obtained by analyzing the replay associated with the score.\n */\n get visualSliderCheesePenalty() {\n return this._visualSliderCheesePenalty;\n }\n finalMultiplier = 1.24;\n mode = Modes.droid;\n _aimSliderCheesePenalty = 1;\n _flashlightSliderCheesePenalty = 1;\n _visualSliderCheesePenalty = 1;\n _tapPenalty = 1;\n _deviation = 0;\n _tapDeviation = 0;\n /**\n * Applies a tap penalty value to this calculator.\n *\n * The tap and total performance value will be recalculated afterwards.\n *\n * @param value The tap penalty value. Must be greater than or equal to 1.\n */\n applyTapPenalty(value) {\n if (value < 1) {\n throw new RangeError(\"New tap penalty must be greater than or equal to one.\");\n }\n if (value === this._tapPenalty) {\n return;\n }\n this._tapPenalty = value;\n this.tap = this.calculateTapValue();\n this.total = this.calculateTotalValue();\n }\n /**\n * Applies an aim slider cheese penalty value to this calculator.\n *\n * The aim and total performance value will be recalculated afterwards.\n *\n * @param value The slider cheese penalty value. Must be between than 0 and 1.\n */\n applyAimSliderCheesePenalty(value) {\n if (value < 0) {\n throw new RangeError(\"New aim slider cheese penalty must be greater than or equal to zero.\");\n }\n if (value > 1) {\n throw new RangeError(\"New aim slider cheese penalty must be less than or equal to one.\");\n }\n if (value === this._aimSliderCheesePenalty) {\n return;\n }\n this._aimSliderCheesePenalty = value;\n this.aim = this.calculateAimValue();\n this.total = this.calculateTotalValue();\n }\n /**\n * Applies a flashlight slider cheese penalty value to this calculator.\n *\n * The flashlight and total performance value will be recalculated afterwards.\n *\n * @param value The slider cheese penalty value. Must be between 0 and 1.\n */\n applyFlashlightSliderCheesePenalty(value) {\n if (value < 0) {\n throw new RangeError(\"New flashlight slider cheese penalty must be greater than or equal to zero.\");\n }\n if (value > 1) {\n throw new RangeError(\"New flashlight slider cheese penalty must be less than or equal to one.\");\n }\n if (value === this._flashlightSliderCheesePenalty) {\n return;\n }\n this._flashlightSliderCheesePenalty = value;\n this.flashlight = this.calculateFlashlightValue();\n this.total = this.calculateTotalValue();\n }\n /**\n * Applies a visual slider cheese penalty value to this calculator.\n *\n * The visual and total performance value will be recalculated afterwards.\n *\n * @param value The slider cheese penalty value. Must be between 0 and 1.\n */\n applyVisualSliderCheesePenalty(value) {\n if (value < 0) {\n throw new RangeError(\"New visual slider cheese penalty must be greater than or equal to zero.\");\n }\n if (value > 1) {\n throw new RangeError(\"New visual slider cheese penalty must be less than or equal to one.\");\n }\n if (value === this._visualSliderCheesePenalty) {\n return;\n }\n this._visualSliderCheesePenalty = value;\n this.visual = this.calculateVisualValue();\n this.total = this.calculateTotalValue();\n }\n calculateValues() {\n this._deviation = this.calculateDeviation();\n this._tapDeviation = this.calculateTapDeviation();\n this.aim = this.calculateAimValue();\n this.tap = this.calculateTapValue();\n this.accuracy = this.calculateAccuracyValue();\n this.flashlight = this.calculateFlashlightValue();\n this.visual = this.calculateVisualValue();\n }\n calculateTotalValue() {\n return (Math.pow(Math.pow(this.aim, 1.1) +\n Math.pow(this.tap, 1.1) +\n Math.pow(this.accuracy, 1.1) +\n Math.pow(this.flashlight, 1.1) +\n Math.pow(this.visual, 1.1), 1 / 1.1) * this.finalMultiplier);\n }\n handleOptions(options) {\n this._tapPenalty = options?.tapPenalty ?? 1;\n this._aimSliderCheesePenalty = options?.aimSliderCheesePenalty ?? 1;\n this._flashlightSliderCheesePenalty =\n options?.flashlightSliderCheesePenalty ?? 1;\n this._visualSliderCheesePenalty =\n options?.visualSliderCheesePenalty ?? 1;\n super.handleOptions(options);\n }\n /**\n * Calculates the aim performance value of the beatmap.\n */\n calculateAimValue() {\n let aimValue = this.baseValue(Math.pow(this.difficultyAttributes.aimDifficulty, 0.8));\n aimValue *= this.proportionalMissPenalty;\n // Scale the aim value with estimated full combo deviation.\n aimValue *= this.calculateDeviationBasedLengthScaling();\n // Scale the aim value with slider factor to nerf very likely dropped sliderends.\n aimValue *= this.sliderNerfFactor;\n // Scale the aim value with slider cheese penalty.\n aimValue *= this._aimSliderCheesePenalty;\n // Scale the aim value with deviation.\n aimValue *=\n 1.05 *\n Math.sqrt(ErrorFunction.erf(25 / (Math.SQRT2 * this._deviation)));\n // OD 7 SS stays the same.\n aimValue *= 0.98 + Math.pow(7, 2) / 2500;\n return aimValue;\n }\n /**\n * Calculates the tap performance value of the beatmap.\n */\n calculateTapValue() {\n let tapValue = this.baseValue(this.difficultyAttributes.tapDifficulty);\n tapValue *= this.calculateStrainBasedMissPenalty(this.difficultyAttributes.tapDifficultStrainCount);\n // Scale the tap value with estimated full combo deviation.\n // Require more objects to be present as object count can rack up easily in tap-oriented beatmaps.\n tapValue *= this.calculateDeviationBasedLengthScaling(this.totalHits / 1.45);\n // Normalize the deviation to 300 BPM.\n const normalizedDeviation = this.tapDeviation *\n Math.max(1, 50 / this.difficultyAttributes.averageSpeedDeltaTime);\n // We expect the player to get 7500/x deviation when doubletapping x BPM.\n // Using this expectation, we penalize scores with deviation above 25.\n const averageBPM = 60000 / 4 / this.difficultyAttributes.averageSpeedDeltaTime;\n const adjustedDeviation = normalizedDeviation *\n (1 +\n 1 /\n (1 +\n Math.exp(-(normalizedDeviation - 7500 / averageBPM) /\n ((2 * 300) / averageBPM))));\n // Scale the tap value with tap deviation.\n tapValue *=\n 1.1 *\n Math.pow(ErrorFunction.erf(20 / (Math.SQRT2 * adjustedDeviation)), 0.625);\n // Scale the tap value with three-fingered penalty.\n tapValue /= this._tapPenalty;\n // OD 8 SS stays the same.\n tapValue *= 0.95 + Math.pow(8, 2) / 750;\n return tapValue;\n }\n /**\n * Calculates the accuracy performance value of the beatmap.\n */\n calculateAccuracyValue() {\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModRelax) ||\n this.totalSuccessfulHits === 0) {\n return 0;\n }\n let accuracyValue = 800 * Math.exp(-0.1 * this._deviation);\n const ncircles = this.difficultyAttributes.mods.some((m) => m instanceof ModScoreV2)\n ? this.totalHits - this.difficultyAttributes.spinnerCount\n : this.difficultyAttributes.hitCircleCount;\n // Bonus for many hitcircles - it's harder to keep good accuracy up for longer.\n accuracyValue *= Math.min(1.15, Math.sqrt(Math.log(1 + ((Math.E - 1) * ncircles) / 1000)));\n // Scale the accuracy value with rhythm complexity.\n accuracyValue *=\n 1.5 /\n (1 +\n Math.exp(-(this.difficultyAttributes.rhythmDifficulty - 1) / 2));\n // Penalize accuracy pp after the first miss.\n accuracyValue *= Math.pow(0.97, Math.max(0, this.effectiveMissCount - 1));\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModFlashlight)) {\n accuracyValue *= 1.02;\n }\n return accuracyValue;\n }\n /**\n * Calculates the flashlight performance value of the beatmap.\n */\n calculateFlashlightValue() {\n if (!this.difficultyAttributes.mods.some((m) => m instanceof ModFlashlight)) {\n return 0;\n }\n let flashlightValue = Math.pow(this.difficultyAttributes.flashlightDifficulty, 1.6) * 25;\n flashlightValue *= this.proportionalMissPenalty;\n // Account for shorter maps having a higher ratio of 0 combo/100 combo flashlight radius.\n flashlightValue *=\n 0.7 +\n 0.1 * Math.min(1, this.totalHits / 200) +\n (this.totalHits > 200\n ? 0.2 * Math.min(1, (this.totalHits - 200) / 200)\n : 0);\n // Scale the flashlight value with slider cheese penalty.\n flashlightValue *= this._flashlightSliderCheesePenalty;\n // Scale the flashlight value with deviation.\n flashlightValue *= ErrorFunction.erf(50 / (Math.SQRT2 * this._deviation));\n return flashlightValue;\n }\n /**\n * Calculates the visual performance value of the beatmap.\n */\n calculateVisualValue() {\n let visualValue = Math.pow(this.difficultyAttributes.visualDifficulty, 1.6) * 22.5;\n visualValue *= this.proportionalMissPenalty;\n // Scale the visual value with estimated full combo deviation.\n // As visual is easily \"bypassable\" with memorization, punish for memorization.\n visualValue *= this.calculateDeviationBasedLengthScaling(undefined, true);\n // Scale the visual value with slider cheese penalty.\n visualValue *= this._visualSliderCheesePenalty;\n // Scale the visual value with deviation.\n visualValue *=\n 1.065 *\n Math.pow(ErrorFunction.erf(25 / (Math.SQRT2 * this._deviation)), 0.8);\n // OD 5 SS stays the same.\n visualValue *= 0.98 + Math.pow(5, 2) / 2500;\n return visualValue;\n }\n /**\n * Calculates a strain-based miss penalty.\n *\n * Strain-based miss penalty assumes that a player will miss on the hardest parts of a map,\n * so we use the amount of relatively difficult sections to adjust miss penalty\n * to make it more punishing on maps with lower amount of hard sections.\n */\n calculateStrainBasedMissPenalty(difficultStrainCount) {\n if (this.effectiveMissCount === 0) {\n return 1;\n }\n return (0.94 /\n (this.effectiveMissCount / (2 * Math.sqrt(difficultStrainCount)) +\n 1));\n }\n /**\n * The object-based proportional miss penalty.\n */\n get proportionalMissPenalty() {\n if (this.effectiveMissCount === 0) {\n return 1;\n }\n const missProportion = (this.totalHits - this.effectiveMissCount) / (this.totalHits + 1);\n const noMissProportion = this.totalHits / (this.totalHits + 1);\n return (\n // Aim deviation-based scale.\n (ErrorFunction.erfInv(missProportion) /\n ErrorFunction.erfInv(noMissProportion)) *\n // Cheesing-based scale (i.e. 50% misses is deliberately only hitting each other\n // note, 90% misses is deliberately only hitting 1 note every 10 notes).\n Math.pow(missProportion, 8));\n }\n /**\n * Calculates the object-based length scaling based on the deviation of a player for a full\n * combo in this beatmap, taking retries into account.\n *\n * @param objectCount The amount of objects to be considered. Defaults to the amount of\n * objects in this beatmap.\n * @param punishForMemorization Whether to punish the deviation for memorization. Defaults to `false`.\n */\n calculateDeviationBasedLengthScaling(objectCount = this.totalHits, punishForMemorization = false) {\n // Assume a sample proportion of hits for a full combo to be `(n - 0.5) / n` due to\n // continuity correction, where `n` is the object count.\n const calculateProportion = (notes) => (notes - 0.5) / notes;\n // Keeping `x` notes as the benchmark, assume that a player will retry a beatmap\n // `max(1, x/n)` times relative to an `x`-note beatmap.\n const benchmarkNotes = 700;\n // Calculate the proportion equivalent to the bottom half of retry count percentile of\n // scores and take it as the player's \"real\" proportion.\n const retryProportion = (proportion, notes, tries) => proportion +\n Math.sqrt((2 * proportion * (1 - proportion)) / notes) *\n ErrorFunction.erfInv(1 / tries - 1);\n // Using the proportion, we calculate the deviation based off that proportion and again\n // compared to the hit deviation for proportion `(n - 0.5) / n`.\n let multiplier = Math.max(0, ErrorFunction.erfInv(retryProportion(calculateProportion(objectCount), objectCount, Math.max(1, benchmarkNotes / objectCount))) / ErrorFunction.erfInv(calculateProportion(benchmarkNotes)) || 0);\n // Punish for memorization if needed.\n if (punishForMemorization) {\n multiplier *= Math.min(1, Math.sqrt(objectCount / benchmarkNotes));\n }\n return multiplier;\n }\n /**\n * Estimates the player's tap deviation based on the OD, number of circles and sliders,\n * and number of 300s, 100s, 50s, and misses, assuming the player's mean hit error is 0.\n *\n * The estimation is consistent in that two SS scores on the same map\n * with the same settings will always return the same deviation.\n *\n * Sliders are treated as circles with a 50 hit window.\n *\n * Misses are ignored because they are usually due to misaiming, and 50s\n * are grouped with 100s since they are usually due to misreading.\n *\n * Inaccuracies are capped to the number of circles in the map.\n */\n calculateDeviation() {\n if (this.totalSuccessfulHits === 0) {\n return Number.POSITIVE_INFINITY;\n }\n const hitWindow300 = new OsuHitWindow(this.difficultyAttributes.overallDifficulty).hitWindowFor300();\n // Obtain the 50 and 100 hit window for droid.\n const isPrecise = this.difficultyAttributes.mods.some((m) => m instanceof ModPrecise);\n const droidHitWindow = new DroidHitWindow(DroidHitWindow.hitWindow300ToOD(hitWindow300 * this.difficultyAttributes.clockRate, isPrecise));\n const hitWindow50 = droidHitWindow.hitWindowFor50(isPrecise) /\n this.difficultyAttributes.clockRate;\n const hitWindow100 = droidHitWindow.hitWindowFor100(isPrecise) /\n this.difficultyAttributes.clockRate;\n const { n100, n50, nmiss } = this.computedAccuracy;\n const circleCount = this.difficultyAttributes.hitCircleCount;\n const missCountCircles = Math.min(nmiss, circleCount);\n const mehCountCircles = Math.min(n50, circleCount - missCountCircles);\n const okCountCircles = Math.min(n100, circleCount - missCountCircles - mehCountCircles);\n const greatCountCircles = Math.max(0, circleCount - missCountCircles - mehCountCircles - okCountCircles);\n // Assume 100s, 50s, and misses happen on circles. If there are less non-300s on circles than 300s,\n // compute the deviation on circles.\n if (greatCountCircles > 0) {\n // The probability that a player hits a circle is unknown, but we can estimate it to be\n // the number of greats on circles divided by the number of circles, and then add one\n // to the number of circles as a bias correction / bayesian prior.\n const greatProbabilityCircle = Math.max(0, greatCountCircles / (greatCountCircles + okCountCircles + 1));\n // Compute the deviation assuming 300s and 100s are normally distributed, and 50s are uniformly distributed.\n // Begin with the normal distribution first.\n const deviationOnCircles = hitWindow300 /\n (Math.SQRT2 * ErrorFunction.erfInv(greatProbabilityCircle));\n // Get the variance of the truncated variable.\n const truncatedVariance = Math.pow(deviationOnCircles, 2) -\n (Math.sqrt(2 / Math.PI) *\n hitWindow100 *\n deviationOnCircles *\n Math.exp(-0.5 * Math.pow(hitWindow100 / deviationOnCircles, 2))) /\n ErrorFunction.erf(hitWindow100 / (Math.SQRT2 * deviationOnCircles));\n // Then compute the variance for 50s.\n const mehVariance = (Math.pow(hitWindow50, 2) +\n hitWindow100 * hitWindow50 +\n Math.pow(hitWindow100, 2)) /\n 3;\n // Find the total deviation.\n return Math.sqrt(((greatCountCircles + okCountCircles) * truncatedVariance +\n mehCountCircles * mehVariance) /\n (greatCountCircles + okCountCircles + mehCountCircles));\n }\n // If there are more non-300s than there are circles, compute the deviation on sliders instead.\n // Here, all that matters is whether or not the slider was missed, since it is impossible\n // to get a 100 or 50 on a slider by mis-tapping it.\n const sliderCount = this.difficultyAttributes.sliderCount;\n const missCountSliders = Math.min(sliderCount, nmiss - missCountCircles);\n const greatCountSliders = sliderCount - missCountSliders;\n // We only get here if nothing was hit. In this case, there is no estimate for deviation.\n // Note that this is never negative, so checking if this is only equal to 0 makes sense.\n if (greatCountSliders === 0) {\n return Number.POSITIVE_INFINITY;\n }\n const greatProbabilitySlider = greatCountSliders / (sliderCount + 1);\n return (hitWindow50 /\n (Math.SQRT2 * ErrorFunction.erfInv(greatProbabilitySlider)));\n }\n /**\n * Does the same as {@link calculateDeviation}, but only for notes and inaccuracies that are relevant to tap difficulty.\n *\n * Treats all difficult speed notes as circles, so this method can sometimes return a lower deviation than {@link calculateDeviation}.\n * This is fine though, since this method is only used to scale tap pp.\n */\n calculateTapDeviation() {\n if (this.totalSuccessfulHits === 0) {\n return Number.POSITIVE_INFINITY;\n }\n const hitWindow300 = new OsuHitWindow(this.difficultyAttributes.overallDifficulty).hitWindowFor300();\n const { n100, n50, nmiss } = this.computedAccuracy;\n // Assume a fixed ratio of non-300s hit in speed notes based on speed note count ratio and OD.\n // Graph: https://www.desmos.com/calculator/31argjcxqc\n const speedNoteRatio = this.difficultyAttributes.speedNoteCount / this.totalHits;\n const nonGreatCount = n100 + n50 + nmiss;\n const nonGreatRatio = 1 -\n (Math.pow(Math.exp(Math.sqrt(hitWindow300)) + 1, 1 - speedNoteRatio) -\n 1) /\n Math.exp(Math.sqrt(hitWindow300));\n const relevantCountGreat = Math.max(0, this.difficultyAttributes.speedNoteCount -\n nonGreatCount * nonGreatRatio);\n if (relevantCountGreat === 0) {\n return Number.POSITIVE_INFINITY;\n }\n const greatProbability = relevantCountGreat / (this.difficultyAttributes.speedNoteCount + 1);\n return (hitWindow300 / (Math.SQRT2 * ErrorFunction.erfInv(greatProbability)));\n }\n toString() {\n return (this.total.toFixed(2) +\n \" pp (\" +\n this.aim.toFixed(2) +\n \" aim, \" +\n this.tap.toFixed(2) +\n \" tap, \" +\n this.accuracy.toFixed(2) +\n \" acc, \" +\n this.flashlight.toFixed(2) +\n \" flashlight, \" +\n this.visual.toFixed(2) +\n \" visual)\");\n }\n}\n//# sourceMappingURL=DroidPerformanceCalculator.js.map","import { Interpolation, MathUtils } from \"@rian8337/osu-base\";\nimport { StrainSkill } from \"../../base/StrainSkill\";\n/**\n * Used to processes strain values of difficulty hitobjects, keep track of strain levels caused by the processed objects\n * and to calculate a final difficulty value representing the difficulty of hitting all the processed objects.\n */\nexport class OsuSkill extends StrainSkill {\n /**\n * The default multiplier applied to the final difficulty value after all other calculations.\n *\n * May be overridden via {@link difficultyMultiplier}.\n */\n static defaultDifficultyMultiplier = 1.06;\n /**\n * The final multiplier to be applied to the final difficulty value after all other calculations.\n */\n difficultyMultiplier = OsuSkill.defaultDifficultyMultiplier;\n difficultyValue() {\n const strains = this.strainPeaks\n .slice()\n .sort((a, b) => b - a);\n if (this.reducedSectionCount > 0) {\n // We are reducing the highest strains first to account for extreme difficulty spikes.\n for (let i = 0; i < Math.min(strains.length, this.reducedSectionCount); ++i) {\n const scale = Math.log10(Interpolation.lerp(1, 10, MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));\n strains[i] *= Interpolation.lerp(this.reducedSectionBaseline, 1, scale);\n }\n strains.sort((a, b) => b - a);\n }\n // Difficulty is the weighted sum of the highest strains from every section.\n // We're sorting from highest to lowest strain.\n let difficulty = 0;\n let weight = 1;\n for (const strain of strains) {\n const addition = strain * weight;\n if (difficulty + addition === difficulty) {\n break;\n }\n difficulty += addition;\n weight *= this.decayWeight;\n }\n return difficulty * this.difficultyMultiplier;\n }\n}\n//# sourceMappingURL=OsuSkill.js.map","import { Spinner, Slider, MathUtils } from \"@rian8337/osu-base\";\nimport { AimEvaluator } from \"../base/AimEvaluator\";\n/**\n * An evaluator for calculating osu!standard Aim skill.\n */\nexport class OsuAimEvaluator extends AimEvaluator {\n /**\n * Evaluates the difficulty of aiming the current object, based on:\n *\n * - cursor velocity to the current object,\n * - angle difficulty,\n * - sharp velocity increases,\n * - and slider difficulty.\n *\n * @param current The current object.\n * @param withSliders Whether to take slider difficulty into account.\n */\n static evaluateDifficultyOf(current, withSliders) {\n const last = current.previous(0);\n if (current.object instanceof Spinner ||\n current.index <= 1 ||\n last?.object instanceof Spinner) {\n return 0;\n }\n const lastLast = current.previous(1);\n // Calculate the velocity to the current hitobject, which starts with a base distance / time assuming the last object is a hitcircle.\n let currentVelocity = current.lazyJumpDistance / current.strainTime;\n // But if the last object is a slider, then we extend the travel velocity through the slider into the current object.\n if (last.object instanceof Slider && withSliders) {\n // Calculate the slider velocity from slider head to slider end.\n const travelVelocity = last.travelDistance / last.travelTime;\n // Calculate the movement velocity from slider end to current object.\n const movementVelocity = current.minimumJumpDistance / current.minimumJumpTime;\n // Take the larger total combined velocity.\n currentVelocity = Math.max(currentVelocity, movementVelocity + travelVelocity);\n }\n // As above, do the same for the previous hitobject.\n let prevVelocity = last.lazyJumpDistance / last.strainTime;\n if (lastLast.object instanceof Slider && withSliders) {\n const travelVelocity = lastLast.travelDistance / lastLast.travelTime;\n const movementVelocity = last.minimumJumpDistance / last.minimumJumpTime;\n prevVelocity = Math.max(prevVelocity, movementVelocity + travelVelocity);\n }\n let wideAngleBonus = 0;\n let acuteAngleBonus = 0;\n let sliderBonus = 0;\n let velocityChangeBonus = 0;\n // Start strain with regular velocity.\n let strain = currentVelocity;\n if (\n // If rhythms are the same.\n Math.max(current.strainTime, last.strainTime) <\n 1.25 * Math.min(current.strainTime, last.strainTime) &&\n current.angle !== null &&\n last.angle !== null &&\n lastLast.angle !== null) {\n // Rewarding angles, take the smaller velocity as base.\n const angleBonus = Math.min(currentVelocity, prevVelocity);\n wideAngleBonus = this.calculateWideAngleBonus(current.angle);\n acuteAngleBonus = this.calculateAcuteAngleBonus(current.angle);\n // Only buff deltaTime exceeding 300 BPM 1/2.\n if (current.strainTime > 100) {\n acuteAngleBonus = 0;\n }\n else {\n acuteAngleBonus *=\n // Multiply by previous angle, we don't want to buff unless this is a wiggle type pattern.\n this.calculateAcuteAngleBonus(last.angle) *\n // The maximum velocity we buff is equal to 125 / strainTime.\n Math.min(angleBonus, 125 / current.strainTime) *\n // Scale buff from 300 BPM 1/2 to 400 BPM 1/2.\n Math.pow(Math.sin((Math.PI / 2) *\n Math.min(1, (100 - current.strainTime) / 25)), 2) *\n // Buff distance exceeding 50 (radius) up to 100 (diameter).\n Math.pow(Math.sin(((Math.PI / 2) *\n (MathUtils.clamp(current.lazyJumpDistance, 50, 100) -\n 50)) /\n 50), 2);\n }\n // Penalize wide angles if they're repeated, reducing the penalty as last.angle gets more acute.\n wideAngleBonus *=\n angleBonus *\n (1 -\n Math.min(wideAngleBonus, Math.pow(this.calculateWideAngleBonus(last.angle), 3)));\n // Penalize acute angles if they're repeated, reducing the penalty as lastLast.angle gets more obtuse.\n acuteAngleBonus *=\n 0.5 +\n 0.5 *\n (1 -\n Math.min(acuteAngleBonus, Math.pow(this.calculateAcuteAngleBonus(lastLast.angle), 3)));\n }\n if (Math.max(prevVelocity, currentVelocity)) {\n // We want to use the average velocity over the whole object when awarding differences, not the individual jump and slider path velocities.\n prevVelocity =\n (last.lazyJumpDistance + lastLast.travelDistance) /\n last.strainTime;\n currentVelocity =\n (current.lazyJumpDistance + last.travelDistance) /\n current.strainTime;\n // Scale with ratio of difference compared to half the max distance.\n const distanceRatio = Math.pow(Math.sin(((Math.PI / 2) * Math.abs(prevVelocity - currentVelocity)) /\n Math.max(prevVelocity, currentVelocity)), 2);\n // Reward for % distance up to 125 / strainTime for overlaps where velocity is still changing.\n const overlapVelocityBuff = Math.min(125 / Math.min(current.strainTime, last.strainTime), Math.abs(prevVelocity - currentVelocity));\n velocityChangeBonus = overlapVelocityBuff * distanceRatio;\n // Penalize for rhythm changes.\n velocityChangeBonus *= Math.pow(Math.min(current.strainTime, last.strainTime) /\n Math.max(current.strainTime, last.strainTime), 2);\n }\n if (last.travelTime) {\n // Reward sliders based on velocity.\n sliderBonus = last.travelDistance / last.travelTime;\n }\n // Add in acute angle bonus or wide angle bonus + velocity change bonus, whichever is larger.\n strain += Math.max(acuteAngleBonus * this.acuteAngleMultiplier, wideAngleBonus * this.wideAngleMultiplier +\n velocityChangeBonus * this.velocityChangeMultiplier);\n // Add in additional slider velocity bonus.\n if (withSliders) {\n strain += sliderBonus * this.sliderMultiplier;\n }\n return strain;\n }\n}\n//# sourceMappingURL=OsuAimEvaluator.js.map","import { OsuSkill } from \"./OsuSkill\";\nimport { OsuAimEvaluator } from \"../../evaluators/osu/OsuAimEvaluator\";\n/**\n * Represents the skill required to correctly aim at every object in the map with a uniform CircleSize and normalized distances.\n */\nexport class OsuAim extends OsuSkill {\n strainDecayBase = 0.15;\n reducedSectionCount = 10;\n reducedSectionBaseline = 0.75;\n decayWeight = 0.9;\n currentAimStrain = 0;\n skillMultiplier = 23.55;\n withSliders;\n constructor(mods, withSliders) {\n super(mods);\n this.withSliders = withSliders;\n }\n strainValueAt(current) {\n this.currentAimStrain *= this.strainDecay(current.deltaTime);\n this.currentAimStrain +=\n OsuAimEvaluator.evaluateDifficultyOf(current, this.withSliders) *\n this.skillMultiplier;\n return this.currentAimStrain;\n }\n calculateInitialStrain(time, current) {\n return (this.currentAimStrain *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n /**\n * @param current The hitobject to save to.\n */\n saveToHitObject(current) {\n if (this.withSliders) {\n current.aimStrainWithSliders = this.currentAimStrain;\n }\n else {\n current.aimStrainWithoutSliders = this.currentAimStrain;\n }\n }\n}\n//# sourceMappingURL=OsuAim.js.map","import { MathUtils, Spinner } from \"@rian8337/osu-base\";\nimport { SpeedEvaluator } from \"../base/SpeedEvaluator\";\n/**\n * An evaluator for calculating osu!standard speed skill.\n */\nexport class OsuSpeedEvaluator extends SpeedEvaluator {\n /**\n * Spacing threshold for a single hitobject spacing.\n */\n static SINGLE_SPACING_THRESHOLD = 125;\n /**\n * Evaluates the difficulty of tapping the current object, based on:\n *\n * - time between pressing the previous and current object,\n * - distance between those objects,\n * - and how easily they can be cheesed.\n *\n * @param current The current object.\n * @param greatWindow The great hit window of the current object.\n */\n static evaluateDifficultyOf(current, greatWindow) {\n if (current.object instanceof Spinner) {\n return 0;\n }\n const prev = current.previous(0);\n let strainTime = current.strainTime;\n const greatWindowFull = greatWindow * 2;\n // Nerf doubletappable doubles.\n const next = current.next(0);\n let doubletapness = 1;\n if (next) {\n const currentDeltaTime = Math.max(1, current.deltaTime);\n const nextDeltaTime = Math.max(1, next.deltaTime);\n const deltaDifference = Math.abs(nextDeltaTime - currentDeltaTime);\n const speedRatio = currentDeltaTime / Math.max(currentDeltaTime, deltaDifference);\n const windowRatio = Math.pow(Math.min(1, currentDeltaTime / greatWindowFull), 2);\n doubletapness = Math.pow(speedRatio, 1 - windowRatio);\n }\n // Cap deltatime to the OD 300 hitwindow.\n // 0.93 is derived from making sure 260 BPM 1/4 OD8 streams aren't nerfed harshly, whilst 0.92 limits the effect of the cap.\n strainTime /= MathUtils.clamp(strainTime / greatWindowFull / 0.93, 0.92, 1);\n let speedBonus = 1;\n if (strainTime < this.minSpeedBonus) {\n speedBonus +=\n 0.75 * Math.pow((this.minSpeedBonus - strainTime) / 40, 2);\n }\n const travelDistance = prev?.travelDistance ?? 0;\n const distance = Math.min(this.SINGLE_SPACING_THRESHOLD, travelDistance + current.minimumJumpDistance);\n return (((speedBonus +\n speedBonus *\n Math.pow(distance / this.SINGLE_SPACING_THRESHOLD, 3.5)) *\n doubletapness) /\n strainTime);\n }\n}\n//# sourceMappingURL=OsuSpeedEvaluator.js.map","import { Spinner, Slider } from \"@rian8337/osu-base\";\nimport { RhythmEvaluator } from \"../base/RhythmEvaluator\";\n/**\n * An evaluator for calculating osu!standard Rhythm skill.\n */\nexport class OsuRhythmEvaluator extends RhythmEvaluator {\n /**\n * Calculates a rhythm multiplier for the difficulty of the tap associated\n * with historic data of the current object.\n *\n * @param current The current object.\n * @param greatWindow The great hit window of the current object.\n */\n static evaluateDifficultyOf(current, greatWindow) {\n if (current.object instanceof Spinner) {\n return 0;\n }\n let previousIslandSize = 0;\n let rhythmComplexitySum = 0;\n let islandSize = 1;\n // Store the ratio of the current start of an island to buff for tighter rhythms.\n let startRatio = 0;\n let firstDeltaSwitch = false;\n const historicalNoteCount = Math.min(current.index, 32);\n let rhythmStart = 0;\n while (rhythmStart < historicalNoteCount - 2 &&\n current.startTime - current.previous(rhythmStart).startTime <\n this.historyTimeMax) {\n ++rhythmStart;\n }\n for (let i = rhythmStart; i > 0; --i) {\n const currentObject = current.previous(i - 1);\n const prevObject = current.previous(i);\n const lastObject = current.previous(i + 1);\n // Scale note 0 to 1 from history to now.\n let currentHistoricalDecay = (this.historyTimeMax -\n (current.startTime - currentObject.startTime)) /\n this.historyTimeMax;\n // Either we're limited by time or limited by object count.\n currentHistoricalDecay = Math.min(currentHistoricalDecay, (historicalNoteCount - i) / historicalNoteCount);\n const currentDelta = currentObject.strainTime;\n const prevDelta = prevObject.strainTime;\n const lastDelta = lastObject.strainTime;\n const currentRatio = 1 +\n 6 *\n Math.min(0.5, Math.pow(Math.sin(Math.PI /\n (Math.min(prevDelta, currentDelta) /\n Math.max(prevDelta, currentDelta))), 2));\n const windowPenalty = Math.min(1, Math.max(0, Math.abs(prevDelta - currentDelta) - greatWindow * 0.6) /\n (greatWindow * 0.6));\n let effectiveRatio = windowPenalty * currentRatio;\n if (firstDeltaSwitch) {\n if (prevDelta <= 1.25 * currentDelta &&\n prevDelta * 1.25 >= currentDelta) {\n // Island is still progressing, count size.\n if (islandSize < 7) {\n ++islandSize;\n }\n }\n else {\n if (currentObject.object instanceof Slider) {\n // BPM change is into slider, this is easy acc window.\n effectiveRatio /= 8;\n }\n if (prevObject.object instanceof Slider) {\n // BPM change was from a slider, this is typically easier than circle -> circle.\n effectiveRatio /= 4;\n }\n if (previousIslandSize === islandSize) {\n // Repeated island size (ex: triplet -> triplet).\n effectiveRatio /= 4;\n }\n if (previousIslandSize % 2 === islandSize % 2) {\n // Repeated island polarity (2 -> 4, 3 -> 5).\n effectiveRatio /= 2;\n }\n if (lastDelta > prevDelta + 10 &&\n prevDelta > currentDelta + 10) {\n // Previous increase happened a note ago.\n // Albeit this is a 1/1 -> 1/2-1/4 type of transition, we don't want to buff this.\n effectiveRatio /= 8;\n }\n rhythmComplexitySum +=\n (((Math.sqrt(effectiveRatio * startRatio) *\n currentHistoricalDecay *\n Math.sqrt(4 + islandSize)) /\n 2) *\n Math.sqrt(4 + previousIslandSize)) /\n 2;\n startRatio = effectiveRatio;\n previousIslandSize = islandSize;\n if (prevDelta * 1.25 < currentDelta) {\n // We're slowing down, stop counting.\n // If we're speeding up, this stays as is and we keep counting island size.\n firstDeltaSwitch = false;\n }\n islandSize = 1;\n }\n }\n else if (prevDelta > 1.25 * currentDelta) {\n // We want to be speeding up.\n // Begin counting island until we change speed again.\n firstDeltaSwitch = true;\n startRatio = effectiveRatio;\n islandSize = 1;\n }\n }\n return Math.sqrt(4 + rhythmComplexitySum * this.rhythmMultiplier) / 2;\n }\n}\n//# sourceMappingURL=OsuRhythmEvaluator.js.map","import { OsuSkill } from \"./OsuSkill\";\nimport { OsuSpeedEvaluator } from \"../../evaluators/osu/OsuSpeedEvaluator\";\nimport { OsuRhythmEvaluator } from \"../../evaluators/osu/OsuRhythmEvaluator\";\n/**\n * Represents the skill required to press keys or tap with regards to keeping up with the speed at which objects need to be hit.\n */\nexport class OsuSpeed extends OsuSkill {\n strainDecayBase = 0.3;\n reducedSectionCount = 5;\n reducedSectionBaseline = 0.75;\n difficultyMultiplier = 1.04;\n decayWeight = 0.9;\n currentSpeedStrain = 0;\n currentRhythm = 0;\n skillMultiplier = 1375;\n greatWindow;\n constructor(mods, greatWindow) {\n super(mods);\n this.greatWindow = greatWindow;\n }\n /**\n * @param current The hitobject to calculate.\n */\n strainValueAt(current) {\n this.currentSpeedStrain *= this.strainDecay(current.strainTime);\n this.currentSpeedStrain +=\n OsuSpeedEvaluator.evaluateDifficultyOf(current, this.greatWindow) *\n this.skillMultiplier;\n this.currentRhythm = OsuRhythmEvaluator.evaluateDifficultyOf(current, this.greatWindow);\n return this.currentSpeedStrain * this.currentRhythm;\n }\n calculateInitialStrain(time, current) {\n return (this.currentSpeedStrain *\n this.currentRhythm *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n /**\n * @param current The hitobject to save to.\n */\n saveToHitObject(current) {\n current.speedStrain = this.currentSpeedStrain * this.currentRhythm;\n current.rhythmMultiplier = this.currentRhythm;\n }\n}\n//# sourceMappingURL=OsuSpeed.js.map","import { Modes, Slider, Spinner } from \"@rian8337/osu-base\";\nimport { FlashlightEvaluator } from \"../base/FlashlightEvaluator\";\n/**\n * An evaluator for calculating osu!standard Flashlight skill.\n */\nexport class OsuFlashlightEvaluator extends FlashlightEvaluator {\n /**\n * Evaluates the difficulty of memorizing and hitting the current object, based on:\n *\n * - distance between a number of previous objects and the current object,\n * - the visual opacity of the current object,\n * - the angle made by the current object,\n * - length and speed of the current object (for sliders),\n * - and whether Hidden mod is enabled.\n *\n * @param current The current object.\n * @param isHiddenMod Whether the Hidden mod is enabled.\n */\n static evaluateDifficultyOf(current, isHiddenMod) {\n if (current.object instanceof Spinner) {\n return 0;\n }\n const scalingFactor = 52 / current.object.getRadius(Modes.osu);\n let smallDistNerf = 1;\n let cumulativeStrainTime = 0;\n let result = 0;\n let last = current;\n let angleRepeatCount = 0;\n for (let i = 0; i < Math.min(current.index, 10); ++i) {\n const currentObject = current.previous(i);\n if (!(currentObject.object instanceof Spinner)) {\n const jumpDistance = current.object\n .getStackedPosition(Modes.osu)\n .subtract(currentObject.object.endPosition).length;\n cumulativeStrainTime += last.strainTime;\n // We want to nerf objects that can be easily seen within the Flashlight circle radius.\n if (i === 0) {\n smallDistNerf = Math.min(1, jumpDistance / 75);\n }\n // We also want to nerf stacks so that only the first object of the stack is accounted for.\n const stackNerf = Math.min(1, currentObject.lazyJumpDistance / scalingFactor / 25);\n // Bonus based on how visible the object is.\n const opacityBonus = 1 +\n this.maxOpacityBonus *\n (1 -\n current.opacityAt(currentObject.object.startTime, isHiddenMod));\n result +=\n (stackNerf * opacityBonus * scalingFactor * jumpDistance) /\n cumulativeStrainTime;\n if (currentObject.angle !== null && current.angle !== null) {\n // Objects further back in time should count less for the nerf.\n if (Math.abs(currentObject.angle - current.angle) < 0.02) {\n angleRepeatCount += Math.max(0, 1 - 0.1 * i);\n }\n }\n }\n last = currentObject;\n }\n result = Math.pow(smallDistNerf * result, 2);\n // Additional bonus for Hidden due to there being no approach circles.\n if (isHiddenMod) {\n result *= 1 + this.hiddenBonus;\n }\n // Nerf patterns with repeated angles.\n result *=\n this.minAngleMultiplier +\n (1 - this.minAngleMultiplier) / (angleRepeatCount + 1);\n let sliderBonus = 0;\n if (current.object instanceof Slider) {\n // Invert the scaling factor to determine the true travel distance independent of circle size.\n const pixelTravelDistance = current.object.lazyTravelDistance / scalingFactor;\n // Reward sliders based on velocity.\n sliderBonus = Math.pow(Math.max(0, pixelTravelDistance / current.travelTime - this.minVelocity), 0.5);\n // Longer sliders require more memorization.\n sliderBonus *= pixelTravelDistance;\n // Nerf sliders with repeats, as less memorization is required.\n if (current.object.repeats > 0)\n sliderBonus /= current.object.repeats + 1;\n }\n result += sliderBonus * this.sliderMultiplier;\n return result;\n }\n}\n//# sourceMappingURL=OsuFlashlightEvaluator.js.map","import { ModHidden } from \"@rian8337/osu-base\";\nimport { OsuFlashlightEvaluator } from \"../../evaluators/osu/OsuFlashlightEvaluator\";\nimport { OsuSkill } from \"./OsuSkill\";\n/**\n * Represents the skill required to memorize and hit every object in a beatmap with the Flashlight mod enabled.\n */\nexport class OsuFlashlight extends OsuSkill {\n strainDecayBase = 0.15;\n reducedSectionCount = 0;\n reducedSectionBaseline = 1;\n decayWeight = 1;\n currentFlashlightStrain = 0;\n skillMultiplier = 0.052;\n isHidden;\n constructor(mods) {\n super(mods);\n this.isHidden = mods.some((m) => m instanceof ModHidden);\n }\n strainValueAt(current) {\n this.currentFlashlightStrain *= this.strainDecay(current.deltaTime);\n this.currentFlashlightStrain +=\n OsuFlashlightEvaluator.evaluateDifficultyOf(current, this.isHidden) * this.skillMultiplier;\n return this.currentFlashlightStrain;\n }\n calculateInitialStrain(time, current) {\n return (this.currentFlashlightStrain *\n this.strainDecay(time - (current.previous(0)?.startTime ?? 0)));\n }\n saveToHitObject(current) {\n current.flashlightStrain = this.currentFlashlightStrain;\n }\n}\n//# sourceMappingURL=OsuFlashlight.js.map","import { OsuAim } from \"./skills/osu/OsuAim\";\nimport { OsuSpeed } from \"./skills/osu/OsuSpeed\";\nimport { DifficultyCalculator } from \"./base/DifficultyCalculator\";\nimport { OsuFlashlight } from \"./skills/osu/OsuFlashlight\";\nimport { ModRelax, OsuHitWindow, ModFlashlight, ModTouchDevice, Modes, HitObjectStackEvaluator, MapStats, ModUtil, CircleSizeCalculator, } from \"@rian8337/osu-base\";\n/**\n * A difficulty calculator for osu!standard gamemode.\n */\nexport class OsuDifficultyCalculator extends DifficultyCalculator {\n /**\n * The aim star rating of the beatmap.\n */\n aim = 0;\n /**\n * The speed star rating of the beatmap.\n */\n speed = 0;\n /**\n * The flashlight star rating of the beatmap.\n */\n flashlight = 0;\n attributes = {\n speedDifficulty: 0,\n mods: [],\n starRating: 0,\n maxCombo: 0,\n aimDifficulty: 0,\n flashlightDifficulty: 0,\n speedNoteCount: 0,\n sliderFactor: 0,\n clockRate: 1,\n approachRate: 0,\n overallDifficulty: 0,\n hitCircleCount: 0,\n sliderCount: 0,\n spinnerCount: 0,\n };\n get cacheableAttributes() {\n return {\n ...this.attributes,\n mods: ModUtil.modsToOsuString(this.attributes.mods),\n };\n }\n difficultyMultiplier = 0.0675;\n mode = Modes.osu;\n /**\n * Calculates the aim star rating of the beatmap and stores it in this instance.\n */\n calculateAim() {\n const aimSkill = new OsuAim(this.mods, true);\n const aimSkillWithoutSliders = new OsuAim(this.mods, false);\n this.calculateSkills(aimSkill, aimSkillWithoutSliders);\n this.postCalculateAim(aimSkill, aimSkillWithoutSliders);\n }\n /**\n * Calculates the speed star rating of the beatmap and stores it in this instance.\n */\n calculateSpeed() {\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.speed = this.attributes.speedDifficulty = 0;\n return;\n }\n const speedSkill = new OsuSpeed(this.mods, new OsuHitWindow(this.stats.od).hitWindowFor300());\n this.calculateSkills(speedSkill);\n this.postCalculateSpeed(speedSkill);\n }\n /**\n * Calculates the flashlight star rating of the beatmap and stores it in this instance.\n */\n calculateFlashlight() {\n const flashlightSkill = new OsuFlashlight(this.mods);\n this.calculateSkills(flashlightSkill);\n this.postCalculateFlashlight(flashlightSkill);\n }\n calculateTotal() {\n const aimPerformanceValue = this.basePerformanceValue(this.aim);\n const speedPerformanceValue = this.basePerformanceValue(this.speed);\n let flashlightPerformanceValue = 0;\n if (this.mods.some((m) => m instanceof ModFlashlight)) {\n flashlightPerformanceValue = Math.pow(this.flashlight, 2) * 25;\n }\n const basePerformanceValue = Math.pow(Math.pow(aimPerformanceValue, 1.1) +\n Math.pow(speedPerformanceValue, 1.1) +\n Math.pow(flashlightPerformanceValue, 1.1), 1 / 1.1);\n if (basePerformanceValue > 1e-5) {\n // Document for formula derivation:\n // https://docs.google.com/document/d/10DZGYYSsT_yjz2Mtp6yIJld0Rqx4E-vVHupCqiM4TNI/edit\n this.total = this.attributes.starRating =\n Math.cbrt(1.14) *\n 0.027 *\n (Math.cbrt((100000 / Math.pow(2, 1 / 1.1)) * basePerformanceValue) +\n 4);\n }\n else {\n this.total = this.attributes.starRating = 0;\n }\n }\n calculateAll() {\n const skills = this.createSkills();\n const isRelax = this.mods.some((m) => m instanceof ModRelax);\n this.calculateSkills(...skills);\n const aimSkill = skills[0];\n const aimSkillWithoutSliders = skills[1];\n const speedSkill = skills[2];\n const flashlightSkill = skills[3];\n this.postCalculateAim(aimSkill, aimSkillWithoutSliders);\n if (isRelax) {\n this.speed = 0;\n this.attributes.speedDifficulty = 0;\n }\n else {\n this.postCalculateSpeed(speedSkill);\n }\n this.calculateSpeedAttributes();\n this.postCalculateFlashlight(flashlightSkill);\n this.calculateTotal();\n }\n toString() {\n return (this.total.toFixed(2) +\n \" stars (\" +\n this.aim.toFixed(2) +\n \" aim, \" +\n this.speed.toFixed(2) +\n \" speed, \" +\n this.flashlight.toFixed(2) +\n \" flashlight)\");\n }\n preProcess() {\n const scale = CircleSizeCalculator.standardCSToStandardScale(this.stats.cs);\n for (const object of this.beatmap.hitObjects.objects) {\n object.osuScale = scale;\n }\n const ar = new MapStats({\n ar: this.beatmap.difficulty.ar,\n mods: ModUtil.removeSpeedChangingMods(this.mods),\n }).calculate().ar;\n HitObjectStackEvaluator.applyStandardStacking(this.beatmap.formatVersion, this.beatmap.hitObjects.objects, ar, this.beatmap.general.stackLeniency);\n }\n createSkills() {\n return [\n new OsuAim(this.mods, true),\n new OsuAim(this.mods, false),\n new OsuSpeed(this.mods, new OsuHitWindow(this.stats.od).hitWindowFor300()),\n new OsuFlashlight(this.mods),\n ];\n }\n /**\n * Called after aim skill calculation.\n *\n * @param aimSkill The aim skill that considers sliders.\n * @param aimSkillWithoutSliders The aim skill that doesn't consider sliders.\n */\n postCalculateAim(aimSkill, aimSkillWithoutSliders) {\n this.strainPeaks.aimWithSliders = aimSkill.strainPeaks;\n this.strainPeaks.aimWithoutSliders = aimSkillWithoutSliders.strainPeaks;\n this.aim = this.starValue(aimSkill.difficultyValue());\n if (this.aim) {\n this.attributes.sliderFactor =\n this.starValue(aimSkillWithoutSliders.difficultyValue()) /\n this.aim;\n }\n if (this.mods.some((m) => m instanceof ModTouchDevice)) {\n this.aim = Math.pow(this.aim, 0.8);\n }\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.aim *= 0.9;\n }\n this.attributes.aimDifficulty = this.aim;\n }\n /**\n * Called after speed skill calculation.\n *\n * @param speedSkill The speed skill.\n */\n postCalculateSpeed(speedSkill) {\n this.strainPeaks.speed = speedSkill.strainPeaks;\n this.speed = this.attributes.speedDifficulty = this.starValue(speedSkill.difficultyValue());\n }\n /**\n * Calculates speed-related attributes.\n */\n calculateSpeedAttributes() {\n const objectStrains = this.objects.map((v) => v.speedStrain);\n const maxStrain = Math.max(...objectStrains);\n if (maxStrain) {\n this.attributes.speedNoteCount = objectStrains.reduce((total, next) => total + 1 / (1 + Math.exp(-((next / maxStrain) * 12 - 6))), 0);\n }\n }\n /**\n * Called after flashlight skill calculation.\n *\n * @param flashlightSkill The flashlight skill.\n */\n postCalculateFlashlight(flashlightSkill) {\n this.strainPeaks.flashlight = flashlightSkill.strainPeaks;\n this.flashlight = this.starValue(flashlightSkill.difficultyValue());\n if (this.mods.some((m) => m instanceof ModTouchDevice)) {\n this.flashlight = Math.pow(this.flashlight, 0.8);\n }\n if (this.mods.some((m) => m instanceof ModRelax)) {\n this.flashlight *= 0.7;\n }\n this.attributes.flashlightDifficulty = this.flashlight;\n }\n}\n//# sourceMappingURL=OsuDifficultyCalculator.js.map","import { MapStats } from \"@rian8337/osu-base\";\nimport { DroidDifficultyCalculator } from \"./DroidDifficultyCalculator\";\nimport { OsuDifficultyCalculator } from \"./OsuDifficultyCalculator\";\n/**\n * A difficulty calculator that calculates for both osu!droid and osu!standard gamemode.\n */\nexport class MapStars {\n /**\n * The osu!droid difficulty calculator of the beatmap.\n */\n droid;\n /**\n * The osu!standard difficulty calculator of the beatmap.\n */\n osu;\n /**\n * Constructs this instance and calculates the given beatmap's osu!droid and osu!standard difficulty.\n *\n * @param beatmap The beatmap to calculate.\n * @param options Options for the difficulty calculation.\n */\n constructor(beatmap, options) {\n const stats = new MapStats({\n speedMultiplier: options?.stats?.speedMultiplier ?? 1,\n isForceAR: options?.stats?.isForceAR ?? false,\n oldStatistics: options?.stats?.oldStatistics ?? false,\n });\n this.droid = new DroidDifficultyCalculator(beatmap).calculate({\n ...options,\n stats,\n });\n this.osu = new OsuDifficultyCalculator(beatmap).calculate({\n ...options,\n stats,\n });\n }\n /**\n * Returns a string representative of the class.\n */\n toString() {\n return `${this.droid.toString()}\\n${this.osu.toString()}`;\n }\n}\n//# sourceMappingURL=MapStars.js.map","import { Accuracy, ModHidden, ModRelax, ModScoreV2, ModFlashlight, Modes, } from \"@rian8337/osu-base\";\nimport { PerformanceCalculator } from \"./base/PerformanceCalculator\";\n/**\n * A performance points calculator that calculates performance points for osu!standard gamemode.\n */\nexport class OsuPerformanceCalculator extends PerformanceCalculator {\n /**\n * The aim performance value.\n */\n aim = 0;\n /**\n * The speed performance value.\n */\n speed = 0;\n /**\n * The accuracy performance value.\n */\n accuracy = 0;\n /**\n * The flashlight performance value.\n */\n flashlight = 0;\n finalMultiplier = 1.14;\n mode = Modes.osu;\n calculateValues() {\n this.aim = this.calculateAimValue();\n this.speed = this.calculateSpeedValue();\n this.accuracy = this.calculateAccuracyValue();\n this.flashlight = this.calculateFlashlightValue();\n }\n calculateTotalValue() {\n return (Math.pow(Math.pow(this.aim, 1.1) +\n Math.pow(this.speed, 1.1) +\n Math.pow(this.accuracy, 1.1) +\n Math.pow(this.flashlight, 1.1), 1 / 1.1) * this.finalMultiplier);\n }\n /**\n * Calculates the aim performance value of the beatmap.\n */\n calculateAimValue() {\n let aimValue = this.baseValue(this.difficultyAttributes.aimDifficulty);\n // Longer maps are worth more\n let lengthBonus = 0.95 + 0.4 * Math.min(1, this.totalHits / 2000);\n if (this.totalHits > 2000) {\n lengthBonus += Math.log10(this.totalHits / 2000) * 0.5;\n }\n aimValue *= lengthBonus;\n if (this.effectiveMissCount > 0) {\n // Penalize misses by assessing # of misses relative to the total # of objects.\n // Default a 3% reduction for any # of misses.\n aimValue *=\n 0.97 *\n Math.pow(1 -\n Math.pow(this.effectiveMissCount / this.totalHits, 0.775), this.effectiveMissCount);\n }\n // Combo scaling\n aimValue *= this.comboPenalty;\n const calculatedAR = this.difficultyAttributes.approachRate;\n if (!this.difficultyAttributes.mods.some((m) => m instanceof ModRelax)) {\n // AR scaling\n let arFactor = 0;\n if (calculatedAR > 10.33) {\n arFactor += 0.3 * (calculatedAR - 10.33);\n }\n else if (calculatedAR < 8) {\n arFactor += 0.05 * (8 - calculatedAR);\n }\n // Buff for longer maps with high AR.\n aimValue *= 1 + arFactor * lengthBonus;\n }\n // We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModHidden)) {\n aimValue *= 1 + 0.04 * (12 - calculatedAR);\n }\n // Scale the aim value with slider factor to nerf very likely dropped sliderends.\n aimValue *= this.sliderNerfFactor;\n // Scale the aim value with accuracy.\n aimValue *= this.computedAccuracy.value();\n // It is also important to consider accuracy difficulty when doing that.\n const odScaling = Math.pow(this.difficultyAttributes.overallDifficulty, 2) / 2500;\n aimValue *= 0.98 + odScaling;\n return aimValue;\n }\n /**\n * Calculates the speed performance value of the beatmap.\n */\n calculateSpeedValue() {\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModRelax)) {\n return 0;\n }\n let speedValue = this.baseValue(this.difficultyAttributes.speedDifficulty);\n // Longer maps are worth more\n let lengthBonus = 0.95 + 0.4 * Math.min(1, this.totalHits / 2000);\n if (this.totalHits > 2000) {\n lengthBonus += Math.log10(this.totalHits / 2000) * 0.5;\n }\n speedValue *= lengthBonus;\n if (this.effectiveMissCount > 0) {\n // Penalize misses by assessing # of misses relative to the total # of objects.\n // Default a 3% reduction for any # of misses.\n speedValue *=\n 0.97 *\n Math.pow(1 -\n Math.pow(this.effectiveMissCount / this.totalHits, 0.775), Math.pow(this.effectiveMissCount, 0.875));\n }\n // Combo scaling\n speedValue *= this.comboPenalty;\n // AR scaling\n const calculatedAR = this.difficultyAttributes.approachRate;\n if (calculatedAR > 10.33) {\n // Buff for longer maps with high AR.\n speedValue *= 1 + 0.3 * (calculatedAR - 10.33) * lengthBonus;\n }\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModHidden)) {\n speedValue *= 1 + 0.04 * (12 - calculatedAR);\n }\n // Calculate accuracy assuming the worst case scenario.\n const countGreat = this.computedAccuracy.n300;\n const countOk = this.computedAccuracy.n100;\n const countMeh = this.computedAccuracy.n50;\n const relevantTotalDiff = this.totalHits - this.difficultyAttributes.speedNoteCount;\n const relevantAccuracy = new Accuracy(this.difficultyAttributes.speedNoteCount > 0\n ? {\n n300: Math.max(0, countGreat - relevantTotalDiff),\n n100: Math.max(0, countOk - Math.max(0, relevantTotalDiff - countGreat)),\n n50: Math.max(0, countMeh -\n Math.max(0, relevantTotalDiff - countGreat - countOk)),\n }\n : // Set accuracy to 0.\n { n300: 0, nobjects: 1 });\n // Scale the speed value with accuracy and OD.\n speedValue *=\n (0.95 +\n Math.pow(this.difficultyAttributes.overallDifficulty, 2) /\n 750) *\n Math.pow((this.computedAccuracy.value() +\n relevantAccuracy.value(this.difficultyAttributes.speedNoteCount)) /\n 2, (14.5 -\n Math.max(this.difficultyAttributes.overallDifficulty, 8)) /\n 2);\n // Scale the speed value with # of 50s to punish doubletapping.\n speedValue *= Math.pow(0.99, Math.max(0, this.computedAccuracy.n50 - this.totalHits / 500));\n return speedValue;\n }\n /**\n * Calculates the accuracy performance value of the beatmap.\n */\n calculateAccuracyValue() {\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModRelax)) {\n return 0;\n }\n const ncircles = this.difficultyAttributes.mods.some((m) => m instanceof ModScoreV2)\n ? this.totalHits - this.difficultyAttributes.spinnerCount\n : this.difficultyAttributes.hitCircleCount;\n if (ncircles === 0) {\n return 0;\n }\n const realAccuracy = new Accuracy({\n ...this.computedAccuracy,\n n300: this.computedAccuracy.n300 - (this.totalHits - ncircles),\n });\n // Lots of arbitrary values from testing.\n // Considering to use derivation from perfect accuracy in a probabilistic manner - assume normal distribution\n let accuracyValue = Math.pow(1.52163, this.difficultyAttributes.overallDifficulty) *\n // It is possible to reach a negative accuracy with this formula. Cap it at zero - zero points.\n Math.pow(realAccuracy.n300 < 0 ? 0 : realAccuracy.value(), 24) *\n 2.83;\n // Bonus for many hitcircles - it's harder to keep good accuracy up for longer\n accuracyValue *= Math.min(1.15, Math.pow(ncircles / 1000, 0.3));\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModHidden)) {\n accuracyValue *= 1.08;\n }\n if (this.difficultyAttributes.mods.some((m) => m instanceof ModFlashlight)) {\n accuracyValue *= 1.02;\n }\n return accuracyValue;\n }\n /**\n * Calculates the flashlight performance value of the beatmap.\n */\n calculateFlashlightValue() {\n if (!this.difficultyAttributes.mods.some((m) => m instanceof ModFlashlight)) {\n return 0;\n }\n let flashlightValue = Math.pow(this.difficultyAttributes.flashlightDifficulty, 2) * 25;\n // Combo scaling\n flashlightValue *= this.comboPenalty;\n if (this.effectiveMissCount > 0) {\n // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.\n flashlightValue *=\n 0.97 *\n Math.pow(1 -\n Math.pow(this.effectiveMissCount / this.totalHits, 0.775), Math.pow(this.effectiveMissCount, 0.875));\n }\n // Account for shorter maps having a higher ratio of 0 combo/100 combo flashlight radius.\n flashlightValue *=\n 0.7 +\n 0.1 * Math.min(1, this.totalHits / 200) +\n (this.totalHits > 200\n ? 0.2 * Math.min(1, (this.totalHits - 200) / 200)\n : 0);\n // Scale the flashlight value with accuracy slightly.\n flashlightValue *= 0.5 + this.computedAccuracy.value() / 2;\n // It is also important to consider accuracy difficulty when doing that.\n const odScaling = Math.pow(this.difficultyAttributes.overallDifficulty, 2) / 2500;\n flashlightValue *= 0.98 + odScaling;\n return flashlightValue;\n }\n toString() {\n return (this.total.toFixed(2) +\n \" pp (\" +\n this.aim.toFixed(2) +\n \" aim, \" +\n this.speed.toFixed(2) +\n \" speed, \" +\n this.accuracy.toFixed(2) +\n \" acc, \" +\n this.flashlight.toFixed(2) +\n \" flashlight)\");\n }\n}\n//# sourceMappingURL=OsuPerformanceCalculator.js.map"],"names":["ModHidden","MathUtils","Spinner","Modes","Slider","Precision","SliderRepeat","MapStats","Utils","Interpolation","ErrorFunction","OsuHitWindow","ModUtil","ModRelax","ModFlashlight","CircleSizeCalculator","HitObjectStackEvaluator","Accuracy","ModNoFail","ModSpunOut","ModScoreV2","ModPrecise","DroidHitWindow","ModTouchDevice"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/evaluators/base/AimEvaluator.ts","../src/base/DifficultyCalculator.ts","../src/preprocessing/DifficultyHitObject.ts","../src/evaluators/droid/DroidAimEvaluator.ts","../src/base/Skill.ts","../src/base/StrainSkill.ts","../src/skills/droid/DroidSkill.ts","../src/skills/droid/DroidAim.ts","../src/evaluators/base/SpeedEvaluator.ts","../src/evaluators/droid/DroidTapEvaluator.ts","../src/skills/droid/DroidTap.ts","../src/evaluators/base/FlashlightEvaluator.ts","../src/evaluators/droid/DroidFlashlightEvaluator.ts","../src/skills/droid/DroidFlashlight.ts","../src/evaluators/base/RhythmEvaluator.ts","../src/evaluators/droid/DroidRhythmEvaluator.ts","../src/skills/droid/DroidRhythm.ts","../src/evaluators/droid/DroidVisualEvaluator.ts","../src/skills/droid/DroidVisual.ts","../src/preprocessing/DroidDifficultyHitObject.ts","../src/DroidDifficultyCalculator.ts","../src/base/PerformanceCalculator.ts","../src/DroidPerformanceCalculator.ts","../src/skills/osu/OsuSkill.ts","../src/evaluators/osu/OsuAimEvaluator.ts","../src/skills/osu/OsuAim.ts","../src/evaluators/osu/OsuSpeedEvaluator.ts","../src/evaluators/osu/OsuRhythmEvaluator.ts","../src/skills/osu/OsuSpeed.ts","../src/evaluators/osu/OsuFlashlightEvaluator.ts","../src/skills/osu/OsuFlashlight.ts","../src/preprocessing/OsuDifficultyHitObject.ts","../src/OsuDifficultyCalculator.ts","../src/OsuPerformanceCalculator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["BeatmapConverter","ModHidden","MathUtils","Slider","Modes","Spinner","SliderRepeat","Interpolation","ErrorFunction","OsuHitWindow","ModUtil","ModRelax","ModFlashlight","ModDifficultyAdjust","calculateDroidDifficultyStatistics","Accuracy","Utils","ModNoFail","ModSpunOut","ModScoreV2","ModPrecise","DroidHitWindow","calculateOsuDifficultyStatistics","ModTouchDevice"],"mappings":"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"}