diff --git a/migrations/20130307_exp_overflow.js b/migrations/20130307_exp_overflow.js new file mode 100644 index 0000000000..44fb2904b4 --- /dev/null +++ b/migrations/20130307_exp_overflow.js @@ -0,0 +1,39 @@ +// 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) { + var 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) { + var 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); + } + + } + +}) \ No newline at end of file