From 701be90da2b362b5f94cd6e7760fe86739c682a4 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 25 Dec 2013 16:55:07 -0600 Subject: [PATCH] Add achievement for rebirths --- dist/habitrpg-shared.js | 9 ++++++++- script/index.coffee | 9 +++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dist/habitrpg-shared.js b/dist/habitrpg-shared.js index 31c62610d1..d565866f96 100644 --- a/dist/habitrpg-shared.js +++ b/dist/habitrpg-shared.js @@ -11183,7 +11183,7 @@ var process=require("__browserify_process");(function() { return cb(null, req); }, rebirth: function(req, cb) { - var flags, gear, stats; + var flags, gear, lvl, stats; if (user.balance < 2) { return cb({ code: 401, @@ -11191,6 +11191,7 @@ var process=require("__browserify_process");(function() { }, req); } user.balance -= 2; + lvl = user.stats.lvl; _.each(user.tasks, function(task) { if (task.type !== 'reward') { task.value = 0; @@ -11227,6 +11228,12 @@ var process=require("__browserify_process");(function() { flags.itemsEnabled = false; flags.dropsEnabled = false; flags.classSelected = false; + if (!user.achievements.rebirths || (lvl > user.achievements.rebirthLevel)) { + user.achievements.rebirths++; + user.achievements.rebirthLevel = lvl; + } else { + Notification.text(user.profile.name + " is reborn!"); + } return cb(null, req); }, clearCompleted: function(req, cb) { diff --git a/script/index.coffee b/script/index.coffee index fe4ba4f84d..6e4e6f315d 100644 --- a/script/index.coffee +++ b/script/index.coffee @@ -403,9 +403,12 @@ api.wrap = (user) -> cb null, req rebirth: (req, cb) -> + # Cost is 8 Gems ($2) if user.balance < 2 return cb {code:401,message: "Not enough gems."}, req user.balance -= 2 + # Save off user's level, for calculating achievement eligibility later + lvl = user.stats.lvl # Turn tasks yellow, zero out streaks _.each user.tasks, (task) -> unless task.type is 'reward' @@ -437,6 +440,12 @@ api.wrap = (user) -> flags.itemsEnabled = false flags.dropsEnabled = false flags.classSelected = false + # Award an achievement if this is their first Rebirth, or if they made it further than last time + if not (user.achievements.rebirths) or (lvl > user.achievements.rebirthLevel) + user.achievements.rebirths++ + user.achievements.rebirthLevel = lvl + else + Notification.text(user.profile.name + " is reborn!") cb null, req # ------