You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/store/index.ts
+20-12Lines changed: 20 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -40,15 +40,23 @@ export default createStore({
40
40
Number(newDate().setHours(23,59,59,999)))/
41
41
(1000*60*60*24);//calculate number of days until the task is due
42
42
constdateMultiplier: number=
43
-
daysToDue<0 ? -2/(daysToDue-1) : 1+1/(daysToDue+1);//if task is overdue, XP and score multiplier is less than 1 that decreases over time when task is overdue, else XP multiplier bonus increases (more than 1) when task gets closer to due date
43
+
daysToDue<0
44
+
? -2/(daysToDue-1)
45
+
: daysToDue===0
46
+
? 4/
47
+
(1+
48
+
(Number(newDate().setHours(23,59,59,999))-
49
+
Number(newDate()))/
50
+
(1000*24*60*60))
51
+
: 1+1/(daysToDue+1);//if task is overdue, XP and score multiplier is less than 1 that decreases over time when task is overdue, else XP multiplier bonus increases (more than 1) when task gets closer to due date
44
52
letstreakMultiplier: number;//calculate task streak XP and score multiplier based on task streak, if task is completed before the due date then the streak increases else if the task is completed overdue (after the due date) reset task streak to 0
45
53
letrepeatMultiplier: number;//calculate task repetition XP and score multiplier based on task repetition occurrence and task repetition frequency
46
54
letdailyStreakMultiplier: number;//calculate daily streak XP and score multiplier based on daily streak
47
55
letlevelMultiplier: number;//calculate level score multiplier based on user level
48
-
letdayTasksMultiplier: number;//calculate XP and score multiplier for tasks completed in a day
56
+
letdayTasksMultiplier: number;//calculate XP and score multiplier for tasks completed in a day (today)
49
57
lettasksMultiplier: number;//calculate score multiplier for total number of tasks completed
50
58
//calculate task repetition XP multiplier
51
-
if(task.repeatFrequency===1){
59
+
if(Number(task.repeatFrequency)===1){
52
60
//if task repetition is daily
53
61
if(task.repeatOften<7){
54
62
//7 days is 1 week
@@ -62,7 +70,7 @@ export default createStore({
62
70
}else{
63
71
repeatMultiplier=5-365/task.repeatOften;//4x XP multiplier for yearly tasks (approximately 365 days) to 5x XP multiplier for one-time tasks
64
72
}
65
-
}elseif(task.repeatFrequency===2){
73
+
}elseif(Number(task.repeatFrequency)===2){
66
74
//if task repetition is weekly
67
75
if(task.repeatOften<4){
68
76
//approximately 4 weeks is 1 month
@@ -73,15 +81,15 @@ export default createStore({
73
81
}else{
74
82
repeatMultiplier=5-52/task.repeatOften;//4x XP multiplier for yearly tasks (approximately 52 weeks) to 5x XP multiplier for one-time tasks
75
83
}
76
-
}elseif(task.repeatFrequency===3){
84
+
}elseif(Number(task.repeatFrequency)===3){
77
85
//if task repetition is monthly
78
86
if(task.repeatOften<12){
79
87
//12 months is 1 year
80
88
repeatMultiplier=3+(task.repeatOften-1)/(12-1);//3x XP multiplier for monthly tasks (1 month) to 4x XP multiplier for yearly tasks (12 months)
81
89
}else{
82
90
repeatMultiplier=5-12/task.repeatOften;//4x XP multiplier for yearly tasks (12 months) to 5x XP multiplier for one-time tasks
83
91
}
84
-
}elseif(task.repeatFrequency===4){
92
+
}elseif(Number(task.repeatFrequency)===4){
85
93
//if task repetition is yearly
86
94
repeatMultiplier=5-1/task.repeatOften;//4x XP multiplier for yearly tasks (1 year) to 5x XP multiplier for one-time tasks
0 commit comments