From af650bd93ad0a202bd5bc096e6d0db04884b0855 Mon Sep 17 00:00:00 2001 From: ObamaFootFungus Date: Fri, 1 Sep 2023 17:28:55 -0400 Subject: [PATCH 1/2] Fixed guild level calculation --- src/utils/guildExp.js | 57 ++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/src/utils/guildExp.js b/src/utils/guildExp.js index e5547a63..4374a430 100644 --- a/src/utils/guildExp.js +++ b/src/utils/guildExp.js @@ -30,31 +30,42 @@ function parseDate(date) { * @return {number} */ function getGuildLevel(exp) { - if (exp < 100000) { - return 0; - } else if (exp < 250000) { - return 1; - } else if (exp < 500000) { - return 2; - } else if (exp < 1000000) { - return 3; - } else if (exp < 1750000) { - return 4; - } else if (exp < 2750000) { - return 5; - } else if (exp < 4000000) { - return 6; - } else if (exp < 5500000) { - return 7; - } else if (exp < 7500000) { - return 8; - } else if (exp >= 7500000) { - if (exp < 15000000) { - return Math.floor((exp - 7500000) / 2500000) + 9; - } else { - return Math.floor((exp - 15000000) / 3000000) + 12; + const EXP_NEEDED = [ + 100000, + 150000, + 250000, + 500000, + 750000, + 1000000, + 1250000, + 1500000, + 2000000, + 2500000, + 2500000, + 2500000, + 2500000, + 2500000, + 3000000, + ]; + + let level = 0; + + for (let i = 0; i <= 1000; i += 1) { + let need = 0; + if (i >= EXP_NEEDED.length) { + need = EXP_NEEDED[EXP_NEEDED.length - 1]; + } else { + need = EXP_NEEDED[i]; } + + if ((exp - need) < 0) { + return Math.round((level + (exp / need)) * 100) / 100; + } + level += 1; + exp -= need; } + + return 1000; } /** From 932f2b2c5a860742947a08f3aac700081b4428f4 Mon Sep 17 00:00:00 2001 From: ObamaFootFungus Date: Fri, 1 Sep 2023 17:31:17 -0400 Subject: [PATCH 2/2] Eslint test --- src/utils/guildExp.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/guildExp.js b/src/utils/guildExp.js index 4374a430..ecfc2ce7 100644 --- a/src/utils/guildExp.js +++ b/src/utils/guildExp.js @@ -45,7 +45,7 @@ function getGuildLevel(exp) { 2500000, 2500000, 2500000, - 3000000, + 3000000 ]; let level = 0; @@ -54,8 +54,8 @@ function getGuildLevel(exp) { let need = 0; if (i >= EXP_NEEDED.length) { need = EXP_NEEDED[EXP_NEEDED.length - 1]; - } else { - need = EXP_NEEDED[i]; + } else { + need = EXP_NEEDED[i]; } if ((exp - need) < 0) {