Мне нужно использовать простой JavaScript, чтобы преобразовать количество очков опыта в количество часов, сыгранных по ряду фиксированных ставок.
Например:
Игрок имеет 1,129,518 очков опыта.
Количество очков опыта, получаемых за час, зависит от количества очков опыта, которое уже есть. Они бы устроились примерно так:
выше 0 xp: 8000 xp / h
выше 2,107 xp: 20 000 xp / h
выше 101,333 xp: 45 000 xp / h
выше 1,210,421 xp: 68 500 xp / h
выше 13 034 431 xp: 75 000 xp / h
Я изо всех сил пытаюсь найти способ использовать эти xp ставки для преобразования заданного количества очков опыта в часы игры, используя хотя бы несколько изящный Javascript.
Я просто получаю странный беспорядок в операторах if / else, который заканчивается неудачей из-за математических ошибок.
Есть какие-нибудь математические волшебники, которые могут мне помочь? Спасибо.
Пример кода: я бы пошел отсюда
if(xp === 0){
return 0;
}else if( 2107 >= xp > 0){
const result = (xp/8000).toFixed(1);
return result;
}else if(101333 >= xp > 2107){
const result = ((2107/8000) + ((xp-2107)/20000)).toFixed(1);
return result;
}else if(1210421 >= xp > 101333){
...
}
Как вы можете видеть, это быстро вышло бы из-под контроля, если бы было много разных уровней.