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

Conflicts:
	src/models/user.js
	views/shared/modals/index.jade
This commit is contained in:
Tyler Renelle
2013-12-31 08:04:51 -07:00
11 changed files with 97 additions and 12 deletions
@@ -68,6 +68,11 @@ habitrpg.controller('NotificationCtrl',
$rootScope.modals.achievements.beastMaster = true;
}, true);
$rootScope.$watch('user.achievements.rebirths', function(after, before){
if(after === before) return;
$rootScope.modals.achievements.rebirth = true;
});
/*_.each(['weapon', 'head', 'chest', 'shield'], function(watched){
$rootScope.$watch('user.items.' + watched, function(before, after){
if (after == before) return;
+6
View File
@@ -59,6 +59,12 @@ habitrpg.controller('SettingsCtrl',
$rootScope.$state.go('tasks');
}
$scope.rebirth = function(){
User.user.ops.rebirth({});
$rootScope.modals.rebirth = false;
$rootScope.$state.go('tasks');
}
$scope.changePassword = function(changePass){
if (!changePass.oldPassword || !changePass.newPassword || !changePass.confirmNewPassword) {
return alert("Please fill out all fields");
+4 -1
View File
@@ -139,7 +139,10 @@ angular.module('guideServices', []).
}
});
$rootScope.$watch('user.flags.rebirthEnabled', function(after, before) {
if (alreadyShown(before, after)) return;
$rootScope.modals.rebirthEnabled = true;
});
/**
+5 -2
View File
@@ -46,7 +46,9 @@ var UserSchema = new Schema({
snowball: Number,
streak: Number,
challenges: Array,
quests: Schema.Types.Mixed
quests: Schema.Types.Mixed,
rebirths: Number,
rebirthLevel: Number
},
auth: {
facebook: Schema.Types.Mixed,
@@ -95,7 +97,8 @@ var UserSchema = new Schema({
partyEnabled: Boolean, // FIXME do we need this?
contributor: Boolean,
classSelected: {type: Boolean, 'default': false},
mathUpdates: Boolean
mathUpdates: Boolean,
rebirthEnabled: {type: Boolean, 'default': false}
},
history: {
exp: Array, // [{date: Date, value: Number}], // big peformance issues if these are defined
+2 -1
View File
@@ -65,7 +65,8 @@ router['delete']('/user', auth.auth, user['delete']);
router.post('/user/revive', auth.auth, cron, user.revive); // Shared.ops
router.post('/user/reroll', auth.auth, cron, user.reroll); // Shared.ops
router.post('/user/reset', auth.auth, user.reset); // Shared.ops
router.post('/user/sleep', auth.auth, cron, user.sleep); //Shared.opss
router.post('/user/sleep', auth.auth, cron, user.sleep); //Shared.ops
router.post('/user/rebirth', auth.auth, cron, user.rebirth); //Shared.ops
router.post('/user/class/change', auth.auth, cron, user.changeClass); //Shared.ops | query={class}
router.post('/user/class/allocate', auth.auth, cron, user.allocate); //Shared.ops | query={stat}
+5
View File
@@ -137,3 +137,8 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p
| {{Content.spells.special.snowball.value}}
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='user.flags.rebirthEnabled')
button.customize-option(popover='Begin a new character at Level 1 while retaining achievements, collectibles, and tasks with history.', popover-title='Orb of Rebirth', popover-trigger='mouseenter', popover-placement='left', ng-click='modals.rebirth = true', class='rebirth_orb')
p
| 8
span.Pet_Currency_Gem1x.inline-gems
+1
View File
@@ -46,3 +46,4 @@ figure.herobox(ng-click='spell ? castEnd(profile, "user", $event) : clickMember(
.avatar-level(ng-class='userLevelStyle(profile,"label")')
i.icon-circle-arrow-up.icon-white(ng-show='profile.stats.buffs.str || profile.stats.buffs.per || profile.stats.buffs.con || profile.stats.buffs.int || profile.stats.buffs.stealth', tooltip='Buffed', style='margin-right:5px;')
| Lvl {{profile.stats.lvl}}
i.icon-plus-sign.icon-white(ng-show='profile.achievements.rebirths', tooltip='Reborn, max level {{profile.achievements.rebirthLevel}}', style='margin-left:5px')
+13 -5
View File
@@ -7,7 +7,7 @@ div(modal='modals.achievements.streak')
.achievement.achievement-thermometer
| You have stacked your "Streaker" Achievement! Every 21 days of streak, you gain 1 achievement point here.
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.achievements.streak = false') Ok
button.btn.btn-default.cancel(ng-click='modals.achievements.streak = false') OK
// Max Gear
div(modal='modals.achievements.ultimateGear')
@@ -17,7 +17,7 @@ div(modal='modals.achievements.ultimateGear')
.achievement.achievement-armor
| You have earned the "Ultimate Gear" Achievement for upgrading to the maximum gear set!
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.achievements.ultimateGear = false') Ok
button.btn.btn-default.cancel(ng-click='modals.achievements.ultimateGear = false') OK
// Beast Master
div(modal='modals.achievements.beastMaster')
@@ -28,7 +28,7 @@ div(modal='modals.achievements.beastMaster')
.achievement.achievement-rat
| You have earned the "Beast Master" Achievement for collecting all the pets!
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.achievements.beastMaster = false') Ok
button.btn.btn-default.cancel(ng-click='modals.achievements.beastMaster = false') OK
// Contributor
div(modal='user.flags.contributor')
@@ -40,7 +40,15 @@ div(modal='user.flags.contributor')
{{user.profile.name}}, you awesome person! You're now a level {{user.contributor.level}} contributor for helping HabitRPG. See <a href='http://habitrpg.wikia.com/wiki/Contributor_Rewards' target='_blank'>what prizes you've earned for your contribution!</a>
.modal-footer
button.btn.btn-default.cancel(ng-click='set({"flags.contributor":false})') Ok
button.btn.btn-default.cancel(ng-click='set({"flags.contributor":false})') OK
//Rebirth
div(modal='modals.achievements.rebirth')
.modal-header
h3 Achievement!
.modal-body
.achievement.achievement-sun
| You've begun a new adventure! This is Rebirth {{user.achievements.rebirths}} for you, and the highest Level you've attained is {{user.achievements.rebirthLevel}}. To stack this Achievement, begin your next new adventure when you've reached an even higher Level!
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.achievements.rebirth = false') OK
+2 -1
View File
@@ -8,4 +8,5 @@ include ./members
include ./settings
include ./drops
include ./classes
include ./quests
include ./quests
include ./rebirth
+45
View File
@@ -0,0 +1,45 @@
// Created by Sabe on 12/22/13.
div(modal='modals.rebirthEnabled')
.modal-header
h3 Rebirth: New Adventure Available!
.modal-body
.rebirth_orb.pull-left(style='margin-right: 5px')
p
span.
You've unlocked Rebirth! This special Market item allows you to begin a new game at level 1 while keeping your tasks, achievements, pets, and more. Use it to breathe new life into HabitRPG if you feel you've achieved it all, or to experience new features with the fresh eyes of a beginning character!
.modal-footer
button.btn.btn-default.cancel(ng-click='modals.rebirthEnabled = false') Close
div(modal='modals.rebirth')
.modal-header
h3 Rebirth: Begin a New Adventure
.modal-body
include ../gems
.rebirth_orb.pull-left(style='margin-right: 5px')
p Rebirth starts your character over from Level 1, as if you had created a new account.
br
p Your adventure begins anew with a clean slate:
.unordered
li You return to full Health.
li You have no Experience, Gold, or equipment.
li Your Habits, Dailies, and To-Dos reset to yellow, and streaks reset.
li You have the starting class of Warrior until you earn a new class.
br
p Your new character inherits a few things from their predecessor:
.unordered
li Tasks, history, and settings remain.
li Challenge, Guild, and Party memberships remain.
li Gems, backer tiers, and contributor levels remain.
li Items obtained from Gems or drops (such as pets and mounts) remain, though you cannot access them until you unlock them again.
br
.achievement-sun.pull-left(style='margin-right: 5px')
p You also earn an Achievement for beginning a new adventure!
.modal-footer
button.btn.btn-large.cancel(ng-click='modals.rebirth = false') Never mind
span(ng-if='user.balance < 2')
a.btn.btn-success.btn-large(ng-click="modals.buyGems = true") Buy More Gems
span.gem-cost Not enough Gems
span(ng-if='user.balance >= 2', ng-controller='SettingsCtrl')
a.btn.btn-danger.btn-large(ng-click='rebirth()') Be Reborn
span.gem-cost 8 Gems
+9 -2
View File
@@ -3,7 +3,6 @@
// <div class='achievement achievement-tree'></div>
// <div class='achievement achievement-comment'></div>
// <div class='achievement achievement-cave'></div>
// <div class='achievement achievement-sun'></div>
// <div class='achievement achievement-boot'></div>
// <div class='achievement achievement-coffin'></div>
// <div class='achievement achievement-alien'></div>
@@ -57,6 +56,14 @@
small Has found all 90 pets (insanely difficult, give this user props!)
hr
div(ng-if='profile.achievements.rebirths')
.achievement.achievement-sun
h5(ng-if='profile.achievements.rebirths == 1') Began a New Adventure
h5(ng-if='profile.achievements.rebirths > 1') Began {{profile.achievements.rebirths}} New Adventures
small.
Used an Orb of Rebirth to start over after attaining Level {{profile.achievements.rebirthLevel}}.
hr
div(ng-if='profile.achievements.helpedHabit')
.achievement.achievement-tree
h5 Helped Habit Grow
@@ -100,4 +107,4 @@
.achievement.achievement-snowball
h5 Annoying Friends
small Got snowballed {{profile.achievements.snowball}} times by party members.
hr
hr