mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-27 13:40:00 +00:00
37 lines
947 B
JavaScript
37 lines
947 B
JavaScript
|
|
// mongo habitrpg ./node_modules/underscore/underscore.js ./migrations/20130307_normalize_algo_values.js
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Make sure people aren't overflowing their exp with the new system
|
||
|
|
*/
|
||
|
|
db.users.find().forEach(function (user) {
|
||
|
|
function oldTnl (level) {
|
||
|
|
return Math.pow(level, 2) * 10 + level * 10 + 80;
|
||
|
|
}
|
||
|
|
|
||
|
|
function newTnl (level) {
|
||
|
|
let value = 0;
|
||
|
|
if (level >= 100) {
|
||
|
|
value = 0;
|
||
|
|
} else {
|
||
|
|
value = Math.round((Math.pow(level, 2) * 0.25 + 10 * level + 139.75) / 10) * 10; // round to nearest 10
|
||
|
|
}
|
||
|
|
return value;
|
||
|
|
}
|
||
|
|
|
||
|
|
var newTnl = newTnl(user.stats.lvl);
|
||
|
|
if (user.stats.exp > newTnl) {
|
||
|
|
let percent = user.stats.exp / oldTnl(user.stats.lvl);
|
||
|
|
percent = percent > 1 ? 1 : percent;
|
||
|
|
user.stats.exp = newTnl * percent;
|
||
|
|
|
||
|
|
try {
|
||
|
|
db.users.update(
|
||
|
|
{_id: user._id},
|
||
|
|
{$set: {'stats.exp': user.stats.exp}},
|
||
|
|
{multi: true}
|
||
|
|
);
|
||
|
|
} catch (e) {
|
||
|
|
print(e);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|