Merge branch 'develop' into refactor_member_modal_and_stats_page

This commit is contained in:
Blade Barringer 2015-07-18 17:10:04 -05:00
commit a139ca8ba5
8 changed files with 211 additions and 225 deletions

View file

@ -150,5 +150,9 @@
"mageWiki": "<a href='http://habitrpg.wikia.com/wiki/Mage' target='_blank'>Mage</a>", "mageWiki": "<a href='http://habitrpg.wikia.com/wiki/Mage' target='_blank'>Mage</a>",
"rogueWiki": "<a href='http://habitrpg.wikia.com/wiki/Rogue' target='_blank'>Rogue</a>", "rogueWiki": "<a href='http://habitrpg.wikia.com/wiki/Rogue' target='_blank'>Rogue</a>",
"healerWiki": "<a href='http://habitrpg.wikia.com/wiki/Healer' target='_blank'>Healer</a>", "healerWiki": "<a href='http://habitrpg.wikia.com/wiki/Healer' target='_blank'>Healer</a>",
"chooseClassLearn": "<a href='http://habitrpg.wikia.com/wiki/Class_System' target='_blank'>Learn more about classes</a>" "chooseClassLearn": "<a href='http://habitrpg.wikia.com/wiki/Class_System' target='_blank'>Learn more about classes</a>",
"str": "STR",
"con": "CON",
"per": "PER",
"int": "INT"
} }

View file

@ -94,132 +94,128 @@
.col-md-6.border-left .col-md-6.border-left
h2=env.t('market') h2=env.t('market')
.row-fluid .npc_alex_container
table.npc_alex_container .pull-left-sm.col-centered(class="#{env.worldDmg.market ? 'npc_alex_broken' : 'npc_alex'}")
tr .popover.static-popover.fade.right.in.pull-left-sm
td .arrow.hidden-xs
.pull-left(class="#{env.worldDmg.market ? 'npc_alex_broken' : 'npc_alex'}") h3.popover-title
td a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander')
.popover.static-popover.fade.right.in .popover-content
.arrow p=env.t('welcomeMarket')
h3.popover-title p
a(target='_blank', href='http://www.kickstarter.com/profile/523661924')=env.t('alexander') button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellEggForGold', {itemType: "{{selectedEgg.text()}}", gold: "{{selectedEgg.value}}"})
.popover-content button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellPotionForGold', {itemType: "{{selectedPotion.text()}}", gold: "{{selectedPotion.value}}"})
p=env.t('welcomeMarket') button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text()}}", gold: "{{selectedFood.value}}"})
p menu.inventory-list(type='list')
button.btn.btn-primary(ng-show='selectedEgg', ng-click='sellInventory()')=env.t('sellEggForGold', {itemType: "{{selectedEgg.text()}}", gold: "{{selectedEgg.value}}"}) li.customize-menu
button.btn.btn-primary(ng-show='selectedPotion', ng-click='sellInventory()')=env.t('sellPotionForGold', {itemType: "{{selectedPotion.text()}}", gold: "{{selectedPotion.value}}"}) menu.pets-menu(label=env.t('eggs'))
button.btn.btn-primary(ng-show='selectedFood', ng-click='sellInventory()')=env.t('sellForGold', {item: "{{selectedFood.text()}}", gold: "{{selectedFood.value}}"}) p.muted!=env.t('dropsExplanation')
menu.inventory-list(type='list')
li.customize-menu
menu.pets-menu(label=env.t('eggs'))
p.muted!=env.t('dropsExplanation')
div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy') div(ng-repeat='egg in Content.eggs', ng-if='egg.canBuy')
button.customize-option(class='Pet_Egg_{{::egg.key}}', button.customize-option(class='Pet_Egg_{{::egg.key}}',
popover='{{::egg.notes()}}', popover-append-to-body='true', popover='{{::egg.notes()}}', popover-append-to-body='true',
popover-title!=env.t("egg", {eggType: "{{::egg.text()}}"}), popover-title!=env.t("egg", {eggType: "{{::egg.text()}}"}),
popover-trigger='mouseenter', popover-placement='top',
ng-click='purchase("eggs", egg)')
p {{::egg.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
//- buyable quest eggs. TODO: Get this from a collection so we don't have to maintain this ridiculous comma-delimited list
//- The hard part will be the trex stuff, since it is allowed to exist with two quests
each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin',rock:'Rock',bunny:'Bunny',slime:'Slime',sheep:'Sheep',kraken:'Cuttlefish',whale:'Whale'}
div(ng-show='user.achievements.quests.#{quest} > 0')
button.customize-option(class='Pet_Egg_#{egg}',
popover='{{::Content.eggs.#{egg}.notes()}}', popover-append-to-body='true',
popover-title!=env.t("egg", {eggType: "{{::Content.eggs.#{egg}.text()}}"}),
popover-trigger='mouseenter', popover-placement='top', popover-trigger='mouseenter', popover-placement='top',
ng-click='purchase("eggs", egg)') ng-click='purchase("eggs", Content.eggs.#{egg})')
p {{::egg.value}}&nbsp; p {{::Content.eggs.#{egg}.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
//- buyable quest eggs. TODO: Get this from a collection so we don't have to maintain this ridiculous comma-delimited list
//- The hard part will be the trex stuff, since it is allowed to exist with two quests
each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin',rock:'Rock',bunny:'Bunny',slime:'Slime',sheep:'Sheep',kraken:'Cuttlefish',whale:'Whale'}
div(ng-show='user.achievements.quests.#{quest} > 0')
button.customize-option(class='Pet_Egg_#{egg}',
popover='{{::Content.eggs.#{egg}.notes()}}', popover-append-to-body='true',
popover-title!=env.t("egg", {eggType: "{{::Content.eggs.#{egg}.text()}}"}),
popover-trigger='mouseenter', popover-placement='top',
ng-click='purchase("eggs", Content.eggs.#{egg})')
p {{::Content.eggs.#{egg}.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='(user.achievements.quests.trex + user.achievements.quests.trex_undead) > 0')
button.customize-option(class='Pet_Egg_TRex',
popover='{{::Content.eggs.TRex.notes()}}', popover-append-to-body='true',
popover-title!=env.t("egg", {eggType: "{{Content.eggs.TRex.text()}}"}),
popover-trigger='mouseenter', popover-placement='top',
ng-click='purchase("eggs", Content.eggs.TRex)')
p {{::Content.eggs.TRex.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems span.Pet_Currency_Gem1x.inline-gems
li.customize-menu div(ng-show='(user.achievements.quests.trex + user.achievements.quests.trex_undead) > 0')
menu.pets-menu(label=env.t('hatchingPotions')) button.customize-option(class='Pet_Egg_TRex',
p.muted!=env.t('dropsExplanation') popover='{{::Content.eggs.TRex.notes()}}', popover-append-to-body='true',
div(ng-repeat='pot in Content.hatchingPotions') popover-title!=env.t("egg", {eggType: "{{Content.eggs.TRex.text()}}"}),
button.customize-option(class='Pet_HatchingPotion_{{::pot.key}}', popover-trigger='mouseenter', popover-placement='top',
popover='{{::pot.notes()}}', popover-append-to-body='true', ng-click='purchase("eggs", Content.eggs.TRex)')
popover-title!=env.t("potion", {potionType: "{{::pot.text()}}"}), p {{::Content.eggs.TRex.value}}&nbsp;
popover-trigger='mouseenter', popover-placement='top', span.Pet_Currency_Gem1x.inline-gems
ng-click='purchase("hatchingPotions", pot)')
p
| {{::pot.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
li.customize-menu li.customize-menu
menu.pets-menu(label=env.t('food')) menu.pets-menu(label=env.t('hatchingPotions'))
p.muted!=env.t('dropsExplanation') p.muted!=env.t('dropsExplanation')
div(ng-repeat='food in Content.food', ng-if='food.canBuy') div(ng-repeat='pot in Content.hatchingPotions')
button.customize-option(class='Pet_Food_{{::food.key}}', button.customize-option(class='Pet_HatchingPotion_{{::pot.key}}',
popover='{{::food.notes()}}', popover-title='{{::food.text()}}', popover='{{::pot.notes()}}', popover-append-to-body='true',
popover-trigger='mouseenter', popover-placement='top', popover-title!=env.t("potion", {potionType: "{{::pot.text()}}"}),
popover-append-to-body='true', popover-trigger='mouseenter', popover-placement='top',
ng-click='purchase("food", food)') ng-click='purchase("hatchingPotions", pot)')
p p
| {{::food.value}}&nbsp; | {{::pot.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems span.Pet_Currency_Gem1x.inline-gems
li.customize-menu li.customize-menu
menu.pets-menu(label=env.t('quests')) menu.pets-menu(label=env.t('food'))
p=env.t('whereAreMyQuests') p.muted!=env.t('dropsExplanation')
div(ng-repeat='food in Content.food', ng-if='food.canBuy')
li.customize-menu button.customize-option(class='Pet_Food_{{::food.key}}',
menu.pets-menu(label=env.t('special')) popover='{{::food.notes()}}', popover-title='{{::food.text()}}',
div popover-trigger='mouseenter', popover-placement='top',
button.customize-option(class='inventory_special_fortify',
popover=env.t('fortifyPop'),
popover-title=env.t('fortifyName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("reroll")')
p
| 4&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='user.flags.rebirthEnabled')
button.customize-option(class='rebirth_orb',
popover=env.t('rebirthPop'), popover-title=env.t('rebirthName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("rebirth")')
p(ng-show='user.stats.lvl < 100')
| 8&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='petCount >= 90 || mountCount >= 90')
button.customize-option(popover=env.t('petKeyPop'), popover-title=env.t('petKeyName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("pet-key", {size:"lg"})', class='pet_key')
p(ng-show='petCount < 90 || mountCount < 90 || !user.achievements.triadBingo')
| 4&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-if='user.purchased.plan.customerId', ng-class='::{transparent:(Shared.planGemLimits.convCap + User.user.purchased.plan.consecutive.gemCapExtra - User.user.purchased.plan.gemsBought) < 1}')
button.customize-option(popover=env.t('subGemPop'), popover-title=env.t('subGemName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='user.ops.purchase({params:{type:"gems",key:"gem"}})')
span.Pet_Currency_Gem.inline-gems
.badge.badge-success.stack-count {{Shared.planGemLimits.convCap + User.user.purchased.plan.consecutive.gemCapExtra - User.user.purchased.plan.gemsBought}}
p
| 20&nbsp;
span.shop_gold
// div
button.customize-option(class='inventory_special_valentine',
popover='{{::Content.spells.special.valentine.notes()}}',
popover-title='{{::Content.spells.special.valentine.text()}}',
popover-trigger='mouseenter', popover-placement='right',
popover-append-to-body='true', popover-append-to-body='true',
ng-click='castStart(Content.spells.special.valentine)') ng-click='purchase("food", food)')
p p
| {{Content.spells.special.valentine.value}} | {{::food.value}}&nbsp;
span(class='shop_gold') span.Pet_Currency_Gem1x.inline-gems
li.customize-menu
menu.pets-menu(label=env.t('quests'))
p=env.t('whereAreMyQuests')
li.customize-menu
menu.pets-menu(label=env.t('special'))
div
button.customize-option(class='inventory_special_fortify',
popover=env.t('fortifyPop'),
popover-title=env.t('fortifyName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("reroll")')
p
| 4&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='user.flags.rebirthEnabled')
button.customize-option(class='rebirth_orb',
popover=env.t('rebirthPop'), popover-title=env.t('rebirthName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("rebirth")')
p(ng-show='user.stats.lvl < 100')
| 8&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-show='petCount >= 90 || mountCount >= 90')
button.customize-option(popover=env.t('petKeyPop'), popover-title=env.t('petKeyName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='openModal("pet-key", {size:"lg"})', class='pet_key')
p(ng-show='petCount < 90 || mountCount < 90 || !user.achievements.triadBingo')
| 4&nbsp;
span.Pet_Currency_Gem1x.inline-gems
div(ng-if='user.purchased.plan.customerId', ng-class='::{transparent:(Shared.planGemLimits.convCap + User.user.purchased.plan.consecutive.gemCapExtra - User.user.purchased.plan.gemsBought) < 1}')
button.customize-option(popover=env.t('subGemPop'), popover-title=env.t('subGemName'),
popover-trigger='mouseenter', popover-placement='top',
popover-append-to-body='true',
ng-click='user.ops.purchase({params:{type:"gems",key:"gem"}})')
span.Pet_Currency_Gem.inline-gems
.badge.badge-success.stack-count {{Shared.planGemLimits.convCap + User.user.purchased.plan.consecutive.gemCapExtra - User.user.purchased.plan.gemsBought}}
p
| 20&nbsp;
span.shop_gold
// div
button.customize-option(class='inventory_special_valentine',
popover='{{::Content.spells.special.valentine.notes()}}',
popover-title='{{::Content.spells.special.valentine.text()}}',
popover-trigger='mouseenter', popover-placement='right',
popover-append-to-body='true',
ng-click='castStart(Content.spells.special.valentine)')
p
| {{Content.spells.special.valentine.value}}
span(class='shop_gold')

View file

@ -14,26 +14,24 @@ mixin mountList(source)
-} -}
.container-fluid .container-fluid
.stable.row .stable.row: .col-xs-12
.col-md-2 .pull-left-sm.col-centered(class="#{env.worldDmg.stables ? 'npc_matt_broken' : 'npc_matt'}")
div(class="#{env.worldDmg.stables ? 'npc_matt_broken' : 'npc_matt'}") .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.col-md-10 .arrow.hidden-xs
.popover.static-popover.fade.right.in h3.popover-title
.arrow a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
h3.popover-title .popover-content
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') p=env.t('mattShall', {name: "{{user.profile.name}}"})
.popover-content h4= env.t('mountMasterProgress') + ': {{mountCount}} / {{totalMounts}} ' + env.t('mountsTamed')
p=env.t('mattShall', {name: "{{user.profile.name}}"}) .row: .col-md-12
h4= env.t('mountMasterProgress') + ': {{mountCount}} / {{totalMounts}} ' + env.t('mountsTamed') +mountList(env.Content.dropEggs)
.col-md-12 .row: .col-md-12
+mountList(env.Content.dropEggs) h4=env.t('questMounts')
.col-md-12 +mountList(env.Content.questEggs)
h4=env.t('questMounts') .row: .col-md-12
+mountList(env.Content.questEggs) h4=env.t('rareMounts')
.col-md-12 menu
h4=env.t('rareMounts') div
menu each t,k in env.Content.specialMounts
div - var animal = k.split('-')[0], color = k.split('-')[1]
each t,k in env.Content.specialMounts button(ng-if='user.items.mounts["#{animal}-#{color}"]', class="pet-button Mount_Head_#{animal}-#{color}", ng-class='{active: user.items.currentMount == "#{animal}-#{color}"}', ng-click='chooseMount("#{animal}", "#{color}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom')
- var animal = k.split('-')[0], color = k.split('-')[1]
button(ng-if='user.items.mounts["#{animal}-#{color}"]', class="pet-button Mount_Head_#{animal}-#{color}", ng-class='{active: user.items.currentMount == "#{animal}-#{color}"}', ng-click='chooseMount("#{animal}", "#{color}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom')

View file

@ -14,34 +14,32 @@ mixin petList(source)
button(class="pet-evolved pet-button Pet-#{pet}", ng-if='user.items.pets["#{pet}"]<0') button(class="pet-evolved pet-button Pet-#{pet}", ng-if='user.items.pets["#{pet}"]<0')
.container-fluid .container-fluid
.stable.row .stable.row: .col-xs-12
.col-md-2 .pull-left-sm.col-centered(class="#{env.worldDmg.stables ? 'npc_matt_broken' : 'npc_matt'}")
div(class="#{env.worldDmg.stables ? 'npc_matt_broken' : 'npc_matt'}") .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.col-md-10 .arrow.hidden-xs
.popover.static-popover.fade.right.in h3.popover-title
.arrow a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch')
h3.popover-title .popover-content
a(target='_blank', href='http://www.kickstarter.com/profile/mattboch')=env.t('mattBoch') p=env.t('mattBochText1')
.popover-content h4=env.t('beastMasterProgress') + ': {{petCount}} / {{totalPets}} ' + env.t('petsFound')
p=env.t('mattBochText1')
h4= env.t('beastMasterProgress') + ': {{petCount}} / {{totalPets}} ' + env.t('petsFound')
.col-md-12 .row: .col-md-12
+petList(env.Content.dropEggs) +petList(env.Content.dropEggs)
.col-md-12 .row: .col-md-12
h4=env.t('questPets') h4=env.t('questPets')
+petList(env.Content.questEggs) +petList(env.Content.questEggs)
.col-md-12 .row: .col-md-12
h4=env.t('rarePets') h4=env.t('rarePets')
menu menu
div div
each t,k in env.Content.specialPets each t,k in env.Content.specialPets
- var egg = k.split('-')[0], pot = k.split('-')[1] - var egg = k.split('-')[0], pot = k.split('-')[1]
button(ng-if='user.items.pets["#{egg}-#{pot}"]', class="pet-button Pet-#{egg}-#{pot}", ng-class='{active: user.items.currentPet == "#{egg}-#{pot}"}', ng-click='choosePet("#{egg}", "#{pot}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom') button(ng-if='user.items.pets["#{egg}-#{pot}"]', class="pet-button Pet-#{egg}-#{pot}", ng-class='{active: user.items.currentPet == "#{egg}-#{pot}"}', ng-click='choosePet("#{egg}", "#{pot}")', popover=env.t(t), popover-trigger='mouseenter', popover-placement='bottom')
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Contributing_to_HabitRPG') 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=env.t('rarePetPop1'), popover-title=env.t('rarePetPop2')) 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 .PixelPaw-Gold
.well.food-tray .well.food-tray
p(ng-show='foodCount < 1')=env.t('noFood') p(ng-show='foodCount < 1')=env.t('noFood')

View file

@ -2,15 +2,13 @@
- var questCategories = {'unlockable':'unlockableQuests','gold':'goldQuests','pet':'petQuests'} - var questCategories = {'unlockable':'unlockableQuests','gold':'goldQuests','pet':'petQuests'}
.container-fluid .container-fluid
.row .row: .col-xs-12
.col-md-2 .npc_ian.pull-left-sm.col-centered
.npc_ian .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.col-md-10 .arrow.hidden-xs
.popover.static-popover.fade.right.in h3.popover-title=env.t('ian')
.arrow .popover-content
h3.popover-title=env.t('ian') p=env.t('ianText')
.popover-content
p=env.t('ianText')
.row .row
.col-md-6 .col-md-6

View file

@ -1,14 +1,11 @@
.container-fluid .container-fluid
.stable.row .stable.row: .col-xs-12
.col-md-2 .seasonalshop_summer2015.pull-left-sm.col-centered
.seasonalshop_summer2015 .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs
.col-md-10 h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
.popover.static-popover.fade.right.in .popover-content
.arrow p!=env.t('seasonalShopSummerText')
h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
.popover-content
p!=env.t('seasonalShopSummerText')
.well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth') .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')

View file

@ -1,35 +1,29 @@
.container-fluid .container-fluid
.stable.row(ng-if='user.purchased.plan.consecutive.trinkets <= 0') .stable.row(ng-if='user.purchased.plan.consecutive.trinkets <= 0'): .col-xs-12
.col-md-2 .npc_timetravelers.pull-left-sm.col-centered
.npc_timetravelers .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs
h3.popover-title!=env.t('timeTravelersTitleNoSub', {linkStartTyler: "<a href='https://github.com/lefnire' target='_blank'>", linkStartVicky: "<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
.popover-content
p!=env.t('timeTravelersPopoverNoSub', {linkStart: "<a href='https://habitrpg.com/#/options/settings/subscription' target='_blank'>", linkEnd: "</a>"})
.col-md-10 .stable.row(ng-if='user.purchased.plan.consecutive.trinkets > 0'): .col-xs-12
.popover.static-popover.fade.right.in .npc_timetravelers_active.pull-left-sm.col-centered
.arrow .popover.static-popover.fade.right.in.pull-left-sm.col-centered
h3.popover-title!=env.t('timeTravelersTitleNoSub', {linkStartTyler: "<a href='https://github.com/lefnire' target='_blank'>", linkStartVicky: "<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"}) .arrow.hidden-xs
.popover-content h3.popover-title=env.t('timeTravelersTitle')
p!=env.t('timeTravelersPopoverNoSub', {linkStart: "<a href='https://habitrpg.com/#/options/settings/subscription' target='_blank'>", linkEnd: "</a>"}) .popover-content
.pull-right
span.inventory_special_trinket.inline-gems
b x{{user.purchased.plan.consecutive.trinkets}}
p!=env.t('timeTravelersPopover', {linkStart: "<a href='http://habitrpg.wikia.com/wiki/Mystery_Item' target='_blank'>", linkEnd: "</a>"})
.row.stable(ng-if='user.purchased.plan.consecutive.trinkets > 0') .row: .col-md-12
.col-md-2 li.customize-menu.inventory-gear
.npc_timetravelers_active menu.pets-menu(label='{{::set.text}}', ng-repeat='set in Content.timeTravelerStore(user.items.gear.owned)')
div(ng-repeat='item in set.items')
.col-md-10 button.customize-option(class='shop_{{::item.key}}',
.popover.static-popover.fade.right.in popover='{{::item.notes()}}', popover-title='{{::item.text()}}',
.arrow popover-trigger='mouseenter', popover-placement='right',
h3.popover-title=env.t('timeTravelersTitle') popover-append-to-body='true',
.popover-content ng-click='user.ops.buyMysterySet({params:{key:set.key}})')
.pull-right
span.inventory_special_trinket.inline-gems
b x{{user.purchased.plan.consecutive.trinkets}}
p!=env.t('timeTravelersPopover', {linkStart: "<a href='http://habitrpg.wikia.com/wiki/Mystery_Item' target='_blank'>", linkEnd: "</a>"})
.col-md-12
li.customize-menu.inventory-gear
menu.pets-menu(label='{{::set.text}}', ng-repeat='set in Content.timeTravelerStore(user.items.gear.owned)')
div(ng-repeat='item in set.items')
button.customize-option(class='shop_{{::item.key}}',
popover='{{::item.notes()}}', popover-title='{{::item.text()}}',
popover-trigger='mouseenter', popover-placement='right',
popover-append-to-body='true',
ng-click='user.ops.buyMysterySet({params:{key:set.key}})')

View file

@ -5,5 +5,6 @@ unless mobile
tr(ng-repeat='(itemType,gear) in profile.items.gear.equipped', tr(ng-repeat='(itemType,gear) in profile.items.gear.equipped',
ng-init='piece=Content.gear.flat[gear]', ng-show='piece') ng-init='piece=Content.gear.flat[gear]', ng-show='piece')
td td
strong {{piece.text()}}:&nbsp; strong {{piece.text()}}
span(ng-repeat='stat in ["str","con","per","int"]', ng-show='piece[stat]') {{piece[stat]}} {{stat.toUpperCase()}}&nbsp; strong(ng-show='piece.str || piece.con || piece.per || piece.int') :&nbsp;
span(ng-repeat='stat in ["str","con","per","int"]', ng-show='piece[stat]') {{piece[stat]}} {{env.t(stat)}}&nbsp;