chore(event): end Winter Wonderland
@@ -1,9 +1,9 @@
|
|||||||
/* Comment out for holiday events */
|
/* Comment out for holiday events */
|
||||||
/* .npc_ian {
|
.npc_ian {
|
||||||
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
|
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
|
||||||
width: 78px;
|
width: 78px;
|
||||||
height: 135px;
|
height: 135px;
|
||||||
} */
|
}
|
||||||
|
|
||||||
.quest_burnout {
|
.quest_burnout {
|
||||||
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;
|
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;
|
||||||
|
|||||||
540
common/dist/sprites/spritesmith-main-5.css
vendored
BIN
common/dist/sprites/spritesmith-main-5.png
vendored
|
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 5.7 KiB |
@@ -25,7 +25,7 @@
|
|||||||
"polarBearPup": "Polar Bear Cub",
|
"polarBearPup": "Polar Bear Cub",
|
||||||
"jackolantern": "Jack-O-Lantern",
|
"jackolantern": "Jack-O-Lantern",
|
||||||
"seasonalShop": "Seasonal Shop",
|
"seasonalShop": "Seasonal Shop",
|
||||||
"seasonalShopClosedTitle": "<%= linkStart %>Siena Leslie<%= linkEnd %>",
|
"seasonalShopClosedTitle": "<%= linkStart %>Leslie<%= linkEnd %>",
|
||||||
"seasonalShopTitle": "<%= linkStart %>Seasonal Sorceress<%= linkEnd %>",
|
"seasonalShopTitle": "<%= linkStart %>Seasonal Sorceress<%= linkEnd %>",
|
||||||
"seasonalShopClosedText": "The Seasonal Shop is currently closed!! I don't know where the Seasonal Sorceress is now, but I bet she'll be back during the next <a href='http://habitica.wikia.com/wiki/Grand_Galas' target='_blank'>Grand Gala</a>!",
|
"seasonalShopClosedText": "The Seasonal Shop is currently closed!! I don't know where the Seasonal Sorceress is now, but I bet she'll be back during the next <a href='http://habitica.wikia.com/wiki/Grand_Galas' target='_blank'>Grand Gala</a>!",
|
||||||
"seasonalShopText": "Welcome to the Seasonal Shop!! We're stocking springtime <a href='http://habitica.wikia.com/wiki/Item_Availability' target='_blank'>Seasonal Edition</a> goodies at the moment. Everything here will be available to purchase during the Spring Fling event each year, but we're only open until April 30th, so be sure to stock up now, or you'll have to wait a year to buy these items again!",
|
"seasonalShopText": "Welcome to the Seasonal Shop!! We're stocking springtime <a href='http://habitica.wikia.com/wiki/Item_Availability' target='_blank'>Seasonal Edition</a> goodies at the moment. Everything here will be available to purchase during the Spring Fling event each year, but we're only open until April 30th, so be sure to stock up now, or you'll have to wait a year to buy these items again!",
|
||||||
|
|||||||
@@ -25,9 +25,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialYetiNotes', { con: 9 }),
|
notes: t('armorSpecialYetiNotes', { con: 9 }),
|
||||||
con: 9,
|
con: 9,
|
||||||
value: 90,
|
value: 90,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
ski: {
|
ski: {
|
||||||
event: EVENTS.winter,
|
event: EVENTS.winter,
|
||||||
@@ -36,9 +33,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialSkiNotes', { per: 15 }),
|
notes: t('armorSpecialSkiNotes', { per: 15 }),
|
||||||
per: 15,
|
per: 15,
|
||||||
value: 90,
|
value: 90,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
candycane: {
|
candycane: {
|
||||||
event: EVENTS.winter,
|
event: EVENTS.winter,
|
||||||
@@ -47,9 +41,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialCandycaneNotes', { int: 9 }),
|
notes: t('armorSpecialCandycaneNotes', { int: 9 }),
|
||||||
int: 9,
|
int: 9,
|
||||||
value: 90,
|
value: 90,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
snowflake: {
|
snowflake: {
|
||||||
event: EVENTS.winter,
|
event: EVENTS.winter,
|
||||||
@@ -58,9 +49,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialSnowflakeNotes', { con: 15 }),
|
notes: t('armorSpecialSnowflakeNotes', { con: 15 }),
|
||||||
con: 15,
|
con: 15,
|
||||||
value: 90,
|
value: 90,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
birthday: {
|
birthday: {
|
||||||
event: EVENTS.birthday,
|
event: EVENTS.birthday,
|
||||||
@@ -138,9 +126,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialFallRogueNotes', { per: 15 }),
|
notes: t('armorSpecialFallRogueNotes', { per: 15 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
per: 15,
|
per: 15,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
fallWarrior: {
|
fallWarrior: {
|
||||||
event: EVENTS.fall,
|
event: EVENTS.fall,
|
||||||
@@ -149,9 +134,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialFallWarriorNotes', { con: 9 }),
|
notes: t('armorSpecialFallWarriorNotes', { con: 9 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
con: 9,
|
con: 9,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
fallMage: {
|
fallMage: {
|
||||||
event: EVENTS.fall,
|
event: EVENTS.fall,
|
||||||
@@ -160,9 +142,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialFallMageNotes', { int: 9 }),
|
notes: t('armorSpecialFallMageNotes', { int: 9 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
int: 9,
|
int: 9,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
fallHealer: {
|
fallHealer: {
|
||||||
event: EVENTS.fall,
|
event: EVENTS.fall,
|
||||||
@@ -171,9 +150,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialFallHealerNotes', { con: 15 }),
|
notes: t('armorSpecialFallHealerNotes', { con: 15 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
con: 15,
|
con: 15,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
winter2015Rogue: {
|
winter2015Rogue: {
|
||||||
event: EVENTS.winter2015,
|
event: EVENTS.winter2015,
|
||||||
@@ -182,9 +158,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialWinter2015RogueNotes', { per: 15 }),
|
notes: t('armorSpecialWinter2015RogueNotes', { per: 15 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
per: 15,
|
per: 15,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
winter2015Warrior: {
|
winter2015Warrior: {
|
||||||
event: EVENTS.winter2015,
|
event: EVENTS.winter2015,
|
||||||
@@ -193,9 +166,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialWinter2015WarriorNotes', { con: 9 }),
|
notes: t('armorSpecialWinter2015WarriorNotes', { con: 9 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
con: 9,
|
con: 9,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
winter2015Mage: {
|
winter2015Mage: {
|
||||||
event: EVENTS.winter2015,
|
event: EVENTS.winter2015,
|
||||||
@@ -204,9 +174,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialWinter2015MageNotes', { int: 9 }),
|
notes: t('armorSpecialWinter2015MageNotes', { int: 9 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
int: 9,
|
int: 9,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
winter2015Healer: {
|
winter2015Healer: {
|
||||||
event: EVENTS.winter2015,
|
event: EVENTS.winter2015,
|
||||||
@@ -215,9 +182,6 @@ let armor = {
|
|||||||
notes: t('armorSpecialWinter2015HealerNotes', { con: 15 }),
|
notes: t('armorSpecialWinter2015HealerNotes', { con: 15 }),
|
||||||
value: 90,
|
value: 90,
|
||||||
con: 15,
|
con: 15,
|
||||||
canBuy: () => {
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
birthday2015: {
|
birthday2015: {
|
||||||
text: t('armorSpecialBirthday2015Text'),
|
text: t('armorSpecialBirthday2015Text'),
|
||||||
|
|||||||
@@ -1180,52 +1180,92 @@ api.food = {
|
|||||||
Meat: {
|
Meat: {
|
||||||
text: t('foodMeat'),
|
text: t('foodMeat'),
|
||||||
target: 'Base',
|
target: 'Base',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Milk: {
|
Milk: {
|
||||||
text: t('foodMilk'),
|
text: t('foodMilk'),
|
||||||
target: 'White',
|
target: 'White',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Potatoe: {
|
Potatoe: {
|
||||||
text: t('foodPotatoe'),
|
text: t('foodPotatoe'),
|
||||||
target: 'Desert',
|
target: 'Desert',
|
||||||
article: 'a '
|
article: 'a ',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Strawberry: {
|
Strawberry: {
|
||||||
text: t('foodStrawberry'),
|
text: t('foodStrawberry'),
|
||||||
target: 'Red',
|
target: 'Red',
|
||||||
article: 'a '
|
article: 'a ',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Chocolate: {
|
Chocolate: {
|
||||||
text: t('foodChocolate'),
|
text: t('foodChocolate'),
|
||||||
target: 'Shade',
|
target: 'Shade',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Fish: {
|
Fish: {
|
||||||
text: t('foodFish'),
|
text: t('foodFish'),
|
||||||
target: 'Skeleton',
|
target: 'Skeleton',
|
||||||
article: 'a '
|
article: 'a ',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
RottenMeat: {
|
RottenMeat: {
|
||||||
text: t('foodRottenMeat'),
|
text: t('foodRottenMeat'),
|
||||||
target: 'Zombie',
|
target: 'Zombie',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
CottonCandyPink: {
|
CottonCandyPink: {
|
||||||
text: t('foodCottonCandyPink'),
|
text: t('foodCottonCandyPink'),
|
||||||
target: 'CottonCandyPink',
|
target: 'CottonCandyPink',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
CottonCandyBlue: {
|
CottonCandyBlue: {
|
||||||
text: t('foodCottonCandyBlue'),
|
text: t('foodCottonCandyBlue'),
|
||||||
target: 'CottonCandyBlue',
|
target: 'CottonCandyBlue',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Honey: {
|
Honey: {
|
||||||
text: t('foodHoney'),
|
text: t('foodHoney'),
|
||||||
target: 'Golden',
|
target: 'Golden',
|
||||||
article: ''
|
article: '',
|
||||||
|
canBuy: (function() {
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
|
canDrop: true,
|
||||||
},
|
},
|
||||||
Saddle: {
|
Saddle: {
|
||||||
canBuy: (function() {
|
canBuy: (function() {
|
||||||
@@ -1238,91 +1278,51 @@ api.food = {
|
|||||||
Cake_Skeleton: {
|
Cake_Skeleton: {
|
||||||
text: t('foodCakeSkeleton'),
|
text: t('foodCakeSkeleton'),
|
||||||
target: 'Skeleton',
|
target: 'Skeleton',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Base: {
|
Cake_Base: {
|
||||||
text: t('foodCakeBase'),
|
text: t('foodCakeBase'),
|
||||||
target: 'Base',
|
target: 'Base',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_CottonCandyBlue: {
|
Cake_CottonCandyBlue: {
|
||||||
text: t('foodCakeCottonCandyBlue'),
|
text: t('foodCakeCottonCandyBlue'),
|
||||||
target: 'CottonCandyBlue',
|
target: 'CottonCandyBlue',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_CottonCandyPink: {
|
Cake_CottonCandyPink: {
|
||||||
text: t('foodCakeCottonCandyPink'),
|
text: t('foodCakeCottonCandyPink'),
|
||||||
target: 'CottonCandyPink',
|
target: 'CottonCandyPink',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Shade: {
|
Cake_Shade: {
|
||||||
text: t('foodCakeShade'),
|
text: t('foodCakeShade'),
|
||||||
target: 'Shade',
|
target: 'Shade',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_White: {
|
Cake_White: {
|
||||||
text: t('foodCakeWhite'),
|
text: t('foodCakeWhite'),
|
||||||
target: 'White',
|
target: 'White',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Golden: {
|
Cake_Golden: {
|
||||||
text: t('foodCakeGolden'),
|
text: t('foodCakeGolden'),
|
||||||
target: 'Golden',
|
target: 'Golden',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Zombie: {
|
Cake_Zombie: {
|
||||||
text: t('foodCakeZombie'),
|
text: t('foodCakeZombie'),
|
||||||
target: 'Zombie',
|
target: 'Zombie',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Desert: {
|
Cake_Desert: {
|
||||||
text: t('foodCakeDesert'),
|
text: t('foodCakeDesert'),
|
||||||
target: 'Desert',
|
target: 'Desert',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Cake_Red: {
|
Cake_Red: {
|
||||||
text: t('foodCakeRed'),
|
text: t('foodCakeRed'),
|
||||||
target: 'Red',
|
target: 'Red',
|
||||||
canBuy: (function() {
|
|
||||||
return true;
|
|
||||||
}),
|
|
||||||
canDrop: true,
|
|
||||||
article: ''
|
article: ''
|
||||||
},
|
},
|
||||||
Candy_Skeleton: {
|
Candy_Skeleton: {
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
.container-fluid
|
.container-fluid
|
||||||
.stable.row: .col-xs-12
|
.stable.row: .col-xs-12
|
||||||
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered
|
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered
|
||||||
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
|
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
|
||||||
.arrow.hidden-xs
|
.arrow.hidden-xs
|
||||||
h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
||||||
.popover-content
|
.popover-content
|
||||||
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopWinterText')
|
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||||
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopFallTextBroken')
|
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||||
|
|
||||||
.well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
|
// .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
|
||||||
|
|
||||||
li.customize-menu.inventory-gear
|
// li.customize-menu.inventory-gear
|
||||||
menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{yeti:env.t("yetiSet"), candycane:env.t("candycaneSet"), snowflake:env.t("snowflakeSet"), ski:env.t("skiSet"), winter2015Warrior:env.t("gingerbreadSet"), winter2015Mage:env.t("northMageSet"), winter2015Healer:env.t("soothingSkaterSet"), winter2015Rogue:env.t("icicleDrakeSet")}')
|
menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{yeti:env.t("yetiSet"), candycane:env.t("candycaneSet"), snowflake:env.t("snowflakeSet"), ski:env.t("skiSet"), winter2015Warrior:env.t("gingerbreadSet"), winter2015Mage:env.t("northMageSet"), winter2015Healer:env.t("soothingSkaterSet"), winter2015Rogue:env.t("icicleDrakeSet")}')
|
||||||
div(ng-repeat='item in ::getSeasonalShopArray(set)',
|
div(ng-repeat='item in ::getSeasonalShopArray(set)',
|
||||||
ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}")
|
ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}")
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
ng-click='purchase("special", Content.spells.special.snowball)')
|
ng-click='purchase("special", Content.spells.special.snowball)')
|
||||||
p {{::Content.spells.special.snowball.value}}
|
p {{::Content.spells.special.snowball.value}}
|
||||||
span(class='shop_gold')
|
span(class='shop_gold')
|
||||||
// div
|
div
|
||||||
button.customize-option(class='Pet_HatchingPotion_Peppermint',
|
button.customize-option(class='Pet_HatchingPotion_Peppermint',
|
||||||
popover='{{::Content.hatchingPotions.Peppermint.notes()}}',
|
popover='{{::Content.hatchingPotions.Peppermint.notes()}}',
|
||||||
popover-title!=env.t("potion", {potionType: "{{::Content.hatchingPotions.Peppermint.text()}}"}),
|
popover-title!=env.t("potion", {potionType: "{{::Content.hatchingPotions.Peppermint.text()}}"}),
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
ng-click='purchase("hatchingPotions", Content.hatchingPotions.Peppermint)')
|
ng-click='purchase("hatchingPotions", Content.hatchingPotions.Peppermint)')
|
||||||
p {{::Content.hatchingPotions.Peppermint.value}}
|
p {{::Content.hatchingPotions.Peppermint.value}}
|
||||||
span.Pet_Currency_Gem1x.inline-gems
|
span.Pet_Currency_Gem1x.inline-gems
|
||||||
// div
|
div
|
||||||
button.customize-option(popover='{{::Content.spells.special.nye.notes()}}', popover-title='{{::Content.spells.special.nye.text()}}', popover-trigger='mouseenter', popover-placement='right', popover-append-to-body='true', ng-click='castStart(Content.spells.special.nye)', class='inventory_special_nye')
|
button.customize-option(popover='{{::Content.spells.special.nye.notes()}}', popover-title='{{::Content.spells.special.nye.text()}}', popover-trigger='mouseenter', popover-placement='right', popover-append-to-body='true', ng-click='castStart(Content.spells.special.nye)', class='inventory_special_nye')
|
||||||
p {{Content.spells.special.nye.value}}
|
p {{Content.spells.special.nye.value}}
|
||||||
span(class='shop_gold')
|
span(class='shop_gold')
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ mixin customizeProfile(mobile)
|
|||||||
+buyPref('hair.color', ['rainbow','yellow','green','purple','blue','TRUred'], 'rainbowColors')
|
+buyPref('hair.color', ['rainbow','yellow','green','purple','blue','TRUred'], 'rainbowColors')
|
||||||
+buyPref('hair.color', ['pblue2','pgreen2','porange2','ppink2','ppurple2','pyellow2'], 'shimmerColors', 'disabled')
|
+buyPref('hair.color', ['pblue2','pgreen2','porange2','ppink2','ppurple2','pyellow2'], 'shimmerColors', 'disabled')
|
||||||
+buyPref('hair.color', ['candycorn','ghostwhite','halloween','midnight','pumpkin','zombie'], 'hauntedColors', 'disabled')
|
+buyPref('hair.color', ['candycorn','ghostwhite','halloween','midnight','pumpkin','zombie'], 'hauntedColors', 'disabled')
|
||||||
+buyPref('hair.color', ['aurora','festive','hollygreen','peppermint','snowy','winterstar'], 'winteryColors')
|
+buyPref('hair.color', ['aurora','festive','hollygreen','peppermint','snowy','winterstar'], 'winteryColors', 'disabled')
|
||||||
|
|
||||||
li.customize-menu
|
li.customize-menu
|
||||||
menu(label=env.t('bodyHair'))
|
menu(label=env.t('bodyHair'))
|
||||||
|
|||||||
@@ -1,47 +1,64 @@
|
|||||||
h2 1/29/2016 - HABITICA BIRTHDAY BASH: CAKE, ACHIEVEMENTS, BIRTHDAY CARDS, AND PARTY ROBES! PLUS, LAST CHANCE FOR JANUARY AND WINTER WONDERLAND ITEMS
|
h2 2/1/2016 - FEBRUARY MYSTERY BOX, VIDEO CHALLENGE WINNER, AND OFFICIAL MOBILE APP CHALLENGE
|
||||||
hr
|
hr
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
.npc_matt.pull-right
|
.inventory_present_02.pull-right
|
||||||
h3 Habitica Birthday Bash
|
h3 February Mystery Box
|
||||||
p January 31st is Habitica's Birthday, and this year we have something extra-special to enjoy: Habitica has hit over one million users! Thank you so much for being here with us - it means a lot.
|
p Ooh... What could it be? All Habiticans who are <a href='/#/options/settings/subscription'>subscribed</a> during the month of February will receive the February Mystery Item Set! It will be revealed on the 24th, so keep your eyes peeled. Thanks for supporting the site <3
|
||||||
|
p.small.muted by Lemoness
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
h3 Video Challenge Winner
|
||||||
|
p The winner of the Official Challenge for sharing the video has been randomly selected, and the lucky Habitican is... Baggs98! Thanks so much to everyone who helped us spread the word. You guys are the best.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
h3 Official Mobile App Challenge
|
||||||
|
p We’ve launched another Official Challenge: the <a href='/#/options/groups/challenges/c14e8130-b22f-4e60-9bcb-7a34e5756829'>Mobile App Download Challenge</a>! In case you missed it, Habitica now has both an <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS app</a> and an <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica' target='_blank'>Android app</a> so that you can easily use Habitica on the go, and we hope that everyone who has one of those devices will give them a try!
|
||||||
br
|
br
|
||||||
p Now come join us and the NPCs as we celebrate!
|
p All you have to do to be eligible for the prize is have downloaded our iOS or Android app. The contest ends on February 29th, and the 10 randomly-selected winners will each get 10 Gems! For the full rules, <a href='/#/options/groups/challenges/c14e8130-b22f-4e60-9bcb-7a34e5756829'>check out the challenge here</a>.
|
||||||
tr
|
|
||||||
td
|
|
||||||
.Pet_Food_Cake_Base.pull-left.slight-right-margin
|
|
||||||
h3 Cake for Everybody!
|
|
||||||
p In honor of the festivities, everyone has been awarded an assortment of cake to feed to your pets! Yum, yum. Plus, for the next two days <a href='/#/options/inventory/drops'>Alexander the Merchant</a> is now selling cake in his shop, and cake will sometimes drop when you complete your tasks. Cake works just like normal pet food, but if you want to know what type of pet likes each slice, <a href='http://habitica.wikia.com/wiki/Food' target='_blank'>the wiki has spoilers</a>.
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
.shop_armor_special_birthday2016.pull-left.slight-right-margin
|
|
||||||
h3 Party Robes
|
|
||||||
p Until February 1st only, there are Party Robes available for free in the <a href='/#/tasks'>Rewards column</a>! Don them with pride.
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
.achievement-habitBirthday2x.pull-right
|
|
||||||
h3 Birthday Bash Achievement
|
|
||||||
p In honor of Habitica's birthday, everyone has been awarded the Habitica Birthday Bash achievement! This achievement stacks for each Birthday Bash you celebrate with us.
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
.inventory_special_birthday.pull-right
|
|
||||||
h3 Birthday Cards
|
|
||||||
p You can now send <a href='/#/options/inventory/drops'>Birthday Cards</a> to your party mates! If you do so, you'll both get the Birthday Bonanza badge. These birthday cards will be available year-round for 10 Gold each.
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
.promo_mystery_201601.pull-right
|
|
||||||
h3 Last Chance for January Item Set
|
|
||||||
p Reminder: this is the final day to <a href='/#/options/settings/subscription'>subscribe</a> and receive the Champion of Resolution Item Set! If you want the Resolution Slayer or the Helm of True Resolve, now's the time! Thanks so much for your support <3
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
h3 Last Chance for Winter Wonderland Outfits & Hair Colors
|
|
||||||
p On February 1st, everything will be back to normal in Habitica, so if you still have any remaining Winter Wonderland Items that you want to buy, you'd better do it now! The <a href='/#/options/inventory/seasonalshop'>Seasonal Edition items</a> and <a href='/#/options/profile/avatar'>Hair Colors</a> won't be back until next December, and if the Limited Edition items return they will have increased prices or changed art, so strike while the iron is hot!
|
|
||||||
|
|
||||||
if menuItem !== 'oldNews'
|
if menuItem !== 'oldNews'
|
||||||
hr
|
hr
|
||||||
a(href='/static/old-news', target='_blank') Read older news
|
a(href='/static/old-news', target='_blank') Read older news
|
||||||
|
|
||||||
mixin oldNews
|
mixin oldNews
|
||||||
|
h2 1/29/2016 - HABITICA BIRTHDAY BASH: CAKE, ACHIEVEMENTS, BIRTHDAY CARDS, AND PARTY ROBES! PLUS, LAST CHANCE FOR JANUARY AND WINTER WONDERLAND ITEMS
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.npc_matt.pull-right
|
||||||
|
h3 Habitica Birthday Bash
|
||||||
|
p January 31st is Habitica's Birthday, and this year we have something extra-special to enjoy: Habitica has hit over one million users! Thank you so much for being here with us - it means a lot.
|
||||||
|
br
|
||||||
|
p Now come join us and the NPCs as we celebrate!
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.Pet_Food_Cake_Base.pull-left.slight-right-margin
|
||||||
|
h3 Cake for Everybody!
|
||||||
|
p In honor of the festivities, everyone has been awarded an assortment of cake to feed to your pets! Yum, yum. Plus, for the next two days <a href='/#/options/inventory/drops'>Alexander the Merchant</a> is now selling cake in his shop, and cake will sometimes drop when you complete your tasks. Cake works just like normal pet food, but if you want to know what type of pet likes each slice, <a href='http://habitica.wikia.com/wiki/Food' target='_blank'>the wiki has spoilers</a>.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.shop_armor_special_birthday2016.pull-left.slight-right-margin
|
||||||
|
h3 Party Robes
|
||||||
|
p Until February 1st only, there are Party Robes available for free in the <a href='/#/tasks'>Rewards column</a>! Don them with pride.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.achievement-habitBirthday2x.pull-right
|
||||||
|
h3 Birthday Bash Achievement
|
||||||
|
p In honor of Habitica's birthday, everyone has been awarded the Habitica Birthday Bash achievement! This achievement stacks for each Birthday Bash you celebrate with us.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.inventory_special_birthday.pull-right
|
||||||
|
h3 Birthday Cards
|
||||||
|
p You can now send <a href='/#/options/inventory/drops'>Birthday Cards</a> to your party mates! If you do so, you'll both get the Birthday Bonanza badge. These birthday cards will be available year-round for 10 Gold each.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.promo_mystery_201601.pull-right
|
||||||
|
h3 Last Chance for January Item Set
|
||||||
|
p Reminder: this is the final day to <a href='/#/options/settings/subscription'>subscribe</a> and receive the Champion of Resolution Item Set! If you want the Resolution Slayer or the Helm of True Resolve, now's the time! Thanks so much for your support <3
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
h3 Last Chance for Winter Wonderland Outfits & Hair Colors
|
||||||
|
p On February 1st, everything will be back to normal in Habitica, so if you still have any remaining Winter Wonderland Items that you want to buy, you'd better do it now! The <a href='/#/options/inventory/seasonalshop'>Seasonal Edition items</a> and <a href='/#/options/profile/avatar'>Hair Colors</a> won't be back until next December, and if the Limited Edition items return they will have increased prices or changed art, so strike while the iron is hot!
|
||||||
h2 1/26/2016 - JANUARY SUBSCRIBER ITEM AND AVATAR CUSTOMIZATION IN THE ANDROID APP
|
h2 1/26/2016 - JANUARY SUBSCRIBER ITEM AND AVATAR CUSTOMIZATION IN THE ANDROID APP
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
|
|||||||