Files
illegitimate-bot/utils/functions/bedwars.js
2023-11-22 17:13:39 +01:00

56 lines
1.4 KiB
JavaScript

/*
Code used from the slothpixel project https://github.com/slothpixel/core
*/
function getExpForLevel(level) {
if (level == 0) return 0;
let respectedLevel = getLevelRespectingPrestige(level);
if (respectedLevel > EASY_LEVELS) {
return 5000;
}
switch (respectedLevel) {
case 1:
return 500;
case 2:
return 1000;
case 3:
return 2000;
case 4:
return 3500;
}
return 5000;
}
function getLevelRespectingPrestige(level) {
if (level > HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE) {
return level - HIGHEST_PRESTIGE * LEVELS_PER_PRESTIGE;
}
else {
return level % LEVELS_PER_PRESTIGE;
}
}
const EASY_LEVELS = 4;
const EASY_LEVELS_XP = 7000;
const XP_PER_PRESTIGE = 96 * 5000 + EASY_LEVELS_XP;
const LEVELS_PER_PRESTIGE = 100;
const HIGHEST_PRESTIGE = 50;
function bedwarsLevel(exp) {
let prestiges = Math.floor(exp / XP_PER_PRESTIGE);
let level = prestiges * LEVELS_PER_PRESTIGE;
let expWithoutPrestiges = exp - (prestiges * XP_PER_PRESTIGE);
for (let i = 1; i <= EASY_LEVELS; ++i) {
let expForEasyLevel = getExpForLevel(i);
if (expWithoutPrestiges < expForEasyLevel) {
break;
}
level++;
expWithoutPrestiges -= expForEasyLevel;
}
return level + expWithoutPrestiges / 5000
}
module.exports = { bedwarsLevel }