diff --git a/dist/habitrpg-shared.js b/dist/habitrpg-shared.js index 23ffad0b1d..e17495750d 100644 --- a/dist/habitrpg-shared.js +++ b/dist/habitrpg-shared.js @@ -8771,25 +8771,20 @@ var global=self;/** }; obj.revive = function(user) { - var candidate, count, item, k, lostItem, lostStat, v, _ref1; + var count, item, k, lostItem, lostStat, v, _ref1; user.stats.hp = 50; user.stats.exp = 0; user.stats.gp = 0; if (user.stats.lvl > 1) { user.stats.lvl--; } - if ((user.stats.str + user.stats.con + user.stats.per + user.stats.int) > 1) { - while (!lostStat) { - candidate = { - 0: 'str', - 1: 'con', - 2: 'per', - 3: 'int' - }[Math.random() * 4 | 0]; - if (user.stats[candidate] > 0) { - lostStat = candidate; - } + lostStat = helpers.randomVal(_.reduce(['str', 'con', 'per', 'int'], (function(m, k) { + if (user.stats[v]) { + m[k] = k; } + return m; + }), {})); + if (lostStat) { user.stats[lostStat]--; } count = 0; diff --git a/script/algos.coffee b/script/algos.coffee index 5733e4ae58..b579a3d174 100644 --- a/script/algos.coffee +++ b/script/algos.coffee @@ -37,13 +37,11 @@ obj.revive = (user)-> user.stats.lvl-- if user.stats.lvl > 1 # Lose a stat point - if (user.stats.str + user.stats.con + user.stats.per + user.stats.int) > 1 - until lostStat - candidate = {0:'str', 1:'con', 2:'per', 3:'int'}[Math.random()*4|0] - lostStat = candidate if user.stats[candidate] > 0 - user.stats[lostStat]-- + lostStat = helpers.randomVal _.reduce ['str','con','per','int'], ((m,k)->(m[k]=k if user.stats[v];m)), {} + user.stats[lostStat]-- if lostStat # Lose a gear piece + # Can't use randomVal since we need k, not v count = 0 for k,v of user.items.gear.owned lostItem = k if Math.random() < (1 / ++count)