Merge pull request #2486 from luveluen/develop

jade->json
This commit is contained in:
Matteo Pagliazzi 2014-01-20 07:56:54 -08:00
commit f85117a422
6 changed files with 148 additions and 145 deletions

View file

@ -13,19 +13,19 @@ script(id='partials/options.html', type="text/ng-template")
li(ng-class="{ active: $state.includes('options.profile') }")
a(ui-sref='options.profile')
i.icon-user
| Profile
=env.t('profile')
li(ng-class="{ active: $state.includes('options.social') }")
a(ui-sref='options.social')
i.icon-heart
| Social
=env.t('social')
li(ng-class="{ active: $state.includes('options.inventory') }", ng-if='user.flags.dropsEnabled')
a(ui-sref='options.inventory')
i.icon-gift
| Inventory
=env.t('inventory')
li(ng-class="{ active: $state.includes('options.settings') }")
a(ui-sref='options.settings')
i.icon-wrench
| Settings
=env.t('settings')
.tab-content
.tab-pane.active

View file

@ -5,17 +5,17 @@ script(type='text/ng-template', id='partials/options.inventory.html')
ul.nav.nav-tabs
li(ng-class="{ active: $state.includes('options.inventory.drops') }")
a(ui-sref='options.inventory.drops')
| Market
=env.t('market')
li(ng-class="{ active: $state.includes('options.inventory.pets') }")
a(ui-sref='options.inventory.pets')
| Pets
=env.t('pets')
li(ng-class="{ active: $state.includes('options.inventory.mounts') }")
a(ui-sref='options.inventory.mounts')
| Mounts
=env.t('mounts')
li.equipment-tab(ng-class="{ active: $state.includes('options.inventory.equipment') }")
a(ui-sref='options.inventory.equipment')
| Equipment
=env.t('equipment')
.tab-content
.tab-pane.active
div(ui-view)
div(ui-view)

View file

@ -1,19 +1,19 @@
script(type='text/ng-template', id='partials/options.inventory.equipment.html')
.row-fluid
.span6.border-right
h3 Battle Gear
small This is the gear you wear into battle, it affects numbers when interacting with your tasks.
h3=env.t('battlegear')
small =env.t('battlegeartext')
li.customize-menu.inventory-gear
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Wizard", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
div(ng-repeat='item in gear[klass]')
button.customize-option(popover='{{item.notes}}', popover-title='{{item.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{key:item.key}})', class='shop_{{item.key}}', ng-class='{selectableInventory: user.items.gear.equipped[item.type] == item.key}')
.span6
h3 Costume
small But if you prefer the look of other gear to what you have equipped, check this box to visually don a costume while wearing your battle gear underneath.
h3=env.t('costume')
small =env.t('costumetext')
br
label.checkbox.inline
input(type="checkbox", ng-model="user.preferences.costume", ng-click='set({"preferences.costume":!user.preferences.costume})')
| Use Costume 
=env.t('usecostume')
li.customize-menu(ng-if='user.preferences.costume')
menu.pets-menu(label='{{label}}', ng-repeat='(klass,label) in {base:"Base", warrior:"Warrior", wizard:"Wizard", rogue:"Rogue", healer:"Healer", special:"Special"}', ng-show='gear[klass]')
div(ng-repeat='item in gear[klass]')
@ -22,13 +22,13 @@ script(type='text/ng-template', id='partials/options.inventory.equipment.html')
script(type='text/ng-template', id='partials/options.inventory.drops.html')
.row-fluid
.span6.border-right
h2 Inventory
p.well Click an egg to see usable potions highlighted in green and then click one of the highlighted potions to hatch your pet. If no potions are highlighted, click that egg again to deselect it, and instead click a potion first to have the usable eggs highlighted. You can also sell unwanted drops to Alexander the Merchant.
h2=env.t('inventory')
p.well =env.t('eggtext')
menu.inventory-list(type='list')
li.customize-menu
menu.pets-menu(label='Eggs ({{eggCount}})')
p.muted(ng-show='eggCount < 1') You don't have any eggs.
p.muted(ng-show='eggCount < 1')=env.t('noeggs')
div(ng-repeat='(egg,points) in ownedItems(user.items.eggs)')
//TODO move positioning this styling to css
button.customize-option(popover='{{Content.eggs[egg].notes}}', popover-title='{{Content.eggs[egg].text}} Egg', popover-trigger='mouseenter', popover-placement='right', ng-click='chooseEgg(egg)', class='Pet_Egg_{{egg}}', ng-class='{selectableInventory: selectedPotion && !user.items.pets[egg+"-"+selectedPotion.key]}')
@ -37,22 +37,22 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
li.customize-menu
menu.hatchingPotion-menu(label='Hatching Potions ({{potCount}})')
p.muted(ng-show='potCount < 1') You don't have any hatching potions.
p.muted(ng-show='potCount < 1')=env.t('nohatchingpotions')
div(ng-repeat='(pot,points) in ownedItems(user.items.hatchingPotions)')
button.customize-option(popover='{{Content.hatchingPotions[pot].notes}}', popover-title='{{Content.hatchingPotions[pot].text}} Potion', popover-trigger='mouseenter', popover-placement='right', ng-click='choosePotion(pot)', class='Pet_HatchingPotion_{{pot}}', ng-class='{selectableInventory: selectedEgg && !user.items.pets[selectedEgg.key+"-"+pot]}')
.badge.badge-info.stack-count {{points}}
li.customize-menu
menu.pets-menu(label='Quest Scrolls ({{questCount}})')
p.muted(ng-show='questCount < 1') You don't have any quest scrolls.
p.muted Quests require parties. If you want to quest solo, <a href="/#/options/groups/party">create an empty party</a>
p.muted(ng-show='questCount < 1')=env.t('noscrolls')
p.muted=env.t('scrollstext1') <a href="/#/options/groups/party">create an empty party</a>
div(ng-repeat='(quest_key,points) in ownedItems(user.items.quests)', ng-init='quest = Content.quests[quest_key]')
button.customize-option(popover='{{quest.previous && !user.achievements.quests[quest.previous] ? "You need to complete the previous quest to start this one!" : quest.notes}}', popover-title='{{quest.text}}', popover-trigger='mouseenter', popover-placement='right', ng-click='showQuest(quest_key)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
.badge.badge-info.stack-count {{points}}
li.customize-menu
menu.pets-menu(label='Food ({{foodCount}})')
p(ng-show='foodCount < 1') You don't have any food.
p(ng-show='foodCount < 1')env.t('nofood')
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
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}}
@ -74,10 +74,10 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
.popover.static-popover.fade.right.in
.arrow
h3.popover-title
a(target='_blank', href='http://www.kickstarter.com/profile/523661924') Alexander the Merchant
a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander')
.popover-content
p
| Welcome to the Market! Buy hard-to-find eggs and potions! Sell your extras! Commission useful services! Come see what we have to offer.
=env.t('welcomemarket')
p
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')
| Sell {{selectedEgg.key}} for {{selectedEgg.value}} Gold
@ -113,7 +113,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
li.customize-menu
menu.pets-menu(label='Quests')
p.muted Quests require parties. If you want to quest solo, <a href="/#/options/groups/party">create an empty party</a>
p.muted=env.t('scrollstext1') <a href="/#/options/groups/party">create an empty party</a>
div(ng-repeat='quest in Content.quests')
button.customize-option(popover='{{quest.text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='purchase("quests", quest)', class='inventory_quest_scroll', ng-class='{locked: quest.previous && !user.achievements.quests[quest.previous]}')
p

View file

@ -8,11 +8,11 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html')
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
.arrow
h3.popover-title
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch') Matt Boch
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattboch')
.popover-content
p.
Shall I bring you your steed, {{user.profile.name}}? Click a mount to saddle up.
h4 {{mountCount}} / {{totalPets}} Mounts Tamed
h4 {{mountCount}} / {{totalPets}} =env.t('mountstamed')
menu.pets(type='list')
li.customize-menu(ng-repeat='egg in Content.eggs')
menu
@ -22,7 +22,7 @@ script(type='text/ng-template', id='partials/options.inventory.mounts.html')
button(class="pet-button pet-not-owned", ng-hide='user.items.mounts[mount]')
.PixelPaw
h4 Rare Mounts
h4=env.t('raremounts')
menu
div
button(ng-if='user.items.mounts["BearCub-Polar"]', class="pet-button Mount_Head_BearCub-Polar", ng-class='{active: user.items.currentMount == "BearCub-Polar"}', ng-click='chooseMount("BearCub", "Polar")', popover='Polar Bear', popover-trigger='mouseenter', popover-placement='bottom')
@ -40,11 +40,11 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html')
.popover.static-popover.fade.right.in(style='max-width: 550px; margin-left: 10px;')
.arrow
h3.popover-title
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch') Matt Boch
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattboch')
.popover-content
p.
Welcome to the Stable! I'm Matt, the beast master. Choose a pet here to venture at your side. Feed them and they'll grow into powerful steeds. <a target='_blank' href='https://f.cloud.github.com/assets/2374703/164631/3ed5fa6c-78cd-11e2-8743-f65ac477b55e.png'>Have a look-see</a> at all the pets you can collect.
h4 {{petCount}} / {{totalPets}} Pets Found
h4 {{petCount}} / {{totalPets}} =env.t('petsfound')
menu.pets(type='list')
li.customize-menu(ng-repeat='egg in Content.eggs')
@ -56,23 +56,23 @@ script(type='text/ng-template', id='partials/options.inventory.pets.html')
button(class="pet-button pet-not-owned", ng-if='!user.items.pets[pet]')
.PixelPaw
h4 Rare Pets
h4=env.t('rarepets')
menu
div
button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover='Veteran Wolf', popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover='Cerberus Pup', popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover='Turkey', popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover='Polar Bear Cub', popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover='Hydra', popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Wolf-Veteran"]', class="pet-button Pet-Wolf-Veteran", ng-class='{active: user.items.currentPet == "Wolf-Veteran"}', ng-click='choosePet("Wolf", "Veteran")', popover=env.t('veteranwolf'), popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Wolf-Cerberus"]', class="pet-button Pet-Wolf-Cerberus", ng-class='{active: user.items.currentPet == "Wolf-Cerberus"}', ng-click='choosePet("Wolf", "Cerberus")', popover=env.t('cerberuspup'), popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Turkey-Base"]', class="pet-button Pet-Turkey-Base", ng-class='{active: user.items.currentPet == "Turkey-Base"}', ng-click='choosePet("Turkey", "Base")', popover=env.t('turkey'), popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["BearCub-Polar"]', class="pet-button Pet-BearCub-Polar", ng-class='{active: user.items.currentPet == "BearCub-Polar"}', ng-click='choosePet("BearCub", "Polar")', popover=env.t('polarbearpup'), popover-trigger='mouseenter', popover-placement='bottom')
button(ng-if='user.items.pets["Dragon-Hydra"]', class="pet-button Pet-Dragon-Hydra", ng-class='{active: user.items.currentPet == "Dragon-Hydra"}', ng-click='choosePet("Dragon", "Hydra")', popover=env.t('hydra'), popover-trigger='mouseenter', popover-placement='bottom')
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG')
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover="Click the gold paw to learn more about how you can obtain this rare pet through contributing to HabitRPG!", popover-title='How to Get this Pet!')
button(ng-if='!user.items.pets["Dragon-Hydra"]', class="pet-button pet-not-owned", popover-trigger='mouseenter', popover-placement='right', popover=env.t('rarepetpop1'), popover-title=env.t('rarepetpop2'))
.PixelPaw-Gold
.well.food-tray
p(ng-show='foodCount < 1') You don't have any food.
p(ng-show='foodCount < 1')=env.t('nofood')
menu.inventory-list(type='list', ng-if='foodCount > 0')
li.customize-menu
menu.pets-menu(label='Food')
menu.pets-menu(label=env.t('food'))
div(ng-repeat='(food,points) in ownedItems(user.items.food)')
button.customize-option(popover-append-to-body='true', popover='{{Content.food[food].notes}}', popover-title='{{Content.food[food].text}}', popover-trigger='mouseenter', popover-placement='left', ng-click='chooseFood(food)', class='Pet_Food_{{food}}')
.badge.badge-info.stack-count {{points}}

View file

@ -1,109 +1,112 @@
script(id='partials/options.profile.avatar.html', type='text/ng-template')
.row-fluid
.span4
h3 Body
h3=env.t('bodybody')
small.
2 <span class="Pet_Currency_Gem1x inline-gems"/> / locked
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
h5 Size
h5=env.t('bodysize')
.btn-group
button.btn.btn-small(ng-class='{active: user.preferences.size=="slim"}', ng-click='set({"preferences.size":"slim"})') Slim
button.btn.btn-small(ng-class='{active: user.preferences.size=="broad"}', ng-click='set({"preferences.size":"broad"})') Broad
button.btn.btn-small(ng-class='{active: user.preferences.size=="slim"}', ng-click='set({"preferences.size":"slim"})')=env.t('bodyslim')
button.btn.btn-small(ng-class='{active: user.preferences.size=="broad"}', ng-click='set({"preferences.size":"broad"})')=env.t('bodybroad')
menu(type='list')
li.customize-menu
menu(label='Shirts')
menu(label=env.t('shirts'))
each shirt in ['black', 'blue', 'green', 'pink', 'white', 'yellow']
button.customize-option(class='{{user.preferences.size}}_shirt_'+shirt, type='button', ng-click='set({"preferences.shirt":"'+shirt+'"})')
menu(label='Special Shirts')
menu(label=env.t('specialshirts'))
each shirt in ['convict', 'cross', 'fire', 'horizon', 'ocean', 'purple', 'rainbow', 'redblue', 'thunder', 'tropical', 'zombie']
button.customize-option(type='button', class='{{user.preferences.size}}_shirt_'+shirt, ng-class='{locked: !user.purchased.shirt.'+shirt+'}', ng-click='unlock("shirt.'+shirt+'")')
menu
button.btn.btn-small.btn-primary(ng-hide="user.purchased.shirt.convict && user.purchased.shirt.cross && user.purchased.shirt.fire && user.purchased.shirt.horizon && user.purchased.shirt.ocean && user.purchased.shirt.purple && user.purchased.shirt.rainbow && user.purchased.shirt.redblue && user.purchased.shirt.thunder && user.purchased.shirt.tropical && user.purchased.shirt.zombie", ng-click='unlock("shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie")') Unlock Set - 5 <span class="Pet_Currency_Gem1x inline-gems"/>
button.btn.btn-small.btn-primary(ng-hide="user.purchased.shirt.convict && user.purchased.shirt.cross && user.purchased.shirt.fire && user.purchased.shirt.horizon && user.purchased.shirt.ocean && user.purchased.shirt.purple && user.purchased.shirt.rainbow && user.purchased.shirt.redblue && user.purchased.shirt.thunder && user.purchased.shirt.tropical && user.purchased.shirt.zombie", ng-click='unlock("shirt.convict,shirt.cross,shirt.fire,shirt.horizon,shirt.ocean,shirt.purple,shirt.rainbow,shirt.redblue,shirt.thunder,shirt.tropical,shirt.zombie")')= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
.span4
h3 Head
h3=env.t('bodyhead')
small.
2 <span class="Pet_Currency_Gem1x inline-gems"/> / locked
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
menu(type='list')
// Color
li.customize-menu
menu(label='Color')
menu(label=env.t('color'))
each v,k in {'c8c8c8':'white','903a00':'brown','cfb853':'blond','ec720f':'red','2e2e2e':'black'}
button(type='button', class='customize-option', style='width: 40px; height: 40px; background-color:##{k};', ng-click='set({"preferences.hair.color": "#{v}"})')
// Special Events
li.customize-menu.well.limited-edition
.label.label-info.pull-right(popover='Available for purchase until January 31st (but permanently in your options if purchased).', popover-title='Limited Edition', popover-placement='right', popover-trigger='mouseenter')
| Limited Edition&nbsp;
=env.t('limitededition')
i.icon.icon-question-sign
menu(label='Winter Colors')
menu(label=env.t('wintercolors'))
each color in ['candycane','frost','winternight','holly']
button(type='button', ng-class='{locked: !user.purchased.hair.color.#{color}}', class='customize-option hair_bangs_1_#{color}', style='width: 40px; height: 40px;', ng-click='unlock("hair.color.#{color}")')
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.color.candycane && user.purchased.hair.color.frost && user.purchased.hair.color.winternight && user.purchased.hair.color.holly', ng-click='unlock("hair.color.candycane,hair.color.frost,hair.color.winternight,hair.color.holly")') Unlock Set - 5<span class="Pet_Currency_Gem1x inline-gems"/>
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.color.candycane && user.purchased.hair.color.frost && user.purchased.hair.color.winternight && user.purchased.hair.color.holly', ng-click='unlock("hair.color.candycane,hair.color.frost,hair.color.winternight,hair.color.holly")')= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
h5 Hair
h5=env.t('bodyhair')
// Bangs
li.customize-menu
menu(label='Bangs')
menu(label=env.t('hairbangs'))
button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.bangs":0})')
each num in [1,2,3]
button(class='hair_bangs_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-click='set({"preferences.hair.bangs":#{num}})')
// Base
li.customize-menu
menu(label='Base')
menu(label=env.t('hairbase'))
button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.base":0})')
each v,k in {1:true,2:false,3:true,4:false,5:false,6:false,7:false,8:false}
case v
when true: button(class='hair_base_#{k}_{{user.preferences.hair.color}} customize-option', type='button', ng-click='set({"preferences.hair.base":#{k}})')
when false: button(class='hair_base_#{k}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.base.#{k}}', ng-click='unlock("hair.base.#{k}")')
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.base.2 && user.purchased.hair.base.4 && user.purchased.hair.base.5 && user.purchased.hair.base.6 && user.purchased.hair.base.7 && user.purchased.hair.base.8', ng-click='unlock("hair.base.2,hair.base.4,hair.base.5,hair.base.6,hair.base.7,hair.base.8")') Unlock Set - 5<span class="Pet_Currency_Gem1x inline-gems"/>
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.base.2 && user.purchased.hair.base.4 && user.purchased.hair.base.5 && user.purchased.hair.base.6 && user.purchased.hair.base.7 && user.purchased.hair.base.8', ng-click='unlock("hair.base.2,hair.base.4,hair.base.5,hair.base.6,hair.base.7,hair.base.8")')= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
h5 Facial Hair
h5=env.t('bodyfacialhair')
// Beard
li.customize-menu
menu(label='Beard')
menu(label=env.t('beard'))
button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.beard":0})')
each num in [1,2,3]
button(class='hair_beard_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.beard.#{num}}', ng-click='unlock("hair.beard.#{num}")')
// Mustache
li.customize-menu
menu(label='Mustache')
menu(label=env.t('mustache'))
button(class='head_0 customize-option', type='button', ng-click='set({"preferences.hair.mustache":0})')
each num in [1,2]
button(class='hair_mustache_#{num}_{{user.preferences.hair.color}} customize-option', type='button', ng-class='{locked: !user.purchased.hair.mustache.#{num}}', ng-click='unlock("hair.mustache.#{num}")')
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.mustache.1 && user.purchased.hair.mustache.2 && user.purchased.hair.beard.1 && user.purchased.hair.beard.2 && user.purchased.hair.beard.3', ng-click='unlock("hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3")') Unlock Set - 5<span class="Pet_Currency_Gem1x inline-gems"/>
button.btn.btn-small.btn-primary(ng-hide='user.purchased.hair.mustache.1 && user.purchased.hair.mustache.2 && user.purchased.hair.beard.1 && user.purchased.hair.beard.2 && user.purchased.hair.beard.3', ng-click='unlock("hair.mustache.1,hair.mustache.2,hair.beard.1,hair.beard.2,hair.beard.3")')= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
.span4
h3 Skin
h3=env.t('skin')
small.
2 <span class="Pet_Currency_Gem1x inline-gems"/> / locked
| 2 <span class="Pet_Currency_Gem1x inline-gems"/> /
= ' ' + env.t('locked')
// skin
li.customize-menu
menu(label='Basic Skins')
menu(label=env.t('basicskins'))
each color in ['ddc994','f5a76e','ea8349','c06534','98461a','915533','c3e1dc','6bd049']
button.customize-option(type='button', class='skin_#{color}', ng-click='set({"preferences.skin":"#{color}"})')
// Rainbow Skin
h5.
Rainbow Skins
=env.t('rainbowskins')
//menu(label='Rainbow Skins (2G / skin)')
menu
each color in ['eb052b','f69922','f5d70f','0ff591','2b43f6','d7a9f7','800ed0','rainbow']
button.customize-option(type='button', class='skin_#{color}', ng-class='{locked: !user.purchased.skin.#{color}}', ng-click='unlock("skin.#{color}")')
button.btn.btn-small.btn-primary(ng-hide='user.purchased.skin.eb052b && user.purchased.skin.f69922 && user.purchased.skin.f5d70f && user.purchased.skin.0ff591 && user.purchased.skin.2b43f6 && user.purchased.skin.d7a9f7 && user.purchased.skin.800ed0 && user.purchased.skin.rainbow', ng-click='unlock("skin.eb052b,skin.f69922,skin.f5d70f,skin.0ff591,skin.2b43f6,skin.d7a9f7,skin.800ed0,skin.rainbow")') Unlock Set - 5<span class="Pet_Currency_Gem1x inline-gems"/>
button.btn.btn-small.btn-primary(ng-hide='user.purchased.skin.eb052b && user.purchased.skin.f69922 && user.purchased.skin.f5d70f && user.purchased.skin.0ff591 && user.purchased.skin.2b43f6 && user.purchased.skin.d7a9f7 && user.purchased.skin.800ed0 && user.purchased.skin.rainbow', ng-click='unlock("skin.eb052b,skin.f69922,skin.f5d70f,skin.0ff591,skin.2b43f6,skin.d7a9f7,skin.800ed0,skin.rainbow")')= env.t('unlockset5') + ' <span class="Pet_Currency_Gem1x inline-gems"/>'
// Special Events
// restore to d4df481 to see purchasing + "limited edition" code
div(ng-if='user.purchased.skin.monster || user.purchased.skin.pumpkin || user.purchased.skin.skeleton || user.purchased.skin.zombie || user.purchased.skin.ghost || user.purchased.skin.shadow')
h5 Spooky Skins
h5=env.t('spookyskins')
menu
each color in ['monster','pumpkin','skeleton','zombie','ghost','shadow']
button.customize-option(type='button', class='skin_#{color}', ng-if='user.purchased.skin.#{color}', ng-click='unlock("skin.#{color}")')
@ -113,49 +116,49 @@ script(id='partials/options.profile.stats.html', type='text/ng-template')
.border-right(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"')
include ../shared/profiles/stats
.span4.border-right.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses')
h3 Character Build
h4 Class:&nbsp;
span {{ {warrior:'Warrior',wizard:'Mage',healer:'Healer',rogue:'Rogue'}[user.stats.class] }}&nbsp;
h3=env.t('characterbuild')
h4=env.t('class') + ':'
span= '{{ {warrior:' + env.t('warrior') + ',wizard:' + env.t('mage') + ',healer:' + env.t('healer') + ',rogue:' + env.t('rogue') + '}[user.stats.class] }}&nbsp;'
a.btn.btn-danger.btn-mini(ng-click='changeClass(null)')
| Change Class, Refund Attribute Points&nbsp;
=env.t('changeclass')
small 3 <span class="Pet_Currency_Gem1x inline-gems"/>
h5(popover-trigger='mouseenter', popover-placement='left', popover="Each level earns you one point to assign to an attribute of your choice. You can do so manually, or let the game decide for you using one of the Automatic Allocation options.") Unallocated Attribute Points: {{user.stats.points}}&nbsp;
h5(popover-trigger='mouseenter', popover-placement='left', popover=env.t('levelpopover'))= env.t('unallocated') {{user.stats.points}}&nbsp;
fieldset.auto-allocate
label.checkbox
input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})')
| Automatic Allocation&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Places points into attributes according to your preferences, when you level up.")
=env.t('automaticallocation')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('automaticallocationpopover'))
form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em')
label.radio
input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})')
| Distribute attribute points evenly&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns the same number of points to each attribute.")
=env.t('evenallocation')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenallocationpopover'))
label.radio
input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})')
| Distribute attribute points based on Class&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns more points to the attributes important to your Class.")
=env.t('classallocation')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classallocationpopover'))
label.radio
input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})')
| Distribute attribute points based on task activity&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover="Assigns points based on the Physical (STR), Mental (INT), Social (CON), and Other (PER) categories associated with the tasks you complete.")
=env.t('taskallocation')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskallocationpopover'))
table.table.table-striped
tr
td Points allocated to STR: {{user.stats.str}}
td= env.t('allocatestr') + ' {{user.stats.str}}'
td
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Strength") +
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("str")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocatestrpop')) +
tr
td Points allocated to CON: {{user.stats.con}}
td= env.t('allocatecon') + ' {{user.stats.con}}'
td
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Constitution") +
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("con")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateconpop')) +
tr
td Points allocated to PER: {{user.stats.per}}
td= env.t('allocateper') + ' {{user.stats.per}}'
td
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Perception") +
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("per")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateperpop')) +
tr
td Points allocated to INT: {{user.stats.int}}
td= env.t('allocateint') + ' {{user.stats.int}}'
td
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover="Add a point to Intelligence") +
a.btn.btn-primary(ng-show='user.stats.points', ng-click='allocate("int")', popover-trigger='mouseenter', popover-placement='right', popover=env.t('allocateintpop')) +
div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "span4" : "span6"')
include ../shared/profiles/achievements
@ -163,15 +166,15 @@ script(id='partials/options.profile.profile.html', type='text/ng-template')
button.btn.btn-default(ng-click='_editing.profile = true', ng-show='!_editing.profile') Edit
button.btn.btn-primary(ng-click='save()', ng-show='_editing.profile') Save
div(ng-show='!_editing.profile')
h4 Display Name
h4=env.t('displayname')
span(ng-show='profile.profile.name') {{profile.profile.name}}
span.muted(ng-hide='profile.profile.name') - None -
h4 Photo
h4=env.t('displayphoto')
img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}')
span.muted(ng-hide='profile.profile.imageUrl') - None -
h4 Blurb
h4=env.t('displayblub')
markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb')
span.muted(ng-hide='profile.profile.blurb') - None -
//{{profile.profile.blurb | linky:'_blank'}}
@ -179,27 +182,27 @@ script(id='partials/options.profile.profile.html', type='text/ng-template')
div.whatever-options(ng-show='_editing.profile')
// TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak
.control-group.option-large
label.control-label Display Name
input.option-content(type='text', placeholder='Full Name', ng-model='editingProfile.name')
label.control-label =env.t('displayname')
input.option-content(type='text', placeholder=env.t('fullName')), ng-model='editingProfile.name')
.control-group.option-large
label.control-label Photo Url
input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder='Image Url')
label.control-label =env.t('photourl')
input.option-content(type='url', ng-model='editingProfile.imageUrl', placeholder=env.t('imageurl'))
.control-group.option-large
label.control-label Blurb
textarea.option-content(style='height:15em;', placeholder='Blurb', ng-model='editingProfile.blurb')
label.control-label =env.t('displayblurb')
textarea.option-content(style='height:15em;', placeholder=env.t("displayblurb"), ng-model='editingProfile.blurb')
include ../shared/formatting-help
script(id='partials/options.profile.html', type="text/ng-template")
ul.nav.nav-tabs
li(ng-class="{ active: $state.includes('options.profile.avatar') }")
a(ui-sref='options.profile.avatar')
| Avatar
=env.t('avatar')
li(ng-class="{ active: $state.includes('options.profile.stats') }")
a(ui-sref='options.profile.stats')
| Stats & Achievements
=env.t('statsach')
li(ng-class="{ active: $state.includes('options.profile.profile') }")
a(ui-sref='options.profile.profile')
| Profile
=env.t('profile')
.tab-content
.tab-pane.active

View file

@ -2,13 +2,13 @@ script(id='partials/options.settings.html', type="text/ng-template")
ul.nav.nav-tabs
li(ng-class="{ active: $state.includes('options.settings.settings') }")
a(ui-sref='options.settings.settings')
| Settings
=env.t('settings')
li(ng-class="{ active: $state.includes('options.settings.api') }")
a(ui-sref='options.settings.api')
| API
=env.t('API')
li(ng-class="{ active: $state.includes('options.settings.export') }")
a(ui-sref='options.settings.export')
| Data Export
=env.t('dataexport')
.tab-content
.tab-pane.active
@ -17,89 +17,89 @@ script(id='partials/options.settings.html', type="text/ng-template")
script(type='text/ng-template', id='partials/options.settings.settings.html')
.row-fluid
.personal-options.span6
h2 Settings
h4 Custom Day Start
h2=env.t('settings')
h4=env.t('customDayStart')
.option-group.option-short
input.option-content.option-time(type='number', min='0', max='24', ng-model='user.preferences.dayStart', ng-change='saveDayStart()')
span.input-suffix :00 (24h clock)
span.input-suffix = ':00 (' + env.t('24HrClock') + ')'
div
small
div Habit defaults to check and reset your dailies at midnight in your time zone each day. You can customize the hour here (enter a number between 0 and 24).
div =env.t('clockInfo')
.alert.alert-danger Warning: this is a highly-experimental feature, and many <a href='https://github.com/HabitRPG/habitrpg/issues/1057' target='_blank'>experience issues</a> with it.
hr
h4 Language
h4=env.t('language')
select(ng-model='language.code', ng-options='lang.code as lang.name for lang in avalaibleLanguages', ng-change='changeLanguage()')
hr
h4 Misc
h4=env.t('hideHeader')
label.checkbox
input(type='checkbox', ng-click='set({"preferences.hideHeader":user.preferences.hideHeader?false:true})', ng-checked='user.preferences.hideHeader!==true')
| Show header&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='Show your avatar, Health/Experience bars, and party.')
=env.t('showHeader')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('showHeaderpop'))
label.checkbox
input(type='checkbox', ng-click='toggleStickyHeader()', ng-checked='user.preferences.stickyHeader!==false')
| Sticky header&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='Affix the header to the top of the screen. Unchecked means it scrolls out of view.')
=env.t('stickyHeader')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('stickyHeaderpop'))
label.checkbox
input(type='checkbox', ng-model='user.preferences.newTaskEdit', ng-change='set({"preferences.newTaskEdit": user.preferences.newTaskEdit?true: false})')
| Open new tasks in edit mode&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, new tasks will immediately open for you to add details like notes and tags.')
=env.t('newtaskedit')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('newtaskeditpop'))
label.checkbox
input(type='checkbox', ng-model='user.preferences.tagsCollapsed', ng-change='set({"preferences.tagsCollapsed": user.preferences.tagsCollapsed?true: false})')
| Tag list in tasks starts collapsed&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, the list of task tags will be hidden when you first open a task for editing.')
=env.t('startcollapsed')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startcollapsedpop'))
label.checkbox
input(type='checkbox', ng-model='user.preferences.advancedCollapsed', ng-change='set({"preferences.advancedCollapsed": user.preferences.advancedCollapsed?true: false})')
| Advanced Options in tasks start collapsed&nbsp;
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover='With this option set, Advanced Options will be hidden when you first open a task for editing.')
button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover='Restart the introductory tour from when you first joined HabitRPG.') Show Tour
=env.t('startacollapsed')
i.icon-question-sign(popover-trigger='mouseenter', popover-placement='right', popover=env.t('startacollapsedpop'))
button.btn(ng-click='showTour()', popover-placement='right', popover-trigger='mouseenter', popover=env.t('showtourpop1'))= env.t('showtour')
br
button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover='Bring Bailey the Town Crier out of hiding so you can review past news.') Show Bailey
button.btn(ng-click='showBailey()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showtourpop'))= env.t('showtour2')
br
button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover='Manually change values like Health, Level, and Gold.') Fix Character Values
button.btn(ng-click='modals.restore = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('fixvalpop'))= env.t('fixval')
div(ng-if='user.preferences.disableClasses==true')
button.btn(ng-click='user.ops.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover="You opted out of the class system initially. Would you like now to opt-in?") Enable Class System
button.btn(ng-click='user.ops.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('enableclasspop'))= env.t('enableclass')
div(ng-if='!user.preferences.disableClasses && user.flags.classSelected')
button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover="Show the tour for using the class system.") Show Classes Tour
button.btn(ng-click='showClassesTour()', popover-trigger='mouseenter', popover-placement='right', popover=env.t('showclasspop'))= env.t('showclass')
//- Why is ng-if='user.auth.local' validating for users *without* user.auth.local (facebook users)? adding .username here for extra
div(ng-if='user.auth.local.username')
hr
h4 Change Password
h4=env.t('changePass')
form(ng-submit='changePassword(changePass)', ng-show='user.auth.local')
.control-group
input(type='password', placeholder='Old Password', ng-model='changePass.oldPassword', required)
input(type='password', placeholder=env.t('oldPass'), ng-model='changePass.oldPassword', required)
.control-group
input(type='password', placeholder='New Password', ng-model='changePass.newPassword', required)
input(type='password', placeholder=env.t('newPass'), ng-model='changePass.newPassword', required)
.control-group
input(type='password', placeholder='Confirm New Password', ng-model='changePass.confirmNewPassword', required)
input.btn(type='submit', value='Submit')
input(type='password', placeholder=env.t('confirmPAss'), ng-model='changePass.confirmNewPassword', required)
input.btn(type='submit', value=env.t('submit')')
hr
h4 Danger Zone
a.btn.btn-danger(ng-click='modals.reset = true', popover-trigger='mouseenter', popover-placement='right', popover='Start over, removing all levels, gold, gear, history, and tasks.') Reset Account
a.btn.btn-danger(ng-click='modals.delete = true', popover-trigger='mouseenter', popover='Cancel and remove your HabitRPG account.') Delete Account
h4=env.t('dangerZone')
a.btn.btn-danger(ng-click='modals.reset = true', popover-trigger='mouseenter', popover-placement='right', popover=env.t('resetaccpop'))= env.t('resetaccount')
a.btn.btn-danger(ng-click='modals.delete = true', popover-trigger='mouseenter', popover=env.t('deleteaccpop'))= env.t('deleteaccount')
script(type='text/ng-template', id='partials/options.settings.api.html')
.row.fluid
.span6
h2 API
small Copy these for use in third party applications.
h6 User ID
h2=env.t('API')
small =env.t('APIText')
h6=env.t('userId')
pre.prettyprint {{user.id}}
h6 API Token
h6=env.t('APIToken')
pre.prettyprint {{user.apiToken}}
h6 QR Code
h6=env.t('qrcode')
img(src='https://chart.googleapis.com/chart?cht=qr&chs=200x200&chl=%7B%22address%22%3A%22https%3A%2F%2Fhabitrpg.com%22%2C%22user%22%3A%22{{user.id}}%22%2C%22key%22%3A%22{{user.apiToken}}%22%7D&choe=UTF-8&chld=L', alt='qrcode')
script(id='partials/options.settings.export.html', type="text/ng-template")
.row.fluid
.span6
h2 Data Export
small Here are a few options for saving your Habit data.
h4 Habit History
Export History: &nbsp;
a(href="/export/history.csv") (CSV) &nbsp;
h4 User Data
Export User Data: &nbsp;
a(href="/export/userdata.xml") (XML) &nbsp;
a(href="/export/userdata.json") (JSON) &nbsp;
h2=env.t('dataexport')
small =env.t('dataexports')
h4=env.t('habithistory')
=env.t('exporthistory')
a(href="/export/history.csv")= env.t('csv')
h4=env.t('userdata')
=env.t('exportuserdata')
a(href="/export/userdata.xml")= env.t('xml')
a(href="/export/userdata.json")= env.t('json')