Skip to content

Commit e55f682

Browse files
committed
- Add relative XP calculations for granular level progress tracking
- Fix user role color handling logic
1 parent fc64d30 commit e55f682

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/modules/user/user.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,21 @@ export function createLevelAndXPField(
4545
const barY = y; // Slightly above name
4646

4747
const xpForNextLevel = xpForLevel(ddUser.level + 1);
48-
const xpProgress = Math.min(Number(xp) / Number(xpForNextLevel), 1);
48+
const xpForCurrentLevel = xpForLevel(ddUser.level);
49+
50+
const relativeXp = xp - xpForCurrentLevel;
51+
const relativeXpForNextLevel = xpForNextLevel - xpForCurrentLevel;
52+
53+
const xpProgress = Math.min(
54+
Number(relativeXp) / Number(relativeXpForNextLevel),
55+
1,
56+
);
4957

5058
// Draw XP bar background
5159
canvas.fillStyle = "#444444";
5260
canvas.fillRect(barX, barY, barWidth, barHeight);
5361
let userRoleColor = user.roles.highest.hexColor;
5462
if (userRoleColor === "#000000" || userRoleColor === "#444444") {
55-
// green
5663
userRoleColor = "#FF52F9FF";
5764
}
5865
// Draw XP bar progress

0 commit comments

Comments
 (0)