Merge remote-tracking branch 'origin/sabe/rebirth' into develop

Conflicts:
	dist/customizer.css
	dist/habitrpg-shared.css
	dist/spritesmith.css
	dist/spritesmith.png
This commit is contained in:
Tyler Renelle 2013-12-31 07:56:35 -07:00
commit 19f53c3675
7 changed files with 628 additions and 506 deletions

508
dist/customizer.css vendored

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -11266,11 +11266,68 @@ var process=require("__browserify_process");(function() {
}
user.balance--;
_.each(user.tasks, function(task) {
return task.value = 0;
if (task.type !== 'reward') {
return task.value = 0;
}
});
user.stats.hp = 50;
return typeof cb === "function" ? cb(null, user) : void 0;
},
rebirth: function(req, cb) {
var flags, gear, lvl, stats;
if (user.balance < 2) {
return cb({
code: 401,
message: "Not enough gems."
}, req);
}
user.balance -= 2;
lvl = user.stats.lvl;
_.each(user.tasks, function(task) {
if (task.type !== 'reward') {
task.value = 0;
}
if (task.type === 'daily') {
return task.streak = 0;
}
});
stats = user.stats;
stats.buffs = {};
stats.hp = 50;
stats.lvl = 1;
stats["class"] = 'warrior';
_.each(['per', 'int', 'con', 'str', 'points', 'gp', 'exp', 'mp'], function(value) {
return stats[value] = 0;
});
gear = user.items.gear;
_.each(['equipped', 'costume'], function(type) {
gear[type].armor = 'armor_base_0';
gear[type].weapon = 'weapon_warrior_0';
gear[type].head = 'head_base_0';
return gear[type].shield = 'shield_base_0';
});
gear.owned = {
weapon_warrior_0: true
};
if (typeof user.markModified === "function") {
user.markModified('items.gear.owned');
}
flags = user.flags;
if (!(user.achievements.ultimateGear || user.achievements.beastMaster)) {
flags.rebirthEnabled = false;
}
flags.itemsEnabled = false;
flags.dropsEnabled = false;
flags.classSelected = false;
if (!user.achievements.rebirths) {
user.achievements.rebirths = 1;
user.achievements.rebirthLevel = lvl;
} else if (lvl > user.achievements.rebirthLevel) {
user.achievements.rebirths++;
user.achievements.rebirthLevel = lvl;
}
return cb(null, req);
},
clearCompleted: function(req, cb) {
user.todos = _.where(user.todos, {
completed: false
@ -12041,7 +12098,10 @@ var process=require("__browserify_process");(function() {
user.items.eggs["Wolf"] = 1;
}
if (!user.flags.classSelected && user.stats.lvl >= 10) {
return user.flags.classSelected;
user.flags.classSelected;
}
if (!user.flags.rebirthEnabled && (user.stats.lvl >= 50 || user.achievements.ultimateGear || user.achievements.beastMaster)) {
return user.flags.rebirthEnabled = true;
}
},
/*

508
dist/spritesmith.css vendored

File diff suppressed because it is too large Load diff

BIN
dist/spritesmith.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -402,10 +402,58 @@ api.wrap = (user) ->
return cb? {code:401,message: "Not enough gems."}, req
user.balance--
_.each user.tasks, (task) ->
task.value = 0
unless task.type is 'reward'
task.value = 0
user.stats.hp = 50
cb? null, user
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'
task.value = 0
if task.type is 'daily'
task.streak = 0
# Reset all dynamic stats
stats = user.stats
stats.buffs = {}
stats.hp = 50
stats.lvl = 1
stats.class = 'warrior'
_.each ['per','int','con','str','points','gp','exp','mp'], (value) ->
stats[value] = 0
# Deequip character, set back to base armor and training sword
gear = user.items.gear
_.each ['equipped', 'costume'], (type) ->
gear[type].armor = 'armor_base_0'
gear[type].weapon = 'weapon_warrior_0'
gear[type].head = 'head_base_0'
gear[type].shield = 'shield_base_0'
# Strip owned gear down to the training sword
gear.owned = {weapon_warrior_0:true}
user.markModified? 'items.gear.owned'
# Remove unlocked features
flags = user.flags
if not (user.achievements.ultimateGear or user.achievements.beastMaster)
flags.rebirthEnabled = false
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)
user.achievements.rebirths = 1
user.achievements.rebirthLevel = lvl
else if (lvl > user.achievements.rebirthLevel)
user.achievements.rebirths++
user.achievements.rebirthLevel = lvl
cb null, req
# ------
# Tasks
# ------
@ -1003,6 +1051,8 @@ api.wrap = (user) ->
user.items.eggs["Wolf"] = 1
if !user.flags.classSelected and user.stats.lvl >= 10
user.flags.classSelected
if !user.flags.rebirthEnabled and (user.stats.lvl >= 50 or user.achievements.ultimateGear or user.achievements.beastMaster)
user.flags.rebirthEnabled = true
###
------------------------------------------------------