diff --git a/dist/habitrpg-shared.js b/dist/habitrpg-shared.js index afb4b1c0f0..3757552b54 100644 --- a/dist/habitrpg-shared.js +++ b/dist/habitrpg-shared.js @@ -10223,7 +10223,7 @@ var global=self;/** _cast = spell.cast; return spell.cast = function(user, target) { _cast(user, target); - return user.stats.mp = user.stats.mp - spell.mana; + return user.stats.mp -= spell.mana; }; }); }); @@ -11457,13 +11457,18 @@ var process=require("__browserify_process");(function() { return true; }); } else { - if (!(user.balance >= .75)) { - return cb({ - code: 401, - message: "Not enough gems" - }); + if (user.preferences.disableClasses) { + user.preferences.disableClasses = false; + user.autoAllocate = false; + } else { + if (!(user.balance >= .75)) { + return cb({ + code: 401, + message: "Not enough gems" + }); + } + user.balance -= .75; } - user.balance -= .75; _.merge(user.stats, { str: 0, con: 0, @@ -11475,6 +11480,15 @@ var process=require("__browserify_process");(function() { } return typeof cb === "function" ? cb(null, req) : void 0; }, + disableClasses: function(req, cb) { + user.stats["class"] = 'warrior'; + user.flags.classSelected = true; + user.preferences.disableClasses = true; + user.preferences.autoAllocate = true; + user.stats.str = user.stats.lvl; + user.stats.points = 0; + return cb(null, req); + }, allocate: function(req, cb) { var stat; stat = req.query.stat || 'str'; diff --git a/script/content.coffee b/script/content.coffee index de6094653b..c2442e985c 100644 --- a/script/content.coffee +++ b/script/content.coffee @@ -382,7 +382,7 @@ _.each api.spells, (spellClass) -> spell.cast = (user, target) -> #return if spell.target and spell.target != (if target.type then 'task' else 'user') _cast(user,target) - user.stats.mp = user.stats.mp - spell.mana + user.stats.mp -= spell.mana ### --------------------------------------------------------------- diff --git a/script/index.coffee b/script/index.coffee index 157014c58f..18d4ccd6b6 100644 --- a/script/index.coffee +++ b/script/index.coffee @@ -610,13 +610,26 @@ api.wrap = (user) -> true else # Null ?class value means "reset class" - return cb({code:401,message:"Not enough gems"}) unless user.balance >= .75 - user.balance -= .75 + if user.preferences.disableClasses + user.preferences.disableClasses = false + user.autoAllocate = false + else + return cb({code:401,message:"Not enough gems"}) unless user.balance >= .75 + user.balance -= .75 _.merge user.stats, {str: 0, con: 0, per: 0, int: 0, points: user.stats.lvl} user.flags.classSelected = false #'stats.points': this is handled on the server cb? null, req + disableClasses: (req, cb) -> + user.stats.class = 'warrior' + user.flags.classSelected = true + user.preferences.disableClasses = true + user.preferences.autoAllocate = true + user.stats.str = user.stats.lvl + user.stats.points = 0 + cb null, req + allocate: (req, cb) -> stat = req.query.stat or 'str' if user.stats.points > 0