mirror of
https://github.com/ppy/osu.git
synced 2025-03-05 17:23:21 +08:00
More accented renaming + improve comments.
This commit is contained in:
parent
a1f5bc04aa
commit
5e34c2497a
@ -42,31 +42,36 @@ namespace osu.Game.Modes.Taiko.Scoring
|
|||||||
private const double hp_hit_great = 0.03;
|
private const double hp_hit_great = 0.03;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The HP awarded for a <see cref="TaikoHitResult.Good"/> hit at HP >= 5.
|
/// The minimum HP awarded for a <see cref="TaikoHitResult.Good"/> hit.
|
||||||
|
/// This occurs when HP Drain >= 5.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const double hp_hit_good = 0.011;
|
private const double hp_hit_good_min = 0.011;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The HP awarded for a <see cref="TaikoHitResult.Good"/> hit at HP = 0.
|
/// The maximum HP awarded for a <see cref="TaikoHitResult.Good"/> hit.
|
||||||
|
/// This occurs when HP Drain = 0.
|
||||||
/// <para>
|
/// <para>
|
||||||
/// Yes, this is incorrect, and goods at HP = 0 will award more HP than greats.
|
/// Yes, this is incorrect, and goods at HP = 0 will award more HP than greats.
|
||||||
/// This is legacy and should be fixed, but is kept as is for now for compatibility.
|
/// This is legacy and should be fixed, but is kept as is for now for compatibility.
|
||||||
/// </para>
|
/// </para>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const double hp_hit_good_max = hp_hit_good * 8;
|
private const double hp_hit_good_max = hp_hit_good_min * 8;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The HP deducted for a <see cref="HitResult.Miss"/> at HP = 0.
|
/// The minimum HP deducted for a <see cref="HitResult.Miss"/>.
|
||||||
|
/// This occurs when HP Drain = 0.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const double hp_miss_min = -0.0018;
|
private const double hp_miss_min = -0.0018;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The HP deducted for a <see cref="HitResult.Miss"/> at HP = 5.
|
/// The median HP deducted for a <see cref="HitResult.Miss"/>.
|
||||||
|
/// This occurs when HP Drain = 5.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const double hp_miss_mid = -0.0075;
|
private const double hp_miss_mid = -0.0075;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The HP deducted for a <see cref="HitResult.Miss"/> at HP = 10.
|
/// The maximum HP deducted for a <see cref="HitResult.Miss"/>.
|
||||||
|
/// This occurs when HP Drain = 10.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private const double hp_miss_max = -0.12;
|
private const double hp_miss_max = -0.12;
|
||||||
|
|
||||||
@ -102,9 +107,9 @@ namespace osu.Game.Modes.Taiko.Scoring
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The multiple of the original score added to the combo portion of the score
|
/// The multiple of the original score added to the combo portion of the score
|
||||||
/// for correctly hitting a finisher with both keys.
|
/// for correctly hitting an accented hit object with both keys.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private double finisherScoreScale;
|
private double accentedHitScale;
|
||||||
|
|
||||||
private double hpIncreaseTick;
|
private double hpIncreaseTick;
|
||||||
private double hpIncreaseGreat;
|
private double hpIncreaseGreat;
|
||||||
@ -131,15 +136,15 @@ namespace osu.Game.Modes.Taiko.Scoring
|
|||||||
|
|
||||||
hpIncreaseTick = hp_hit_tick;
|
hpIncreaseTick = hp_hit_tick;
|
||||||
hpIncreaseGreat = hpMultiplierNormal * hp_hit_great;
|
hpIncreaseGreat = hpMultiplierNormal * hp_hit_great;
|
||||||
hpIncreaseGood = hpMultiplierNormal * BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.Difficulty.DrainRate, hp_hit_good_max, hp_hit_good, hp_hit_good);
|
hpIncreaseGood = hpMultiplierNormal * BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.Difficulty.DrainRate, hp_hit_good_max, hp_hit_good_min, hp_hit_good_min);
|
||||||
hpIncreaseMiss = BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.Difficulty.DrainRate, hp_miss_min, hp_miss_mid, hp_miss_max);
|
hpIncreaseMiss = BeatmapDifficulty.DifficultyRange(beatmap.BeatmapInfo.Difficulty.DrainRate, hp_miss_min, hp_miss_mid, hp_miss_max);
|
||||||
|
|
||||||
var finishers = beatmap.HitObjects.FindAll(o => o is Hit && o.Accented);
|
var accentedHits = beatmap.HitObjects.FindAll(o => o is Hit && o.Accented);
|
||||||
|
|
||||||
// This is a linear function that awards:
|
// This is a linear function that awards:
|
||||||
// 10 times bonus points for hitting a finisher with both keys with 30 finishers in the map
|
// 10 times bonus points for hitting an accented hit object with both keys with 30 accented hit objects in the map
|
||||||
// 3 times bonus points for hitting a finisher with both keys with 120 finishers in the map
|
// 3 times bonus points for hitting an accented hit object with both keys with 120 accented hit objects in the map
|
||||||
finisherScoreScale = -7d / 90d * MathHelper.Clamp(finishers.Count, 30, 120) + 111d / 9d;
|
accentedHitScale = -7d / 90d * MathHelper.Clamp(accentedHits.Count, 30, 120) + 111d / 9d;
|
||||||
|
|
||||||
foreach (var obj in beatmap.HitObjects)
|
foreach (var obj in beatmap.HitObjects)
|
||||||
{
|
{
|
||||||
@ -198,9 +203,9 @@ namespace osu.Game.Modes.Taiko.Scoring
|
|||||||
{
|
{
|
||||||
double baseValue = newJudgement.ResultValueForScore;
|
double baseValue = newJudgement.ResultValueForScore;
|
||||||
|
|
||||||
// Add bonus points for hitting a finisher with the second key
|
// Add bonus points for hitting an accented hit object with the second key
|
||||||
if (newJudgement.SecondHit)
|
if (newJudgement.SecondHit)
|
||||||
baseValue += baseValue * finisherScoreScale;
|
baseValue += baseValue * accentedHitScale;
|
||||||
|
|
||||||
// Add score to portions
|
// Add score to portions
|
||||||
if (isTick)
|
if (isTick)
|
||||||
|
Loading…
Reference in New Issue
Block a user