/* 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 }