Sekai-World / sekai-viewer

Web Database Viewer of Project Sekai
https://sekai.best
GNU General Public License v3.0
333 stars 39 forks source link

[BUG] Error in score calculation (multi-skill calculation) #403

Closed Ai0796 closed 2 years ago

Ai0796 commented 2 years ago

Describe the bug The Score calculation is bugged due to the skill calculation not being updated correctly based on this tweet To test further I went into games on both prosekaEN (before anniversary where the change was made) and in prosekaJP (where the change was made)

on EN my data was this: (Before my skill proc)

image

(After my skill proc)

image

Before: 7315 After: 24601 24601 / 7315 = 336.308954204% Here's my skill powers and calculation:

Name Skill1 Skill2 Skill3 Skill4 Skill5 Effective Skill Power
Before Anni 115% 40% 30% 60% 110% 336.31%
After Anni 115% 40% 30% 60% 110% 263.00%

It matches up with the first one in EN

on JP my data went the other way: (Before my skill proc)

image

(After my skill proc)

image

Before: 1467 After: 4343 4343 / 1467 = 2.96046353102 Once agin skill powers and calculation:

Name Skill1 Skill2 Skill3 Skill4 Skill5 Effective Skill Power
Before Anni 110% 110% 110% 110% 100% 457.59%
After Anni 110% 110% 110% 110% 100% 296.00%

Data is equal to the after-anniversary calculation

Possible cause and/or solution Fix this by changing the code in scoreCalc.ts from:

let multiSkillRate = 1 + skillRates[0];
    skillRates.forEach((v, i) => {
      if (i > 0) multiSkillRate *= 1 + v / 5;
    });
    return multiSkillRate - 1;

to:

let multiSkillRate = 1 + skillRates[0];
    skillRates.forEach((v, i) => {
      if (i > 0) multiSkillRate += v / 5;
    });
    return multiSkillRate; 

edited pull request here: https://github.com/Sekai-World/sekai-viewer/pull/404

Or add a region checker into score calc until EN gets the skill calculation update

dnaroma commented 2 years ago

Merged