From 1fadb7955abc98c99a9b8d7a9143ea6f8346a89e Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Thu, 7 Mar 2013 14:10:56 -0500 Subject: [PATCH] add exp overflow migration --- migrations/20130307_exp_overflow.js | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 migrations/20130307_exp_overflow.js 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