diff --git a/src/ScoreManager.cpp b/src/ScoreManager.cpp index 9e22872969..5c0a928fed 100644 --- a/src/ScoreManager.cpp +++ b/src/ScoreManager.cpp @@ -301,25 +301,18 @@ void ScoreManager::CalcPlayerRating(float& prating, float* pskillsets) { continue; SortTopSSRPtrs(ss); - pskillsets[ss] = AggregateSSRs(ss, 0.f, 10.24f, 1)*0.975f; + pskillsets[ss] = AggregateSSRs(ss, 0.f, 10.24f, 1) * 1.04f; CLAMP(pskillsets[ss], 0.f, 100.f); skillz.push_back (pskillsets[ss]); } sort(skillz.begin(), skillz.end()); - skillz[0] *= 0.1f; - skillz[1] *= 0.1f; - skillz[2] *= 0.1f; - skillz[3] *= 0.1f; - skillz[4] *= 0.25f; - skillz[5] *= 0.35f; - float skillsetsum = 0.f; for (auto& n : skillz) skillsetsum += n; - prating = skillsetsum; + prating = skillsetsum / 6.f; } // perhaps we will need a generalized version again someday, but not today @@ -329,8 +322,8 @@ float ScoreManager::AggregateSSRs(Skillset ss, float rating, float res, int iter rating += res; sum = 0.0; for (int i = 0; i < static_cast(TopSSRs.size()); i++) { - if(TopSSRs[i]->GetSSRCalcVersion() == GetCalcVersion() && TopSSRs[i]->GetEtternaValid()) - sum += max(0.0, 2.f / erfc(0.1*(TopSSRs[i]->GetSkillsetSSR(ss) - rating)) - 1.5); + if(TopSSRs[i]->GetSSRCalcVersion() == GetCalcVersion() && TopSSRs[i]->GetEtternaValid() && TopSSRs[i]->GetChordCohesion() == 0) + sum += max(0.0, 1.5f / erfc(0.1*(TopSSRs[i]->GetSkillsetSSR(ss) - rating)) - 1.5); } } while (pow(2, rating * 0.1) < sum); if (iter == 11)