Merge pull request #6921 from HabitRPG/sabrecat/spring-2016

Spring Fling 2016
This commit is contained in:
Sabe Jones 2016-03-18 16:08:46 -05:00
commit 8447259016
82 changed files with 4389 additions and 3845 deletions

View file

@ -1,9 +1,9 @@
/* Comment out for holiday events */
.npc_ian {
/* .npc_ian {
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
width: 78px;
height: 135px;
}
} */
.quest_burnout {
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;

View file

@ -1,30 +1,30 @@
.2014_Fall_HealerPROMO2 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -820px -724px;
background-position: -543px -429px;
width: 90px;
height: 90px;
}
.2014_Fall_Mage_PROMO9 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -761px;
background-position: -814px -181px;
width: 120px;
height: 90px;
}
.2014_Fall_RoguePROMO3 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -943px;
background-position: -1371px -915px;
width: 105px;
height: 90px;
}
.2014_Fall_Warrior_PROMO {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -814px -363px;
background-position: -364px -1156px;
width: 90px;
height: 90px;
}
.promo_android {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -277px;
background-position: -943px -332px;
width: 175px;
height: 175px;
}
@ -42,7 +42,7 @@
}
.promo_backtoschool {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -1051px;
background-position: -1190px -342px;
width: 150px;
height: 150px;
}
@ -54,7 +54,7 @@
}
.promo_classes_fall_2014 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px 0px;
background-position: -326px -872px;
width: 321px;
height: 100px;
}
@ -66,49 +66,55 @@
}
.promo_dilatoryDistress {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -642px -1051px;
background-position: 0px -1156px;
width: 90px;
height: 90px;
}
.promo_egg_mounts {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -724px;
width: 280px;
height: 147px;
}
.promo_enchanted_armoire {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -890px;
background-position: -648px -872px;
width: 374px;
height: 76px;
}
.promo_enchanted_armoire_201507 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -151px -1051px;
background-position: -1190px -732px;
width: 217px;
height: 90px;
}
.promo_enchanted_armoire_201508 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -92px;
background-position: -1190px -915px;
width: 180px;
height: 90px;
}
.promo_enchanted_armoire_201509 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -369px -1051px;
background-position: -91px -1156px;
width: 90px;
height: 90px;
}
.promo_enchanted_armoire_201511 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -503px;
background-position: -943px -684px;
width: 122px;
height: 90px;
}
.promo_enchanted_armoire_201601 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -915px -1051px;
background-position: -637px -1156px;
width: 90px;
height: 90px;
}
.promo_habitica {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -101px;
background-position: -943px -508px;
width: 175px;
height: 175px;
}
@ -120,91 +126,91 @@
}
.promo_haunted_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -183px;
background-position: -1347px -194px;
width: 100px;
height: 137px;
}
.customize-option.promo_haunted_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1290px -198px;
background-position: -1372px -209px;
width: 60px;
height: 60px;
}
.promo_item_notif {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -724px;
background-position: -1190px -91px;
width: 249px;
height: 102px;
}
.promo_mystery_201405 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1371px -943px;
background-position: -819px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_201406 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1371px -397px;
background-position: -452px -241px;
width: 90px;
height: 96px;
}
.promo_mystery_201407 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -827px;
background-position: -1300px -1082px;
width: 42px;
height: 62px;
}
.promo_mystery_201408 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1386px -761px;
background-position: -1408px -732px;
width: 60px;
height: 71px;
}
.promo_mystery_201409 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -460px -1051px;
background-position: -182px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_201410 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1386px -670px;
background-position: -1389px -823px;
width: 72px;
height: 63px;
}
.promo_mystery_201411 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -824px -1051px;
background-position: -546px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_201412 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1193px -724px;
background-position: -1119px -402px;
width: 42px;
height: 66px;
}
.promo_mystery_201501 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1412px -594px;
background-position: -1251px -1082px;
width: 48px;
height: 63px;
}
.promo_mystery_201502 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -814px -181px;
background-position: -546px -338px;
width: 90px;
height: 90px;
}
.promo_mystery_201503 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -814px -272px;
background-position: -452px -429px;
width: 90px;
height: 90px;
}
.promo_mystery_201504 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1374px -852px;
background-position: -1190px -1082px;
width: 60px;
height: 69px;
}
@ -216,139 +222,145 @@
}
.promo_mystery_201506 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1418px -321px;
background-position: -1119px -332px;
width: 42px;
height: 69px;
}
.promo_mystery_201507 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1366px -183px;
background-position: -814px -363px;
width: 90px;
height: 105px;
}
.promo_mystery_201508 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -1034px;
background-position: -543px -241px;
width: 93px;
height: 90px;
}
.promo_mystery_201509 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -551px -1051px;
background-position: -273px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_201510 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1359px -1034px;
background-position: -452px -338px;
width: 93px;
height: 90px;
}
.promo_mystery_201511 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -733px -1051px;
background-position: -455px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_201512 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1388px -503px;
background-position: -1408px -641px;
width: 60px;
height: 81px;
}
.promo_mystery_201601 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -670px;
background-position: -1066px -684px;
width: 120px;
height: 90px;
}
.promo_mystery_201602 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1006px -1051px;
background-position: -728px -1156px;
width: 90px;
height: 90px;
}
.promo_mystery_3014 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -452px -389px;
background-position: -1190px -641px;
width: 217px;
height: 90px;
}
.promo_orca {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -397px;
background-position: -1341px -342px;
width: 105px;
height: 105px;
}
.promo_partyhats {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -1125px;
background-position: -1343px -1006px;
width: 115px;
height: 47px;
}
.promo_pastel_skin {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -967px;
background-position: -331px -983px;
width: 330px;
height: 83px;
}
.customize-option.promo_pastel_skin {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -25px -982px;
background-position: -356px -998px;
width: 60px;
height: 60px;
}
.promo_peppermint_flame {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1119px -277px;
background-position: -1190px -493px;
width: 140px;
height: 147px;
}
.promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1119px -101px;
background-position: -1331px -493px;
width: 140px;
height: 147px;
}
.customize-option.promo_pet_skins {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1144px -116px;
background-position: -1356px -508px;
width: 60px;
height: 60px;
}
.promo_shimmer_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -331px -967px;
background-position: 0px -983px;
width: 330px;
height: 83px;
}
.customize-option.promo_shimmer_hair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -356px -982px;
background-position: -25px -998px;
width: 60px;
height: 60px;
}
.promo_splashyskins {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px 0px;
background-position: -1190px -823px;
width: 198px;
height: 91px;
}
.customize-option.promo_splashyskins {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1290px -15px;
background-position: -1215px -838px;
width: 60px;
height: 60px;
}
.promo_spring_classes_2016 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -281px -724px;
width: 362px;
height: 102px;
}
.promo_springclasses2014 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -542px;
background-position: -1190px 0px;
width: 288px;
height: 90px;
}
.promo_springclasses2015 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -633px;
background-position: -644px -724px;
width: 288px;
height: 90px;
}
@ -360,19 +372,19 @@
}
.promo_summer_classes_2015 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -943px -453px;
background-position: 0px -1067px;
width: 300px;
height: 88px;
}
.promo_updos {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -452px -241px;
background-position: -1190px -194px;
width: 156px;
height: 147px;
}
.promo_veteran_pets {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -594px;
background-position: -943px -775px;
width: 146px;
height: 75px;
}
@ -384,19 +396,19 @@
}
.promo_winterclasses2015 {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -494px -724px;
background-position: 0px -872px;
width: 325px;
height: 110px;
}
.promo_winteryhair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -321px;
background-position: -1190px -1006px;
width: 152px;
height: 75px;
}
.customize-option.promo_winteryhair {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1290px -336px;
background-position: -1215px -1021px;
width: 60px;
height: 60px;
}
@ -408,7 +420,7 @@
}
.npc_viirus {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -1265px -852px;
background-position: -814px -272px;
width: 108px;
height: 90px;
}
@ -420,7 +432,7 @@
}
.welcome_basic_avatars {
background-image: url(spritesmith-largeSprites-0.png);
background-position: -247px -724px;
background-position: -943px 0px;
width: 246px;
height: 165px;
}
@ -432,7 +444,7 @@
}
.welcome_sample_tasks {
background-image: url(spritesmith-largeSprites-0.png);
background-position: 0px -724px;
background-position: -943px -166px;
width: 246px;
height: 165px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 246 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 146 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

View file

@ -1,144 +1,324 @@
.Pet-Wolf-CottonCandyBlue {
.Pet-TRex-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -82px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyPink {
.Pet-TRex-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -246px -200px;
background-position: -492px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
.Pet-TRex-Red {
background-image: url(spritesmith-main-12.png);
background-position: -164px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
.Pet-TRex-Shade {
background-image: url(spritesmith-main-12.png);
background-position: 0px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
.Pet-TRex-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -82px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
.Pet-TRex-White {
background-image: url(spritesmith-main-12.png);
background-position: -164px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
.Pet-TRex-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: 0px 0px;
background-position: -246px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
.Pet-Turkey-Base {
background-image: url(spritesmith-main-12.png);
background-position: -246px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Veteran {
.Pet-Turkey-Gilded {
background-image: url(spritesmith-main-12.png);
background-position: 0px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-White {
.Pet-Unicorn-Base {
background-image: url(spritesmith-main-12.png);
background-position: -82px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Zombie {
.Pet-Unicorn-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -164px -200px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -246px -200px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -328px 0px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -328px -100px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Red {
background-image: url(spritesmith-main-12.png);
background-position: -328px -200px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Shade {
background-image: url(spritesmith-main-12.png);
background-position: 0px -300px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -82px -300px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-White {
background-image: url(spritesmith-main-12.png);
background-position: -164px -300px;
width: 81px;
height: 99px;
}
.Pet-Unicorn-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -246px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Base {
background-image: url(spritesmith-main-12.png);
background-position: -328px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -410px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -410px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -410px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -410px -300px;
width: 81px;
height: 99px;
}
.Pet-Whale-Red {
background-image: url(spritesmith-main-12.png);
background-position: -492px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -492px -100px;
width: 81px;
height: 99px;
}
.Pet-Whale-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -492px -200px;
width: 81px;
height: 99px;
}
.Pet-Whale-White {
background-image: url(spritesmith-main-12.png);
background-position: 0px 0px;
width: 81px;
height: 99px;
}
.Pet-Whale-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: 0px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Base {
background-image: url(spritesmith-main-12.png);
background-position: -82px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -164px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -246px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Desert {
background-image: url(spritesmith-main-12.png);
background-position: -328px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Golden {
background-image: url(spritesmith-main-12.png);
background-position: -410px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: -492px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Red {
background-image: url(spritesmith-main-12.png);
background-position: -574px 0px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Shade {
background-image: url(spritesmith-main-12.png);
background-position: -574px -100px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -574px -200px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -574px -300px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Veteran {
background-image: url(spritesmith-main-12.png);
background-position: -574px -400px;
width: 81px;
height: 99px;
}
.Pet-Wolf-White {
background-image: url(spritesmith-main-12.png);
background-position: 0px -500px;
width: 81px;
height: 99px;
}
.Pet-Wolf-Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -82px -500px;
width: 81px;
height: 99px;
}
.Pet_HatchingPotion_Base {
background-image: url(spritesmith-main-12.png);
background-position: -294px -300px;
background-position: -213px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_CottonCandyBlue {
background-image: url(spritesmith-main-12.png);
background-position: -328px -52px;
background-position: -458px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_CottonCandyPink {
background-image: url(spritesmith-main-12.png);
background-position: -328px -104px;
background-position: -262px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Desert {
background-image: url(spritesmith-main-12.png);
background-position: -328px -156px;
background-position: -311px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Golden {
background-image: url(spritesmith-main-12.png);
background-position: -328px -208px;
background-position: -360px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Peppermint {
background-image: url(spritesmith-main-12.png);
background-position: 0px -300px;
background-position: -409px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Red {
background-image: url(spritesmith-main-12.png);
background-position: -49px -300px;
background-position: -164px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Shade {
background-image: url(spritesmith-main-12.png);
background-position: -98px -300px;
background-position: -507px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Skeleton {
background-image: url(spritesmith-main-12.png);
background-position: -147px -300px;
background-position: -556px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Spooky {
background-image: url(spritesmith-main-12.png);
background-position: -196px -300px;
background-position: -605px -500px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_White {
background-image: url(spritesmith-main-12.png);
background-position: -245px -300px;
background-position: 0px -600px;
width: 48px;
height: 51px;
}
.Pet_HatchingPotion_Zombie {
background-image: url(spritesmith-main-12.png);
background-position: -328px 0px;
background-position: -49px -600px;
width: 48px;
height: 51px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 129 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

After

Width:  |  Height:  |  Size: 330 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 228 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 143 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 144 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View file

@ -160,6 +160,15 @@
"weaponSpecialWinter2016HealerText": "Confetti Cannon",
"weaponSpecialWinter2016HealerNotes": "WHEEEEEEEEEE!!!!!!! HAPPY WINTER WONDERLAND!!!!!!!! Increases Intelligence by <%= int %>. Limited Edition 2015-2016 Winter Gear.",
"weaponSpecialSpring2016RogueText": "Fire Bolas",
"weaponSpecialSpring2016RogueNotes": "You've mastered the ball, the club, and the knife. Now you advance to juggling fire! Awoo! Increases Strength by <%= str %>. Limited Edition 2016 Spring Gear.",
"weaponSpecialSpring2016WarriorText": "Cheese Mallet",
"weaponSpecialSpring2016WarriorNotes": "No one has as many friends as the mouse with tender cheeses. Increases Strength by <%= str %>. Limited Edition 2016 Spring Gear.",
"weaponSpecialSpring2016MageText": "Staff of Bells",
"weaponSpecialSpring2016MageNotes": "Abra-cat-abra! So dazzling, you might mesmerize yourself! Ooh... it jingles... Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2016 Spring Gear.",
"weaponSpecialSpring2016HealerText": "Spring Flower Wand",
"weaponSpecialSpring2016HealerNotes": "With a wave and a wink, you bring the fields and forests into bloom! Or bop troublesome mice on the head. Increases Intelligence by <%= int %>. Limited Edition 2016 Spring Gear.",
"weaponMystery201411Text": "Pitchfork of Feasting",
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
@ -346,6 +355,15 @@
"armorSpecialWinter2016HealerText": "Festive Fairy Cloak",
"armorSpecialWinter2016HealerNotes": "Festive Fairies wrap their body wings around themselves for protection as they use their head wings to catch headwinds and fly around Habitica at speeds of up to 100 mph, delivering gifts and spraying everyone with confetti. How droll. Increases Constitution by <%= con %>. Limited Edition 2015-2016 Winter Gear.",
"armorSpecialSpring2016RogueText": "Canine Camo Suit",
"armorSpecialSpring2016RogueNotes": "A clever pup knows to choose a brighter guise for concealment when everything is green and vibrant. Increases Perception by <%= per %>. Limited Edition 2016 Spring Gear.",
"armorSpecialSpring2016WarriorText": "Mighty Mail",
"armorSpecialSpring2016WarriorNotes": "Though you be but little, you are fierce! Increases Constitution by <%= con %>. Limited Edition 2016 Spring Gear.",
"armorSpecialSpring2016MageText": "Grand Malkin Robes",
"armorSpecialSpring2016MageNotes": "Brightly colored, so you won't be mistaken for a necromouser. Increases Intelligence by <%= int %>. Limited Edition 2016 Spring Gear.",
"armorSpecialSpring2016HealerText": "Fluffy Bunny Breeches",
"armorSpecialSpring2016HealerNotes": "Hippity hop! Bound from hill to hill, healing those in need. Increases Constitution by <%= con %>. Limited Edition 2016 Spring Gear.",
"armorMystery201402Text": "Messenger Robes",
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
"armorMystery201403Text": "Forest Walker Armor",
@ -555,6 +573,15 @@
"headSpecialWinter2016HealerText": "Fairy Wing Helm",
"headSpecialWinter2016HealerNotes": "Thesewingsfluttersoquicklythattheyblur! Increases Intelligence by <%= int %>. Limited Edition 2015-2016 Winter Gear.",
"headSpecialSpring2016RogueText": "Good Doggy Mask",
"headSpecialSpring2016RogueNotes": "Aww, what a cute puppy! Come here and let me pet your head. ...Hey, where did all my Gold go? Increases Perception by <%= per %>. Limited Edition 2016 Spring Gear.",
"headSpecialSpring2016WarriorText": "Mouse Guard Helm",
"headSpecialSpring2016WarriorNotes": "Never again shall you be bopped on the head! Let them try! Increases Strength by <%= str %>. Limited Edition 2016 Spring Gear.",
"headSpecialSpring2016MageText": "Grand Malkin Hat",
"headSpecialSpring2016MageNotes": "Apparel to set you above the mere alley-mages of the world. Increases Perception by <%= per %>. Limited Edition 2016 Spring Gear.",
"headSpecialSpring2016HealerText": "Blossom Diadem",
"headSpecialSpring2016HealerNotes": "It glints with the potential of new life ready to burst forth. Increases Intelligence by <%= int %>. Limited Edition 2016 Spring Gear.",
"headSpecialGaymerxText": "Rainbow Warrior Helm",
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
@ -734,6 +761,13 @@
"shieldSpecialWinter2016HealerText": "Pixie Present",
"shieldSpecialWinter2016HealerNotes": "Open it open it open it open it open it open it!!!!!!!!! Increases Constitution by <%= con %>. Limited Edition 2015-2016 Winter Gear.",
"shieldSpecialSpring2016RogueText": "Fire Bolas",
"shieldSpecialSpring2016RogueNotes": "You've mastered the ball, the club, and the knife. Now you advance to juggling fire! Awoo! Increases Strength <%= str %>. Limited Edition 2016 Spring Gear.",
"shieldSpecialSpring2016WarriorText": "Cheese Wheel",
"shieldSpecialSpring2016WarriorNotes": "You braved fiendish traps to procure this defense-boosting food. Increases Constitution by <%= con %>. Limited Edition 2016 Spring Gear.",
"shieldSpecialSpring2016HealerText": "Floral Buckler",
"shieldSpecialSpring2016HealerNotes": "The April Fool claims this little shield will block Shiny Seeds. Don't believe him. Increases Constitution by <%= con %>. Limited Edition 2016 Spring Gear.",
"shieldMystery201601Text": "Resolution Slayer",
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
"shieldMystery301405Text": "Clock Shield",
@ -824,8 +858,17 @@
"headAccessorySpecialSpring2015HealerText": "Green Kitty Ears",
"headAccessorySpecialSpring2015HealerNotes": "These cute kitty ears will make others green with envy. Confers no benefit. Limited Edition 2015 Spring Gear.",
"headAccessorySpecialSpring2016RogueText": "Green Dog Ears",
"headAccessorySpecialSpring2016RogueNotes": "With these, you can keep track of tricky Mages even if they turn invisible! Confers no benefit. Limited Edition 2016 Spring Gear.",
"headAccessorySpecialSpring2016WarriorText": "Red Mouse Ears",
"headAccessorySpecialSpring2016WarriorNotes": "To better hear your theme song across clamorous battlefields. Confers no benefit. Limited Edition 2016 Spring Gear.",
"headAccessorySpecialSpring2016MageText": "Yellow Cat Ears",
"headAccessorySpecialSpring2016MageNotes": "These sharp ears can detect the minute hum of ambient Mana, or the muted footfalls of a Rogue. Confers no benefit. Limited Edition 2016 Spring Gear.",
"headAccessorySpecialSpring2016HealerText": "Purple Bunny Ears",
"headAccessorySpecialSpring2016HealerNotes": "They stand like flags above the fray, letting others know where to run for help. Confers no benefit. Limited Edition 2016 Spring Gear.",
"headAccessoryBearEarsText": "Bear Ears",
"headAccessoryBearEarsNotes": "These ears make you look like a cuddly bear! Confers no benefit.",
"headAccessoryBearEarsNotes": "These ears make you look like a brave bear! Confers no benefit.",
"headAccessoryCactusEarsText": "Cactus Ears",
"headAccessoryCactusEarsNotes": "These ears make you look like a prickly cactus! Confers no benefit.",
"headAccessoryFoxEarsText": "Fox Ears",

View file

@ -67,6 +67,10 @@
"witchyWizardSet": "Witchy Wizard (Mage)",
"mummyMedicSet": "Mummy Medic (Healer)",
"vampireSmiterSet": "Vampire Smiter (Rogue)",
"bewareDogSet": "Beware Dog (Warrior)",
"magicianBunnySet": "Magician's Bunny (Mage)",
"comfortingKittySet": "Comforting Kitty (Healer)",
"sneakySqueakerSet": "Sneaky Squeaker (Rogue)",
"fallEventAvailability": "Available until October 31",
"winterEventAvailability": "Available until December 31"
}

View file

@ -23,6 +23,7 @@ export const EVENTS = {
fall2015: { start: '2015-09-21', end: '2015-11-01' },
gaymerx: { start: '2015-12-01', end: '2015-12-14' },
winter2016: { start: '2015-12-18', end: '2016-02-02' },
spring2016: { start: '2016-03-18', end: '2016-05-02' },
};
export const GEAR_TYPES = [

View file

@ -62,6 +62,9 @@ let armor = {
notes: t('armorSpecialSpringRogueNotes', { per: 15 }),
value: 90,
per: 15,
canBuy: () => {
return true;
},
},
springWarrior: {
event: EVENTS.spring,
@ -70,6 +73,9 @@ let armor = {
notes: t('armorSpecialSpringWarriorNotes', { con: 9 }),
value: 90,
con: 9,
canBuy: () => {
return true;
},
},
springMage: {
event: EVENTS.spring,
@ -78,6 +84,9 @@ let armor = {
notes: t('armorSpecialSpringMageNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
springHealer: {
event: EVENTS.spring,
@ -86,6 +95,9 @@ let armor = {
notes: t('armorSpecialSpringHealerNotes', { con: 15 }),
value: 90,
con: 15,
canBuy: () => {
return true;
},
},
summerRogue: {
event: EVENTS.summer,
@ -196,6 +208,9 @@ let armor = {
notes: t('armorSpecialSpring2015RogueNotes', { per: 15 }),
value: 90,
per: 15,
canBuy: () => {
return true;
},
},
spring2015Warrior: {
event: EVENTS.spring2015,
@ -204,6 +219,9 @@ let armor = {
notes: t('armorSpecialSpring2015WarriorNotes', { con: 9 }),
value: 90,
con: 9,
canBuy: () => {
return true;
},
},
spring2015Mage: {
event: EVENTS.spring2015,
@ -212,6 +230,9 @@ let armor = {
notes: t('armorSpecialSpring2015MageNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
spring2015Healer: {
event: EVENTS.spring2015,
@ -220,6 +241,9 @@ let armor = {
notes: t('armorSpecialSpring2015HealerNotes', { con: 15 }),
value: 90,
con: 15,
canBuy: () => {
return true;
},
},
summer2015Rogue: {
event: EVENTS.summer2015,
@ -329,6 +353,38 @@ let armor = {
value: 0,
canOwn: ownsItem('armor_special_birthday2016'),
},
spring2016Rogue: {
event: EVENTS.spring2016,
specialClass: 'rogue',
text: t('armorSpecialSpring2016RogueText'),
notes: t('armorSpecialSpring2016RogueNotes', { per: 15 }),
value: 90,
per: 15,
},
spring2016Warrior: {
event: EVENTS.spring2016,
specialClass: 'warrior',
text: t('armorSpecialSpring2016WarriorText'),
notes: t('armorSpecialSpring2016WarriorNotes', { con: 9 }),
value: 90,
con: 9,
},
spring2016Mage: {
event: EVENTS.spring2016,
specialClass: 'wizard',
text: t('armorSpecialSpring2016MageText'),
notes: t('armorSpecialSpring2016MageNotes', { int: 9 }),
value: 90,
int: 9,
},
spring2016Healer: {
event: EVENTS.spring2016,
specialClass: 'healer',
text: t('armorSpecialSpring2016HealerText'),
notes: t('armorSpecialSpring2016HealerNotes', { con: 15 }),
value: 90,
con: 15,
},
};
let back = {
@ -427,9 +483,6 @@ let head = {
notes: t('headSpecialYetiNotes', { str: 9 }),
str: 9,
value: 60,
canBuy: () => {
return true;
},
},
ski: {
event: EVENTS.winter,
@ -438,9 +491,6 @@ let head = {
notes: t('headSpecialSkiNotes', { per: 9 }),
per: 9,
value: 60,
canBuy: () => {
return true;
},
},
candycane: {
event: EVENTS.winter,
@ -449,9 +499,6 @@ let head = {
notes: t('headSpecialCandycaneNotes', { per: 7 }),
per: 7,
value: 60,
canBuy: () => {
return true;
},
},
snowflake: {
event: EVENTS.winter,
@ -460,9 +507,6 @@ let head = {
notes: t('headSpecialSnowflakeNotes', { int: 7 }),
int: 7,
value: 60,
canBuy: () => {
return true;
},
},
springRogue: {
event: EVENTS.spring,
@ -471,6 +515,9 @@ let head = {
notes: t('headSpecialSpringRogueNotes', { per: 9 }),
value: 60,
per: 9,
canBuy: () => {
return true;
},
},
springWarrior: {
event: EVENTS.spring,
@ -479,6 +526,9 @@ let head = {
notes: t('headSpecialSpringWarriorNotes', { str: 9 }),
value: 60,
str: 9,
canBuy: () => {
return true;
},
},
springMage: {
event: EVENTS.spring,
@ -487,6 +537,9 @@ let head = {
notes: t('headSpecialSpringMageNotes', { per: 7 }),
value: 60,
per: 7,
canBuy: () => {
return true;
},
},
springHealer: {
event: EVENTS.spring,
@ -495,6 +548,9 @@ let head = {
notes: t('headSpecialSpringHealerNotes', { int: 7 }),
value: 60,
int: 7,
canBuy: () => {
return true;
},
},
summerRogue: {
event: EVENTS.summer,
@ -535,9 +591,6 @@ let head = {
notes: t('headSpecialFallRogueNotes', { per: 9 }),
value: 60,
per: 9,
canBuy: () => {
return true;
},
},
fallWarrior: {
event: EVENTS.fall,
@ -546,9 +599,6 @@ let head = {
notes: t('headSpecialFallWarriorNotes', { str: 9 }),
value: 60,
str: 9,
canBuy: () => {
return true;
},
},
fallMage: {
event: EVENTS.fall,
@ -557,9 +607,6 @@ let head = {
notes: t('headSpecialFallMageNotes', { per: 7 }),
value: 60,
per: 7,
canBuy: () => {
return true;
},
},
fallHealer: {
event: EVENTS.fall,
@ -568,9 +615,6 @@ let head = {
notes: t('headSpecialFallHealerNotes', { int: 7 }),
value: 60,
int: 7,
canBuy: () => {
return true;
},
},
winter2015Rogue: {
event: EVENTS.winter2015,
@ -579,9 +623,6 @@ let head = {
notes: t('headSpecialWinter2015RogueNotes', { per: 9 }),
value: 60,
per: 9,
canBuy: () => {
return true;
},
},
winter2015Warrior: {
event: EVENTS.winter2015,
@ -590,9 +631,6 @@ let head = {
notes: t('headSpecialWinter2015WarriorNotes', { str: 9 }),
value: 60,
str: 9,
canBuy: () => {
return true;
},
},
winter2015Mage: {
event: EVENTS.winter2015,
@ -601,9 +639,6 @@ let head = {
notes: t('headSpecialWinter2015MageNotes', { per: 7 }),
value: 60,
per: 7,
canBuy: () => {
return true;
},
},
winter2015Healer: {
event: EVENTS.winter2015,
@ -612,9 +647,6 @@ let head = {
notes: t('headSpecialWinter2015HealerNotes', { int: 7 }),
value: 60,
int: 7,
canBuy: () => {
return true;
},
},
nye2014: {
text: t('headSpecialNye2014Text'),
@ -629,6 +661,9 @@ let head = {
notes: t('headSpecialSpring2015RogueNotes', { per: 9 }),
value: 60,
per: 9,
canBuy: () => {
return true;
},
},
spring2015Warrior: {
event: EVENTS.spring2015,
@ -637,6 +672,9 @@ let head = {
notes: t('headSpecialSpring2015WarriorNotes', { str: 9 }),
value: 60,
str: 9,
canBuy: () => {
return true;
},
},
spring2015Mage: {
event: EVENTS.spring2015,
@ -645,6 +683,9 @@ let head = {
notes: t('headSpecialSpring2015MageNotes', { per: 7 }),
value: 60,
per: 7,
canBuy: () => {
return true;
},
},
spring2015Healer: {
event: EVENTS.spring2015,
@ -653,6 +694,9 @@ let head = {
notes: t('headSpecialSpring2015HealerNotes', { int: 7 }),
value: 60,
int: 7,
canBuy: () => {
return true;
},
},
summer2015Rogue: {
event: EVENTS.summer2015,
@ -762,6 +806,38 @@ let head = {
value: 0,
canOwn: ownsItem('head_special_nye2015'),
},
spring2016Rogue: {
event: EVENTS.spring2016,
specialClass: 'rogue',
text: t('headSpecialSpring2016RogueText'),
notes: t('headSpecialSpring2016RogueNotes', { per: 9 }),
value: 60,
per: 9,
},
spring2016Warrior: {
event: EVENTS.spring2016,
specialClass: 'warrior',
text: t('headSpecialSpring2016WarriorText'),
notes: t('headSpecialSpring2016WarriorNotes', { str: 9 }),
value: 60,
str: 9,
},
spring2016Mage: {
event: EVENTS.spring2016,
specialClass: 'wizard',
text: t('headSpecialSpring2016MageText'),
notes: t('headSpecialSpring2016MageNotes', { per: 7 }),
value: 60,
per: 7,
},
spring2016Healer: {
event: EVENTS.spring2016,
specialClass: 'healer',
text: t('headSpecialSpring2016HealerText'),
notes: t('headSpecialSpring2016HealerNotes', { int: 7 }),
value: 60,
int: 7,
},
};
let headAccessory = {
@ -771,6 +847,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringRogueText'),
notes: t('headAccessorySpecialSpringRogueNotes'),
value: 20,
canBuy: () => {
return true;
},
},
springWarrior: {
event: EVENTS.spring,
@ -778,6 +857,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringWarriorText'),
notes: t('headAccessorySpecialSpringWarriorNotes'),
value: 20,
canBuy: () => {
return true;
},
},
springMage: {
event: EVENTS.spring,
@ -785,6 +867,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringMageText'),
notes: t('headAccessorySpecialSpringMageNotes'),
value: 20,
canBuy: () => {
return true;
},
},
springHealer: {
event: EVENTS.spring,
@ -792,6 +877,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpringHealerText'),
notes: t('headAccessorySpecialSpringHealerNotes'),
value: 20,
canBuy: () => {
return true;
},
},
spring2015Rogue: {
event: EVENTS.spring2015,
@ -799,6 +887,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015RogueText'),
notes: t('headAccessorySpecialSpring2015RogueNotes'),
value: 20,
canBuy: () => {
return true;
},
},
spring2015Warrior: {
event: EVENTS.spring2015,
@ -806,6 +897,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015WarriorText'),
notes: t('headAccessorySpecialSpring2015WarriorNotes'),
value: 20,
canBuy: () => {
return true;
},
},
spring2015Mage: {
event: EVENTS.spring2015,
@ -813,6 +907,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015MageText'),
notes: t('headAccessorySpecialSpring2015MageNotes'),
value: 20,
canBuy: () => {
return true;
},
},
spring2015Healer: {
event: EVENTS.spring2015,
@ -820,6 +917,9 @@ let headAccessory = {
text: t('headAccessorySpecialSpring2015HealerText'),
notes: t('headAccessorySpecialSpring2015HealerNotes'),
value: 20,
canBuy: () => {
return true;
},
},
bearEars: {
gearSet: 'animal',
@ -901,6 +1001,34 @@ let headAccessory = {
return true;
},
},
spring2016Rogue: {
event: EVENTS.spring2016,
specialClass: 'rogue',
text: t('headAccessorySpecialSpring2016RogueText'),
notes: t('headAccessorySpecialSpring2016RogueNotes'),
value: 20,
},
spring2016Warrior: {
event: EVENTS.spring2016,
specialClass: 'warrior',
text: t('headAccessorySpecialSpring2016WarriorText'),
notes: t('headAccessorySpecialSpring2016WarriorNotes'),
value: 20,
},
spring2016Mage: {
event: EVENTS.spring2016,
specialClass: 'wizard',
text: t('headAccessorySpecialSpring2016MageText'),
notes: t('headAccessorySpecialSpring2016MageNotes'),
value: 20,
},
spring2016Healer: {
event: EVENTS.spring2016,
specialClass: 'healer',
text: t('headAccessorySpecialSpring2016HealerText'),
notes: t('headAccessorySpecialSpring2016HealerNotes'),
value: 20,
},
};
let shield = {
@ -928,9 +1056,6 @@ let shield = {
notes: t('shieldSpecialYetiNotes', { con: 7 }),
con: 7,
value: 70,
canBuy: () => {
return true;
},
},
ski: {
event: EVENTS.winter,
@ -939,9 +1064,6 @@ let shield = {
notes: t('weaponSpecialSkiNotes', { str: 8 }),
str: 8,
value: 90,
canBuy: () => {
return true;
},
},
snowflake: {
event: EVENTS.winter,
@ -950,9 +1072,6 @@ let shield = {
notes: t('shieldSpecialSnowflakeNotes', { con: 9 }),
con: 9,
value: 70,
canBuy: () => {
return true;
},
},
springRogue: {
event: EVENTS.spring,
@ -961,6 +1080,9 @@ let shield = {
notes: t('shieldSpecialSpringRogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
springWarrior: {
event: EVENTS.spring,
@ -969,6 +1091,9 @@ let shield = {
notes: t('shieldSpecialSpringWarriorNotes', { con: 7 }),
value: 70,
con: 7,
canBuy: () => {
return true;
},
},
springHealer: {
event: EVENTS.spring,
@ -977,6 +1102,9 @@ let shield = {
notes: t('shieldSpecialSpringHealerNotes', { con: 9 }),
value: 70,
con: 9,
canBuy: () => {
return true;
},
},
summerRogue: {
event: EVENTS.summer,
@ -1042,9 +1170,6 @@ let shield = {
notes: t('shieldSpecialWinter2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
winter2015Warrior: {
event: EVENTS.winter2015,
@ -1053,9 +1178,6 @@ let shield = {
notes: t('shieldSpecialWinter2015WarriorNotes', { con: 7 }),
value: 70,
con: 7,
canBuy: () => {
return true;
},
},
winter2015Healer: {
event: EVENTS.winter2015,
@ -1064,9 +1186,6 @@ let shield = {
notes: t('shieldSpecialWinter2015HealerNotes', { con: 9 }),
value: 70,
con: 9,
canBuy: () => {
return true;
},
},
spring2015Rogue: {
event: EVENTS.spring2015,
@ -1075,6 +1194,9 @@ let shield = {
notes: t('shieldSpecialSpring2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
spring2015Warrior: {
event: EVENTS.spring2015,
@ -1083,6 +1205,9 @@ let shield = {
notes: t('shieldSpecialSpring2015WarriorNotes', { con: 7 }),
value: 70,
con: 7,
canBuy: () => {
return true;
},
},
spring2015Healer: {
event: EVENTS.spring2015,
@ -1091,6 +1216,9 @@ let shield = {
notes: t('shieldSpecialSpring2015HealerNotes', { con: 9 }),
value: 70,
con: 9,
canBuy: () => {
return true;
},
},
summer2015Rogue: {
event: EVENTS.summer2015,
@ -1099,6 +1227,9 @@ let shield = {
notes: t('shieldSpecialSummer2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
summer2015Warrior: {
event: EVENTS.summer2015,
@ -1164,6 +1295,30 @@ let shield = {
value: 70,
con: 9,
},
spring2016Rogue: {
event: EVENTS.spring2016,
specialClass: 'rogue',
text: t('shieldSpecialSpring2016RogueText'),
notes: t('shieldSpecialSpring2016RogueNotes', { str: 8 }),
value: 80,
str: 8,
},
spring2016Warrior: {
event: EVENTS.spring2016,
specialClass: 'warrior',
text: t('shieldSpecialSpring2016WarriorText'),
notes: t('shieldSpecialSpring2016WarriorNotes', { con: 7 }),
value: 70,
con: 7,
},
spring2016Healer: {
event: EVENTS.spring2016,
specialClass: 'healer',
text: t('shieldSpecialSpring2016HealerText'),
notes: t('shieldSpecialSpring2016HealerNotes', { con: 9 }),
value: 70,
con: 9,
},
};
let weapon = {
@ -1186,9 +1341,6 @@ let weapon = {
notes: t('weaponSpecialYetiNotes', { str: 15 }),
str: 15,
value: 90,
canBuy: () => {
return true;
},
},
ski: {
event: EVENTS.winter,
@ -1197,9 +1349,6 @@ let weapon = {
notes: t('weaponSpecialSkiNotes', { str: 8 }),
str: 8,
value: 90,
canBuy: () => {
return true;
},
},
candycane: {
event: EVENTS.winter,
@ -1210,9 +1359,6 @@ let weapon = {
int: 15,
per: 7,
value: 160,
canBuy: () => {
return true;
},
},
snowflake: {
event: EVENTS.winter,
@ -1221,9 +1367,6 @@ let weapon = {
notes: t('weaponSpecialSnowflakeNotes', { int: 9 }),
int: 9,
value: 90,
canBuy: () => {
return true;
},
},
springRogue: {
event: EVENTS.spring,
@ -1232,6 +1375,9 @@ let weapon = {
notes: t('weaponSpecialSpringRogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
springWarrior: {
event: EVENTS.spring,
@ -1240,6 +1386,9 @@ let weapon = {
notes: t('weaponSpecialSpringWarriorNotes', { str: 15 }),
value: 90,
str: 15,
canBuy: () => {
return true;
},
},
springMage: {
event: EVENTS.spring,
@ -1250,6 +1399,9 @@ let weapon = {
value: 160,
int: 15,
per: 7,
canBuy: () => {
return true;
},
},
springHealer: {
event: EVENTS.spring,
@ -1258,6 +1410,9 @@ let weapon = {
notes: t('weaponSpecialSpringHealerNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
summerRogue: {
event: EVENTS.summer,
@ -1300,9 +1455,6 @@ let weapon = {
notes: t('weaponSpecialFallRogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
fallWarrior: {
event: EVENTS.fall,
@ -1311,9 +1463,6 @@ let weapon = {
notes: t('weaponSpecialFallWarriorNotes', { str: 15 }),
value: 90,
str: 15,
canBuy: () => {
return true;
},
},
fallMage: {
event: EVENTS.fall,
@ -1324,9 +1473,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
canBuy: () => {
return true;
},
},
fallHealer: {
event: EVENTS.fall,
@ -1335,9 +1481,6 @@ let weapon = {
notes: t('weaponSpecialFallHealerNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
winter2015Rogue: {
event: EVENTS.winter2015,
@ -1346,9 +1489,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
winter2015Warrior: {
event: EVENTS.winter2015,
@ -1357,9 +1497,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015WarriorNotes', { str: 15 }),
value: 90,
str: 15,
canBuy: () => {
return true;
},
},
winter2015Mage: {
event: EVENTS.winter2015,
@ -1370,9 +1507,6 @@ let weapon = {
value: 160,
int: 15,
per: 7,
canBuy: () => {
return true;
},
},
winter2015Healer: {
event: EVENTS.winter2015,
@ -1381,9 +1515,6 @@ let weapon = {
notes: t('weaponSpecialWinter2015HealerNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
spring2015Rogue: {
event: EVENTS.spring2015,
@ -1392,6 +1523,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015RogueNotes', { str: 8 }),
value: 80,
str: 8,
canBuy: () => {
return true;
},
},
spring2015Warrior: {
event: EVENTS.spring2015,
@ -1400,6 +1534,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015WarriorNotes', { str: 15 }),
value: 90,
str: 15,
canBuy: () => {
return true;
},
},
spring2015Mage: {
event: EVENTS.spring2015,
@ -1410,6 +1547,9 @@ let weapon = {
value: 160,
int: 15,
per: 7,
canBuy: () => {
return true;
},
},
spring2015Healer: {
event: EVENTS.spring2015,
@ -1418,6 +1558,9 @@ let weapon = {
notes: t('weaponSpecialSpring2015HealerNotes', { int: 9 }),
value: 90,
int: 9,
canBuy: () => {
return true;
},
},
summer2015Rogue: {
event: EVENTS.summer2015,
@ -1521,6 +1664,40 @@ let weapon = {
value: 90,
int: 9,
},
spring2016Rogue: {
event: EVENTS.spring2016,
specialClass: 'rogue',
text: t('weaponSpecialSpring2016RogueText'),
notes: t('weaponSpecialSpring2016RogueNotes', { str: 8 }),
value: 80,
str: 8,
},
spring2016Warrior: {
event: EVENTS.spring2016,
specialClass: 'warrior',
text: t('weaponSpecialSpring2016WarriorText'),
notes: t('weaponSpecialSpring2016WarriorNotes', { str: 15 }),
value: 90,
str: 15,
},
spring2016Mage: {
event: EVENTS.spring2016,
specialClass: 'wizard',
twoHanded: true,
text: t('weaponSpecialSpring2016MageText'),
notes: t('weaponSpecialSpring2016MageNotes', { int: 15, per: 7 }),
value: 160,
int: 15,
per: 7,
},
spring2016Healer: {
event: EVENTS.spring2016,
specialClass: 'healer',
text: t('weaponSpecialSpring2016HealerText'),
notes: t('weaponSpecialSpring2016HealerNotes', { int: 9 }),
value: 90,
int: 9,
},
};
let specialSet = {

View file

@ -1287,7 +1287,7 @@ api.quests = {
completion: t('questEggHuntCompletion'),
value: 1,
canBuy: (function() {
return false;
return true;
}),
category: 'pet',
collect: {

View file

@ -38,7 +38,7 @@
"gulp-babel": "^6.1.2",
"gulp-eslint": "^1.0.0",
"gulp-grunt": "^0.5.2",
"gulp-imagemin": "^2.3.0",
"gulp-imagemin": "^2.4.0",
"gulp-nodemon": "^2.0.4",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.4.2",

View file

@ -216,7 +216,7 @@ habitrpg.controller("InventoryCtrl",
var questArray = _.toArray(Content.quests);
var filteredArray = _.filter(questArray, function(q){
return q.key.indexOf('evilsanta') !== -1;
return q.key === ('egg');
});
return filteredArray;

View file

@ -1,17 +1,26 @@
.container-fluid
.stable.row: .col-xs-12
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs
h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
.popover-content
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopText')
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopText')
// .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
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")}')
li.customize-menu.inventory-gear
menu.pets-menu(label=env.t('quests'))
div(ng-repeat='quest in ::getSeasonalShopQuests()')
button.customize-option(ng-class='(quest.previous && !user.achievements.quests[quest.previous]) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"'
data-popover-html="{{::quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
popover-append-to-body='true', popover-title='{{::quest.text()}}',
popover-trigger='mouseenter', popover-placement='right',
ng-click='buyQuest(quest.key)')
p {{::quest.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
menu.pets-menu(label='{{::label}}', ng-repeat='(set,label) in ::{springWarrior:env.t("mightyBunnySet"), springMage:env.t("magicMouseSet"), springHealer:env.t("lovingPupSet"), springRogue:env.t("stealthyKittySet"), spring2015Warrior:env.t("bewareDogSet"), spring2015Mage:env.t("magicianBunnySet"), spring2015Healer:env.t("comfortingKittySet"), spring2015Rogue:env.t("sneakySqueakerSet")}')
div(ng-repeat='item in ::getSeasonalShopArray(set)',
ng-class="{transparent: user.items.gear.owned[item.key] !== undefined}")
button.customize-option(class='shop_{{::item.key}}',
@ -22,17 +31,7 @@
div
| {{((item.specialClass == "wizard") && (item.type == "weapon")) + 1}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
menu.pets-menu(label=env.t('quests'))
div(ng-repeat='quest in ::getSeasonalShopQuests()')
button.customize-option(ng-class='(quest.previous && !user.achievements.quests[quest.previous]) ? "inventory_quest_scroll_locked inventory_quest_scroll_{{::quest.key}}_locked locked" : "inventory_quest_scroll inventory_quest_scroll_{{::quest.key}}"'
data-popover-html="{{::quest.previous && !user.achievements.quests[quest.previous] ? env.t('scrollsPre') : questPopover(quest) | markdown}}",
popover-append-to-body='true', popover-title='{{::quest.text()}}',
popover-trigger='mouseenter', popover-placement='right',
ng-click='buyQuest(quest.key)')
p {{::quest.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems
menu.pets-menu(label=env.t('seasonalItems'))
// menu.pets-menu(label=env.t('seasonalItems'))
div
button.customize-option(class='inventory_special_snowball',
popover='{{::Content.spells.special.snowball.notes()}}',

View file

@ -1,35 +1,79 @@
h2 3/17/2016 - MAJOR iOS AND ANDROID APP UPDATES!
h2 3/18/2016 - SPRING FLING BEGINS! LIMITED EDITION EQUIPMENT, SEASONAL SHOP OPENS, AND SPRING MYSTERY PLOT CONTINUES
hr
tr
td
h3 iOS App Updates: Task Reminders, Guilds, and More!
p We've released an update for our <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS app</a>! This is a big one, so be sure to download it now.
ul
li Set TASK REMINDERS for individual tasks that send you notifications when it's time to get things done! Just tap on a task to add or edit a reminder.
li Join or visit GUILDS directly from the apps to discuss your favorite productivity tips, share your hobbies, and more!
li +1 IN CHATS! Let a user know that you liked their post by tapping the new +1 button! Go wild with power.
li We've also fixed lots of bugs, including header and FAQ scrolling!
p When we release a new iOS update, it hides all of our old reviews, so if you like the direction we're going, please consider reviewing this new version. It really helps us out! And if you have any questions or concerns, don't hesitate to email <a href='mailto:mobile@habitica.com' target='_blank'>mobile@habitica.com</a> so we can respond. Thanks, and enjoy!
.promo_spring_classes_2016.pull-right
h3 Limited Edition Class Outfits
p From now until April 30th, limited edition outfits are available in the Rewards column! Depending on your class, you can be a Springing Bunny, Clever Dog, Grand Malkin, or Brave Mouse. You'd better get productive to earn enough Gold before your time runs out...
p.small.muted by PainterProphet and Balduranne
tr
td
h3 Android App Updates: Guilds, Equipment, and More!
p We've also released a bunch of new features for <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica' target='_blank'>our Android app</a>! Grab it now to check out all the cool stuff.
ul
li Join or visit GUILDS directly from the apps to discuss your favorite productivity tips, share your hobbies, and more!
li Now you can equip and view EQUIPMENT right from the app!
li EMOJI AND MARKDOWN are now supported in chat messages.
li Accept or reject QUEST INVITES right from the app! Happy battling.
p As always, if you're enjoying our Android app and want to help us out, please consider leaving us a review! It really means a lot to us. If you have questions or feedback, be sure to <a href='mailto:mobile@habitica.com' target='_blank'>email mobile@habitica.com</a> so it doesn't get lost!
.promo_egg_mounts.pull-right
h3 Seasonal Shop Opens
p The <a href='/#/options/inventory/seasonalshop'>Seasonal Shop</a> has opened! It's stocking springtime Seasonal Edition goodies at the moment, including past spring outfits and the Egg Quest scroll. Everything there will be available to purchase during the Spring Fling event each year, but it's 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!
tr
td
h3 Want to Contribute?
p Habitica is an open-source project, which means that anyone can contribute! If you're interested in helping us improve the app while earning gems and special armor, check out our Github for <a href='https://github.com/HabitRPG/habitrpg-ios' target='_blank'>iOS</a> and <a href='https://github.com/HabitRPG/habitrpg-android' target='_blank'>Android</a>. We can't wait to see what you'll contribute!
h3 Spring Plot Continues: The Floating City of Mistiflying
p As the Spring Fling celebrations begin, a sparkling cloud descends from the sky to reveal… the floating city of Mistiflying!
br
p Mistiflying is a flower-filled city that drifts in the clouds above Habitica, manufacturing custom rewards and raining them down on deserving Habiticans. Its brimming with friendly, magical bees that work hard to keep the blossoms healthy and the city floating, and theres a festive humming in the air. Looks like well get a chance for plenty of parties this month! Weve even received a visit from Mistiflyings somewhat erratic ruler: the April Fool, a masterful rogue with a penchant for fun and an interest in illusions.
tr
td
.npc_aprilFool.pull-right
h3 Spring Plot-Line Continues: The April Fool
p The April Fool swishes his cape over his shoulders, striding through the mists into Habit City. “Lemoness! Redphoenix! SabreCat! My dearest and most delightful friends!” He sweeps out his arms in a striking pose, and several firework displays go off behind him. “Oho, look at your faces! Its like you arent even happy to see me.”
br
p Lemoness does, in fact, seem less than thrilled. “Its just… the last time you were here, I was kidnapped by a mutant flower uprising."
br
p “Really! Did I cause that?”
br
p Redphoenix smolders. “Two years ago, you turned me into an eggplant.”
br
p “An honest misunderstanding, I am sure. But it did only last a single day!”
The April Fool links his arm with SabreCat and gives the tracker a winning smile. “Which reminds me Sabe, I can crash in your guest cottage again this month, right? No hard feelings about the Mammoth Ballet incident?”
br
p SabreCat lets out a strangled growl, and Lemoness hastily pulls the April Fool out of claw range.
br
p “Youre here for a whole month?” Redphoenix says. "What, did Lady Glaciate banish you from the Stoïkalm Steppes again?"
br
p The April Fool seems affronted at the suggestion. "Rumors, hearsay, and probably lies! Still, Habit City may temporarily be a more hospitable place to hover over. For entirely unrelated reasons, you understand."
br
p Lemoness rubs her temples.“Even so. It's not that we dont... appreciate your yearly creativity, but were in the middle of the Spring Fling festivities. Its a very busy time!!”
br
p He taps her affectionately on the nose. “Nothing to fear, my citrusy dear! Believe me, you wont even notice Im here.”
br
p Then he claps his hands, and a marching band starts up.
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
h2 3/17/2016 - MAJOR iOS AND ANDROID APP UPDATES!
tr
td
h3 iOS App Updates: Task Reminders, Guilds, and More!
p We've released an update for our <a href='https://itunes.apple.com/us/app/habitica/id994882113?ls=1&mt=8' target='_blank'>iOS app</a>! This is a big one, so be sure to download it now.
ul
li Set TASK REMINDERS for individual tasks that send you notifications when it's time to get things done! Just tap on a task to add or edit a reminder.
li Join or visit GUILDS directly from the apps to discuss your favorite productivity tips, share your hobbies, and more!
li +1 IN CHATS! Let a user know that you liked their post by tapping the new +1 button! Go wild with power.
li We've also fixed lots of bugs, including header and FAQ scrolling!
p When we release a new iOS update, it hides all of our old reviews, so if you like the direction we're going, please consider reviewing this new version. It really helps us out! And if you have any questions or concerns, don't hesitate to email <a href='mailto:mobile@habitica.com' target='_blank'>mobile@habitica.com</a> so we can respond. Thanks, and enjoy!
tr
td
h3 Android App Updates: Guilds, Equipment, and More!
p We've also released a bunch of new features for <a href='https://play.google.com/store/apps/details?id=com.habitrpg.android.habitica' target='_blank'>our Android app</a>! Grab it now to check out all the cool stuff.
ul
li Join or visit GUILDS directly from the apps to discuss your favorite productivity tips, share your hobbies, and more!
li Now you can equip and view EQUIPMENT right from the app!
li EMOJI AND MARKDOWN are now supported in chat messages.
li Accept or reject QUEST INVITES right from the app! Happy battling.
p As always, if you're enjoying our Android app and want to help us out, please consider leaving us a review! It really means a lot to us. If you have questions or feedback, be sure to <a href='mailto:mobile@habitica.com' target='_blank'>email mobile@habitica.com</a> so it doesn't get lost!
tr
td
h3 Want to Contribute?
p Habitica is an open-source project, which means that anyone can contribute! If you're interested in helping us improve the app while earning gems and special armor, check out our Github for <a href='https://github.com/HabitRPG/habitrpg-ios' target='_blank'>iOS</a> and <a href='https://github.com/HabitRPG/habitrpg-android' target='_blank'>Android</a>. We can't wait to see what you'll contribute!
h2 3/15/2016 - NEW PARTY ACHIEVEMENT BADGES AND SPRING MYSTERY PLOT CONTINUES!
tr
td