57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
/*
|
|
Code used from the slothpixel project https://github.com/slothpixel/core
|
|
*/
|
|
function guildLevel(exp) {
|
|
const EXP_NEEDED = [
|
|
100000,
|
|
150000,
|
|
250000,
|
|
500000,
|
|
750000,
|
|
1000000,
|
|
1250000,
|
|
1500000,
|
|
2000000,
|
|
2500000,
|
|
2500000,
|
|
2500000,
|
|
2500000,
|
|
2500000,
|
|
3000000,
|
|
]
|
|
|
|
let level = 0
|
|
|
|
// Increments by one from zero to the level cap
|
|
for (let i = 0; i <= 1000; i += 1) {
|
|
// need is the required exp to get to the next level
|
|
let need = 0
|
|
if (i >= EXP_NEEDED.length) {
|
|
need = EXP_NEEDED[EXP_NEEDED.length - 1]
|
|
} else { need = EXP_NEEDED[i] }
|
|
|
|
// If the required exp to get to the next level isn't met returns
|
|
// the current level plus progress towards the next (unused exp/need)
|
|
// Otherwise increments the level and substracts the used exp from exp var
|
|
if ((exp - need) < 0) {
|
|
return Math.round((level + (exp / need)) * 100) / 100
|
|
}
|
|
level += 1
|
|
exp -= need
|
|
}
|
|
|
|
// Returns the level cap - currently 1000
|
|
// If changed here, also change in for loop above
|
|
return 1000
|
|
}
|
|
/*
|
|
Code used from the hypixel-guild-bot project https://github.com/SimplyNo/hypixel-guild-bot
|
|
*/
|
|
function scaledGEXP(input) {
|
|
if (input <= 200000) return Number(input)
|
|
if (input <= 700000) return Number(Math.round(((input - 200000) / 10) + 200000))
|
|
if (input > 700000) return Number(Math.round(((input - 700000) / 33) + 250000))
|
|
}
|
|
|
|
module.exports = { guildLevel, scaledGEXP }
|