Skip to content

Commit cdc0a8c

Browse files
committed
Update rating calculation
1 parent 963402a commit cdc0a8c

File tree

1 file changed

+90
-3
lines changed

1 file changed

+90
-3
lines changed

src/store/index.ts

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -476,8 +476,90 @@ export default createStore({
476476
rankMultiplier = 28; //28 rank multiplier for rating from 600,000 to under 750,000
477477
} else if (state.user.rating < 1000000) {
478478
rankMultiplier = 29; //29 rank multiplier for rating from 750,000 to under 1,000,000
479+
} else if (state.user.rating < 1250000) {
480+
rankMultiplier = 30; //30 rank multiplier for rating from 1,000,000 to under 1,250,000
481+
} else if (state.user.rating < 1500000) {
482+
rankMultiplier = 31; //31 rank multiplier for rating from 1,250,000 to under 1,500,000
483+
} else if (state.user.rating < 2000000) {
484+
rankMultiplier = 32; //32 rank multiplier for rating from 1,500,000 to under 2,000,000
485+
} else if (state.user.rating < 2500000) {
486+
rankMultiplier = 33; //33 rank multiplier for rating from 2,000,000 to under 2,500,000
487+
} else if (state.user.rating < 3000000) {
488+
rankMultiplier = 34; //34 rank multiplier for rating from 2,500,000 to under 3,000,000
489+
} else if (state.user.rating < 4000000) {
490+
rankMultiplier = 35; //35 rank multiplier for rating from 3,000,000 to under 4,000,000
491+
} else if (state.user.rating < 5000000) {
492+
rankMultiplier = 36; //36 rank multiplier for rating from 4,000,000 to under 5,000,000
493+
} else if (state.user.rating < 6000000) {
494+
rankMultiplier = 37; //37 rank multiplier for rating from 5,000,000 to under 6,000,000
495+
} else if (state.user.rating < 8000000) {
496+
rankMultiplier = 38; //38 rank multiplier for rating from 6,000,000 to under 8,000,000
497+
} else if (state.user.rating < 10000000) {
498+
rankMultiplier = 39; //39 rank multiplier for rating from 8,000,000 to under 10,000,000
499+
} else if (state.user.rating < 12500000) {
500+
rankMultiplier = 40; //40 rank multiplier for rating from 10,000,000 to under 12,500,000
501+
} else if (state.user.rating < 15000000) {
502+
rankMultiplier = 41; //41 rank multiplier for rating from 12,500,000 to under 15,000,000
503+
} else if (state.user.rating < 17500000) {
504+
rankMultiplier = 42; //42 rank multiplier for rating from 15,000,000 to under 17,500,000
505+
} else if (state.user.rating < 20000000) {
506+
rankMultiplier = 43; //43 rank multiplier for rating from 17,500,000 to under 20,000,000
507+
} else if (state.user.rating < 25000000) {
508+
rankMultiplier = 44; //44 rank multiplier for rating from 20,000,000 to under 25,000,000
509+
} else if (state.user.rating < 30000000) {
510+
rankMultiplier = 45; //45 rank multiplier for rating from 25,000,000 to under 30,000,000
511+
} else if (state.user.rating < 35000000) {
512+
rankMultiplier = 46; //46 rank multiplier for rating from 30,000,000 to under 35,000,000
513+
} else if (state.user.rating < 40000000) {
514+
rankMultiplier = 47; //47 rank multiplier for rating from 35,000,000 to under 40,000,000
515+
} else if (state.user.rating < 45000000) {
516+
rankMultiplier = 48; //48 rank multiplier for rating from 40,000,000 to under 45,000,000
517+
} else if (state.user.rating < 50000000) {
518+
rankMultiplier = 49; //49 rank multiplier for rating from 45,000,000 to under 50,000,000
519+
} else if (state.user.rating < 60000000) {
520+
rankMultiplier = 50; //50 rank multiplier for rating from 50,000,000 to under 60,000,000
521+
} else if (state.user.rating < 70000000) {
522+
rankMultiplier = 51; //51 rank multiplier for rating from 60,000,000 to under 70,000,000
523+
} else if (state.user.rating < 80000000) {
524+
rankMultiplier = 52; //52 rank multiplier for rating from 70,000,000 to under 80,000,000
525+
} else if (state.user.rating < 90000000) {
526+
rankMultiplier = 53; //53 rank multiplier for rating from 80,000,000 to under 90,000,000
527+
} else if (state.user.rating < 100000000) {
528+
rankMultiplier = 54; //54 rank multiplier for rating from 90,000,000 to under 100,000,000
529+
} else if (state.user.rating < 125000000) {
530+
rankMultiplier = 55; //55 rank multiplier for rating from 100,000,000 to under 125,000,000
531+
} else if (state.user.rating < 150000000) {
532+
rankMultiplier = 56; //56 rank multiplier for rating from 125,000,000 to under 150,000,000
533+
} else if (state.user.rating < 175000000) {
534+
rankMultiplier = 57; //57 rank multiplier for rating from 150,000,000 to under 17,500,000
535+
} else if (state.user.rating < 200000000) {
536+
rankMultiplier = 58; //58 rank multiplier for rating from 175,000,000 to under 200,000,000
537+
} else if (state.user.rating < 225000000) {
538+
rankMultiplier = 59; //59 rank multiplier for rating from 200,000,000 to under 225,000,000
539+
} else if (state.user.rating < 250000000) {
540+
rankMultiplier = 60; //60 rank multiplier for rating from 225,000,000 to under 250,000,000
541+
} else if (state.user.rating < 300000000) {
542+
rankMultiplier = 61; //61 rank multiplier for rating from 250,000,000 to under 300,000,000
543+
} else if (state.user.rating < 350000000) {
544+
rankMultiplier = 62; //62 rank multiplier for rating from 300,000,000 to under 350,000,000
545+
} else if (state.user.rating < 400000000) {
546+
rankMultiplier = 63; //63 rank multiplier for rating from 350,000,000 to under 400,000,000
547+
} else if (state.user.rating < 450000000) {
548+
rankMultiplier = 64; //64 rank multiplier for rating from 400,000,000 to under 450,000,000
549+
} else if (state.user.rating < 500000000) {
550+
rankMultiplier = 65; //65 rank multiplier for rating from 450,000,000 to under 500,000,000
551+
} else if (state.user.rating < 600000000) {
552+
rankMultiplier = 66; //66 rank multiplier for rating from 500,000,000 to under 600,000,000
553+
} else if (state.user.rating < 700000000) {
554+
rankMultiplier = 67; //67 rank multiplier for rating from 600,000,000 to under 700,000,000
555+
} else if (state.user.rating < 800000000) {
556+
rankMultiplier = 68; //68 rank multiplier for rating from 700,000,000 to under 800,000,000
557+
} else if (state.user.rating < 900000000) {
558+
rankMultiplier = 69; //69 rank multiplier for rating from 800,000,000 to under 900,000,000
559+
} else if (state.user.rating < 1000000000) {
560+
rankMultiplier = 70; //70 rank multiplier for rating from 900,000,000 to under 1,000,000,000
479561
} else {
480-
rankMultiplier = 30; //30 rank multiplier for rating from 1,000,000
562+
rankMultiplier = 71; //71 rank multiplier for rating from 1,000,000,000
481563
}
482564
//calculate the amount of XP earned and points earned when the task is completed
483565
const rankXpEarned: number = Math.max(
@@ -518,8 +600,13 @@ export default createStore({
518600
); //get at least 1 XP when the task is completed
519601
state.user.xp += xpEarned; //get the amount of XP earned based on task difficulty, task priority, task due date, task repetition, task streak, daily streak and task rank multipliers
520602
state.user.rating +=
521-
((10 + Math.log(state.user.rating + 1) ** 2) * repeatMultiplier) /
522-
Math.max(state.user.tasksCompletedToday, 1); //get the amount of rating poings earned based on user rating, task repeat multiplier and number of tasks completed today
603+
(10 + Math.log(Math.max(state.user.rating + 100, 100)) ** 2) *
604+
repeatMultiplier *
605+
dateMultiplier <
606+
1
607+
? 1 - dateMultiplier
608+
: (dateMultiplier - 1) / Math.max(state.user.tasksCompletedToday, 1); //get the amount of rating poings earned based on user rating, task repeat multiplier and number of tasks completed today
609+
state.user.rating = Math.max(state.user.rating, 0); //make sure user rating is not below 0
523610
const pointsEarned: number = Math.max(
524611
Math.floor(
525612
task.difficulty *

0 commit comments

Comments
 (0)