Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- f64 CGame::get_AimValue(SScore* score)
- {
- // Aimrating!
- f64 aimvalue = score->pDiff->get_JumpDifficulty(score->ModValue);
- // Combo bonus
- f64 combofactor = 1 + 0.1 * min(1, (double)score->hitobjects / 1500);
- aimvalue *= combofactor;
- // Miss penalty
- //value *= pow(max(0, 0.96 - 0.02 * misses), misses);
- aimvalue *= pow(0.97, score->misses);
- // Combo scaling
- aimvalue *= min(pow((double)score->maxcombo, 0.8) / pow((double)score->maxcombomap, 0.8), 1);
- f64 arfactor = 1.0;
- if(score->ar > 10.0)
- {
- arfactor += 0.30 * (score->ar - 10.0);
- }
- else if(score->ar < 8.0)
- {
- // HD is worth more with lower ar!
- if(score->mods[0] == '1')
- {
- arfactor += 0.02 * (8.0 - score->ar);
- }
- else
- {
- arfactor += 0.01 * (8.0 - score->ar);
- }
- }
- aimvalue *= arfactor;
- // HD
- if(score->mods[0] == '1')
- {
- aimvalue *= 1.18;
- }
- // FL
- if(score->mods[1] == '1')
- {
- aimvalue *= 1.36;
- }
- aimvalue *= (0.5 + score->acc / 2.0);
- aimvalue *= 0.98 + (pow(score->od, 2) / 2500);
- return aimvalue;
- }
- f64 CGame::get_SpeedValue(SScore* score)
- {
- // Speedrating
- f64 speedvalue = score->pDiff->get_SpeedDifficulty(score->ModValue);
- // Combo bonus
- f64 combofactor = 1 + 0.1 * min(1, (double)score->hitobjects / 1500);
- speedvalue *= combofactor;
- // Miss penalty
- //value *= pow(max(0, 0.96 - 0.02 * misses), misses);
- speedvalue *= pow(0.97, score->misses);
- // Combo scaling
- speedvalue *= min(pow((double)score->maxcombo, 0.8) / pow((double)score->maxcombomap, 0.8), 1);
- speedvalue *= (0.5 + score->acc / 2.0);
- speedvalue *= 0.98 + (pow(score->od, 2) / 2500);
- return speedvalue;
- }
- f64 CGame::get_AccValue(SScore* score)
- {
- // Acc
- f64 acc;
- s32 hitcircles = score->pDiff->get_HitCircles();
- if(hitcircles > 0)
- {
- acc = (f64)((score->amount300 - (score->hitobjects - hitcircles)) * 6 + score->amount100 * 2 + score->amount50) / (hitcircles * 6 + 1);
- }
- else
- {
- acc = 0;
- }
- if(acc < 0)
- {
- acc = 0;
- }
- f64 accvalue = pow(pow(1.3, score->od) * pow(acc, 15) / 2, 1.6) * 8.5;
- // Bonus for many hitcircles
- f64 combofactor = min(1.3, pow((double)hitcircles / 1000, 0.4));
- accvalue *= combofactor;
- // HD
- if(score->mods[0] == '1')
- {
- accvalue *= 1.02;
- }
- // FL
- if(score->mods[1] == '1')
- {
- accvalue *= 1.02;
- }
- return accvalue;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement