costumes: add costume support in inventory

This commit is contained in:
Tyler Renelle
2013-12-04 22:50:20 -07:00
parent decaa2867b
commit 5fea978e6b
4 changed files with 40 additions and 9 deletions

View File

@@ -162,5 +162,10 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', 'User', 'API_URL',
User.set('items.currentMount', (user.items.currentMount == mount) ? '' : mount);
}
$scope.equip = function(user, item, costume) {
var equipTo = costume ? 'costume' : 'equipped';
User.set('items.gear.' + equipTo + '.' + item.type, item.key);
}
}
]);

View File

@@ -114,12 +114,18 @@ var UserSchema = new Schema({
m[v.key]['default'] = true;
}),
current: {
equipped: {
weapon: {type: String, 'default': 'weapon_warrior_0'},
armor: {type: String, 'default': 'armor_warrior_0'},
head: {type: String, 'default': 'head_warrior_0'},
shield: {type: String, 'default': 'shield_warrior_0'}
}
},
costume: {
weapon: {type: String, 'default': 'weapon_warrior_0'},
armor: {type: String, 'default': 'armor_warrior_0'},
head: {type: String, 'default': 'head_warrior_0'},
shield: {type: String, 'default': 'shield_warrior_0'}
},
},
// -------------- Animals -------------------
@@ -209,7 +215,8 @@ var UserSchema = new Schema({
skin: {type:String, 'default':'white'},
timezoneOffset: Number,
language: String,
automaticAllocation: Boolean
automaticAllocation: Boolean,
useCostume: Boolean
},
profile: {
blurb: String,

View File

@@ -7,8 +7,16 @@ script(type='text/ng-template', id='partials/options.inventory.inventory.html')
li.customize-menu
menu.pets-menu(label='Gear')
div(ng-repeat='(k,v) in user.items.gear.owned')
button.customize-option(popover='{{Items.gear.flat[k].notes}}', popover-title='{{Items.gear.flat[k].text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='equip(v)', class='shop_{{v.key}}')
div(ng-repeat='(k,v) in user.items.gear.owned', ng-init='item = Items.gear.flat[k]')
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='equip(user,item)', class='shop_{{item.key}}')
label.checkbox.inline
input(type="checkbox", ng-model="user.preferences.costume")
| Use Custume 
i.icon-question-sign(popover="Show something different on your avatar than the gear you have equipped for battle", popover-trigger='mouseenter', popover-placement='right')
li.customize-menu(ng-if='user.preferences.costume')
menu.pets-menu(label='Gear')
div(ng-repeat='(k,v) in user.items.gear.owned', ng-init='item = Items.gear.flat[k]')
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='equip(user,item,true)', class='shop_{{item.key}}')
li.customize-menu
menu.pets-menu(label='Eggs ({{eggCount}})')

View File

@@ -8,14 +8,25 @@ figure.herobox(ng-click='spell ? castEnd(profile, "user", $event) : clickMember(
// Mount Body
span(ng-if='profile.items.currentMount', class='Mount_Body_{{profile.items.currentMount}}')
// Avatar
span(class='skin_{{profile.preferences.skin}}')
span(class='{{profile.preferences.size}}_{{profile.items.gear.current.armor}}', ng-show='profile.preferences.showArmor')
span(class='{{profile.preferences.size}}_{{profile.items.gear.equipped.armor}}', ng-if='!profile.preferences.costume')
span(class='{{profile.preferences.size}}_{{profile.items.gear.costume.armor}}', ng-if='profile.preferences.costume')
span(class='head_warrior_0')
span(class='hair_base_{{profile.preferences.hair.base}}_{{profile.preferences.hair.color}}')
span(class='hair_bangs_{{profile.preferences.hair.bangs}}_{{profile.preferences.hair.color}}')
span(class='{{profile.items.gear.current.head}}', ng-show='profile.preferences.showHelm')
span(class='{{profile.items.gear.current.shield}}', ng-show='profile.preferences.showShield')
span(class='{{profile.items.gear.current.weapon}}', ng-show='profile.preferences.showWeapon')
span(class='{{profile.items.gear.equipped.head}}', ng-if='!profile.preferences.costume')
span(class='{{profile.items.gear.costume.head}}', ng-if='profile.preferences.costume')
span(class='{{profile.items.gear.equipped.shield}}', ng-if='!profile.preferences.costume')
span(class='{{profile.items.gear.costume.shield}}', ng-if='profile.preferences.costume')
span(class='{{profile.items.gear.equipped.weapon}}', ng-if='!profile.preferences.costume')
span(class='{{profile.items.gear.costume.weapon}}', ng-if='profile.preferences.costume')
// Mount Head
span(ng-if='profile.items.currentMount', class='Mount_Head_{{profile.items.currentMount}}')