feat(spookDust): add the spookDust special spell, like snowballs. Note: this is handled specially so spookDust can be bought with GP, is a WIP

This commit is contained in:
Tyler Renelle 2014-10-02 19:17:26 -06:00
parent e759dbe951
commit 0841cafd1f
6 changed files with 59 additions and 36 deletions

View file

@ -87,6 +87,12 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User',
}
$scope.purchase = function(type, item){
if (item.key=='spookDust') {
// FIXME stupid method of special-handling spookDust, since it can be purchased with gold and the system only accomodates gem-purchasable holiday spells
if (user.stats.gp < item.value) return alert(window.env.t('messageNotEnoughGold'));
return User.set({'stats.gp':user.stats.gp-item.value, 'items.special.spookDust':(user.items.special.spookDust || 0)+1});
}
var gems = User.user.balance * 4;
if(gems < item.value) return $rootScope.openModal('buyGems');

View file

@ -37,6 +37,7 @@ var UserSchema = new Schema({
beastMasterCount: Number,
veteran: Boolean,
snowball: Number,
spookDust: Number,
streak: Number,
challenges: Array,
quests: Schema.Types.Mixed,
@ -155,6 +156,7 @@ var UserSchema = new Schema({
special:{
snowball: {type: Number, 'default': 0},
spookDust: {type: Number, 'default': 0},
valentine: Number,
valentineReceived: Array // array of strings, by sender name
},
@ -296,7 +298,8 @@ var UserSchema = new Schema({
con: {type: Number, 'default': 0},
stealth: {type: Number, 'default': 0},
streaks: {type: Boolean, 'default': false},
snowball: {type: Boolean, 'default': false}
snowBall: {type: Boolean, 'default': false},
spookDust: {type: Boolean, 'default': false}
},
training: {
int: {type: Number, 'default': 0},

View file

@ -58,11 +58,14 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
button.customize-option(popover='{{::Content.food[food].notes()}}', popover-title='{{::Content.food[food].text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseFood(food)', class='Pet_Food_{{::food}}')
.badge.badge-info.stack-count {{points}}
li.customize-menu(ng-if='user.items.special.snowball')
menu.pets-menu(label=env.t('special'))
div
button.customize-option(popover='{{::Content.special.snowball.notes()}}', popover-title='{{::Content.special.snowball.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.snowball)', class='inventory_special_snowball')
.badge.badge-info.stack-count {{user.items.special.snowball}}
mixin specialItem(k)
li.customize-menu(ng-if='user.items.special.#{k}')
menu.pets-menu(label=env.t('special'))
div
button.customize-option(popover='{{::Content.special.#{k}.notes()}}', popover-title='{{::Content.special.#{k}.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='castStart(Content.special.#{k})', class='inventory_special_#{k}')
.badge.badge-info.stack-count {{user.items.special.#{k}}}
+specialItem('snowball')
+specialItem('spookDust')
li.customize-menu(ng-if='user.items.special.valentineReceived[0]')
menu.pets-menu(label=env.t('valentineCard'))
@ -142,11 +145,15 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p
| 4
span.Pet_Currency_Gem1x.inline-gems
//-div
button.customize-option(popover='{{::Content.spells.special.snowball.notes()}}', popover-title='{{::Content.spells.special.snowball.text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.snowball)', class='inventory_special_snowball')
p
| {{::Content.spells.special.snowball.value}}
span.Pet_Currency_Gem1x.inline-gems
mixin buySpecialSpell(k,gp)
div
button.customize-option(popover='{{::Content.spells.special.#{k}.notes()}}', popover-title='{{::Content.spells.special.#{k}.text()}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("special", Content.spells.special.#{k})', class='inventory_special_#{k}')
p
| {{::Content.spells.special.#{k}.value}}
span(class='#{gp ? "shop_gold" : "Pet_Currency_Gem1x inline-gems"}')
//-+buySpecialSpell('snowball',false)
+buySpecialSpell('spookDust',true)
div(ng-show='user.flags.rebirthEnabled')
button.customize-option(popover=env.t('rebirthPop'), popover-title=env.t('rebirthName'), popover-trigger='mouseenter', popover-placement='left', ng-click='openModal("rebirth")', class='rebirth_orb')
p(ng-show='user.stats.lvl < 100')

View file

@ -13,7 +13,9 @@ mixin avatar(opts)
span(ng-if='profile.stats.buffs.snowball')
span.snowman
span(ng-if='!profile.stats.buffs.snowball')
span(ng-if='profile.stats.buffs.spookDust')
span.spookman
span(ng-if='!profile.stats.buffs.snowball && !profile.stats.buffs.spookDust')
// Back Accessory
span(class='{{profile.items.gear.equipped.back}}', ng-if='!profile.preferences.costume')
span(class='{{profile.items.gear.costume.back}}', ng-if='profile.preferences.costume')

View file

@ -143,6 +143,13 @@ div(ng-if='profile.achievements.snowball')
=env.t('annoyingFriendsText', {snowballs: "{{profile.achievements.snowball}}"})
hr
div(ng-if='profile.achievements.spookDust')
.achievement.achievement-spookDust
h5=env.t('alarmingFriends')
small
=env.t('alarmingFriendsText', {spookDust: "{{profile.achievements.spookDust}}"})
hr
div(ng-if='::profile.achievements.habitBirthday')
.achievement.achievement-habitBirthday
h5=env.t('habitBirthday')

View file

@ -50,32 +50,30 @@ script(id='templates/habitrpg-tasks.html', type="text/ng-template")
p.task-text {{item.text()}}
// Events
ul.items.rewards(ng-if='main && list.type=="reward" && (user.items.special.snowball>0 || user.stats.buffs.snowball)')
ul.items.rewards(ng-if='main && list.type=="reward" && (user.items.special.snowball>0 || user.stats.buffs.snowball || user.items.special.spookDust>0 || user.stats.buffs.spookDust)')
li.task.reward-item(ng-if='user.items.special.snowball>0',popover-trigger='mouseenter', popover-placement='top', popover='{{Content.spells.special.snowball.notes()}}')
.task-meta-controls
span.task-notes
span.glyphicon.glyphicon-comment
//left-hand size commands
.task-controls
a.money.btn-buy.item-btn(ng-click='castStart(Content.spells.special.snowball)')
span.reward-cost {{user.items.special.snowball}}
span.shop_snowball(style='display:inline-block;vertical-align:top;')
// main content
p.task-text {{Content.spells.special.snowball.text()}}
mixin specialSpell(k,canceler)
li.task.reward-item(ng-if='#{canceler ? "user.stats.buffs."+canceler : "user.items.special."+k+">0"}',popover-trigger='mouseenter', popover-placement='top', popover='{{Content.spells.special.#{k}.notes()}}')
.task-meta-controls
span.task-notes
span.glyphicon.glyphicon-comment
//left-hand size commands
.task-controls
a.money.btn-buy.item-btn(ng-click='castStart(Content.spells.special.#{k})')
if canceler
span.reward-cost {{Content.spells.special.#{k}.value}}
span.shop_gold
else
span.reward-cost {{user.items.special.#{k}}}
span(class='shop_#{k}',style='display:inline-block;vertical-align:top;')
// main content
p.task-text {{Content.spells.special.#{k}.text()}}
li.task.reward-item(ng-if='user.stats.buffs.snowball',popover-trigger='mouseenter', popover-placement='top', popover='{{Content.spells.special.salt.notes()}}')
.task-meta-controls
span.task-notes
span.glyphicon.glyphicon-comment
//left-hand size commands
.task-controls
a.money.btn-buy.item-btn(ng-click='castStart(Content.spells.special.salt)')
span.reward-cost {{Content.spells.special.salt.value}}
span.shop_gold
// main content
span.shop_salt.shop-sprite.item-img
p.task-text {{Content.spells.special.salt.text()}}
+specialSpell('snowball')
+specialSpell('spookDust')
+specialSpell('salt','snowball')
+specialSpell('opaquePotion','spookDust')
// Spells
ul.items(ng-if='main && list.type=="reward" && user.stats.class && !user.preferences.disableClasses')