Merge branch 'api-v3' into api-v3-adapt-v2
148
common/dist/sprites/spritesmith-largeSprites-0.css
vendored
@@ -1,120 +1,126 @@
|
|||||||
.2014_Fall_HealerPROMO2 {
|
.2014_Fall_HealerPROMO2 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -543px -429px;
|
background-position: -927px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.2014_Fall_Mage_PROMO9 {
|
.2014_Fall_Mage_PROMO9 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1066px -684px;
|
background-position: -813px -295px;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.2014_Fall_RoguePROMO3 {
|
.2014_Fall_RoguePROMO3 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1371px -915px;
|
background-position: -813px -477px;
|
||||||
width: 105px;
|
width: 105px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.2014_Fall_Warrior_PROMO {
|
.2014_Fall_Warrior_PROMO {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -182px -1156px;
|
background-position: -381px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_android {
|
.promo_android {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px -332px;
|
background-position: -955px -480px;
|
||||||
width: 175px;
|
width: 175px;
|
||||||
height: 175px;
|
height: 175px;
|
||||||
}
|
}
|
||||||
.promo_backgrounds_armoire_201602 {
|
.promo_backgrounds_armoire_201602 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -672px -181px;
|
background-position: -306px -220px;
|
||||||
width: 141px;
|
width: 141px;
|
||||||
height: 294px;
|
height: 294px;
|
||||||
}
|
}
|
||||||
.promo_backgrounds_armoire_201603 {
|
.promo_backgrounds_armoire_201603 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -306px -220px;
|
background-position: -813px 0px;
|
||||||
width: 141px;
|
width: 141px;
|
||||||
height: 294px;
|
height: 294px;
|
||||||
}
|
}
|
||||||
|
.promo_backgrounds_armoire_201604 {
|
||||||
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
|
background-position: -452px 0px;
|
||||||
|
width: 140px;
|
||||||
|
height: 441px;
|
||||||
|
}
|
||||||
.promo_backtoschool {
|
.promo_backtoschool {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -342px;
|
background-position: -1236px -148px;
|
||||||
width: 150px;
|
width: 150px;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
}
|
}
|
||||||
.promo_burnout {
|
.promo_burnout {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -452px 0px;
|
background-position: -593px 0px;
|
||||||
width: 219px;
|
width: 219px;
|
||||||
height: 240px;
|
height: 240px;
|
||||||
}
|
}
|
||||||
.promo_classes_fall_2014 {
|
.promo_classes_fall_2014 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -326px -872px;
|
background-position: -326px -912px;
|
||||||
width: 321px;
|
width: 321px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
.promo_classes_fall_2015 {
|
.promo_classes_fall_2015 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -430px -621px;
|
background-position: -430px -706px;
|
||||||
width: 377px;
|
width: 377px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.promo_dilatoryDistress {
|
.promo_dilatoryDistress {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -808px -621px;
|
background-position: -563px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_egg_mounts {
|
.promo_egg_mounts {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -724px;
|
background-position: -955px 0px;
|
||||||
width: 280px;
|
width: 280px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire {
|
.promo_enchanted_armoire {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -648px -872px;
|
background-position: -271px -621px;
|
||||||
width: 374px;
|
width: 374px;
|
||||||
height: 76px;
|
height: 76px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire_201507 {
|
.promo_enchanted_armoire_201507 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -641px;
|
background-position: -578px -1112px;
|
||||||
width: 217px;
|
width: 217px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire_201508 {
|
.promo_enchanted_armoire_201508 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -915px;
|
background-position: -796px -1112px;
|
||||||
width: 180px;
|
width: 180px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire_201509 {
|
.promo_enchanted_armoire_201509 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -1156px;
|
background-position: -654px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire_201511 {
|
.promo_enchanted_armoire_201511 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px -684px;
|
background-position: -1236px -915px;
|
||||||
width: 122px;
|
width: 122px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_enchanted_armoire_201601 {
|
.promo_enchanted_armoire_201601 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -546px -1156px;
|
background-position: -1200px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_habitica {
|
.promo_habitica {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px -508px;
|
background-position: -593px -241px;
|
||||||
width: 175px;
|
width: 175px;
|
||||||
height: 175px;
|
height: 175px;
|
||||||
}
|
}
|
||||||
@@ -126,289 +132,289 @@
|
|||||||
}
|
}
|
||||||
.promo_haunted_hair {
|
.promo_haunted_hair {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1347px -194px;
|
background-position: -1236px -595px;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 137px;
|
height: 137px;
|
||||||
}
|
}
|
||||||
.promo_item_notif {
|
.promo_item_notif {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -91px;
|
background-position: -955px -656px;
|
||||||
width: 249px;
|
width: 249px;
|
||||||
height: 102px;
|
height: 102px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201405 {
|
.promo_mystery_201405 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -637px -1156px;
|
background-position: -1071px -1112px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201406 {
|
.promo_mystery_201406 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -452px -241px;
|
background-position: -813px -568px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 96px;
|
height: 96px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201407 {
|
.promo_mystery_201407 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1300px -1082px;
|
background-position: -904px -568px;
|
||||||
width: 42px;
|
width: 42px;
|
||||||
height: 62px;
|
height: 62px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201408 {
|
.promo_mystery_201408 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1408px -732px;
|
background-position: -513px -442px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 71px;
|
height: 71px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201409 {
|
.promo_mystery_201409 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -91px -1156px;
|
background-position: -745px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201410 {
|
.promo_mystery_201410 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1389px -823px;
|
background-position: -1131px -586px;
|
||||||
width: 72px;
|
width: 72px;
|
||||||
height: 63px;
|
height: 63px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201411 {
|
.promo_mystery_201411 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -364px -1156px;
|
background-position: -1109px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201412 {
|
.promo_mystery_201412 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1119px -402px;
|
background-position: -1342px -809px;
|
||||||
width: 42px;
|
width: 42px;
|
||||||
height: 66px;
|
height: 66px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201501 {
|
.promo_mystery_201501 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1251px -1082px;
|
background-position: -1337px -595px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 63px;
|
height: 63px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201502 {
|
.promo_mystery_201502 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -546px -338px;
|
background-position: -199px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201503 {
|
.promo_mystery_201503 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -452px -429px;
|
background-position: -290px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201504 {
|
.promo_mystery_201504 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -1082px;
|
background-position: -646px -621px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 69px;
|
height: 69px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201505 {
|
.promo_mystery_201505 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -910px -1156px;
|
background-position: -472px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201506 {
|
.promo_mystery_201506 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1119px -332px;
|
background-position: -1337px -659px;
|
||||||
width: 42px;
|
width: 42px;
|
||||||
height: 69px;
|
height: 69px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201507 {
|
.promo_mystery_201507 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -814px -363px;
|
background-position: -1131px -480px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 105px;
|
height: 105px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201508 {
|
.promo_mystery_201508 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -452px -338px;
|
background-position: -977px -1112px;
|
||||||
width: 93px;
|
width: 93px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201509 {
|
.promo_mystery_201509 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -273px -1156px;
|
background-position: -836px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201510 {
|
.promo_mystery_201510 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -543px -241px;
|
background-position: -813px -665px;
|
||||||
width: 93px;
|
width: 93px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201511 {
|
.promo_mystery_201511 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -455px -1156px;
|
background-position: -1018px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201512 {
|
.promo_mystery_201512 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1408px -641px;
|
background-position: -452px -442px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 81px;
|
height: 81px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201601 {
|
.promo_mystery_201601 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -814px -181px;
|
background-position: -1236px -1082px;
|
||||||
width: 120px;
|
width: 120px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201602 {
|
.promo_mystery_201602 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -728px -1156px;
|
background-position: -1291px -1203px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201603 {
|
.promo_mystery_201603 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -819px -1156px;
|
background-position: 0px -1295px;
|
||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_mystery_3014 {
|
.promo_mystery_3014 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -732px;
|
background-position: -593px -417px;
|
||||||
width: 217px;
|
width: 217px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_orca {
|
.promo_orca {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1341px -342px;
|
background-position: -1236px -809px;
|
||||||
width: 105px;
|
width: 105px;
|
||||||
height: 105px;
|
height: 105px;
|
||||||
}
|
}
|
||||||
.promo_partyhats {
|
.promo_partyhats {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1343px -1006px;
|
background-position: -955px -759px;
|
||||||
width: 115px;
|
width: 115px;
|
||||||
height: 47px;
|
height: 47px;
|
||||||
}
|
}
|
||||||
.promo_pastel_skin {
|
.promo_pastel_skin {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -983px;
|
background-position: -724px -809px;
|
||||||
width: 330px;
|
width: 330px;
|
||||||
height: 83px;
|
height: 83px;
|
||||||
}
|
}
|
||||||
.customize-option.promo_pastel_skin {
|
.customize-option.promo_pastel_skin {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -25px -998px;
|
background-position: -749px -824px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
.promo_peppermint_flame {
|
.promo_peppermint_flame {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1331px -493px;
|
background-position: -1236px -447px;
|
||||||
width: 140px;
|
width: 140px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_pet_skins {
|
.promo_pet_skins {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -493px;
|
background-position: -1236px -299px;
|
||||||
width: 140px;
|
width: 140px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.customize-option.promo_pet_skins {
|
.customize-option.promo_pet_skins {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1215px -508px;
|
background-position: -1261px -314px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
.promo_shimmer_hair {
|
.promo_shimmer_hair {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -331px -983px;
|
background-position: -648px -912px;
|
||||||
width: 330px;
|
width: 330px;
|
||||||
height: 83px;
|
height: 83px;
|
||||||
}
|
}
|
||||||
.promo_splashyskins {
|
.promo_splashyskins {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -823px;
|
background-position: 0px -1203px;
|
||||||
width: 198px;
|
width: 198px;
|
||||||
height: 91px;
|
height: 91px;
|
||||||
}
|
}
|
||||||
.customize-option.promo_splashyskins {
|
.customize-option.promo_splashyskins {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1215px -838px;
|
background-position: -25px -1218px;
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
.promo_spring_classes_2016 {
|
.promo_spring_classes_2016 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -281px -724px;
|
background-position: 0px -809px;
|
||||||
width: 362px;
|
width: 362px;
|
||||||
height: 102px;
|
height: 102px;
|
||||||
}
|
}
|
||||||
.promo_springclasses2014 {
|
.promo_springclasses2014 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -644px -724px;
|
background-position: -289px -1112px;
|
||||||
width: 288px;
|
width: 288px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_springclasses2015 {
|
.promo_springclasses2015 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px 0px;
|
background-position: 0px -1112px;
|
||||||
width: 288px;
|
width: 288px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_summer_classes_2014 {
|
.promo_summer_classes_2014 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -621px;
|
background-position: 0px -706px;
|
||||||
width: 429px;
|
width: 429px;
|
||||||
height: 102px;
|
height: 102px;
|
||||||
}
|
}
|
||||||
.promo_summer_classes_2015 {
|
.promo_summer_classes_2015 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -1067px;
|
background-position: 0px -1023px;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 88px;
|
height: 88px;
|
||||||
}
|
}
|
||||||
.promo_updos {
|
.promo_updos {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -194px;
|
background-position: -1236px 0px;
|
||||||
width: 156px;
|
width: 156px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_veteran_pets {
|
.promo_veteran_pets {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px -775px;
|
background-position: -1236px -1006px;
|
||||||
width: 146px;
|
width: 146px;
|
||||||
height: 75px;
|
height: 75px;
|
||||||
}
|
}
|
||||||
.promo_winter_classes_2016 {
|
.promo_winter_classes_2016 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -499px -525px;
|
background-position: -363px -809px;
|
||||||
width: 360px;
|
width: 360px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
.promo_winterclasses2015 {
|
.promo_winterclasses2015 {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -872px;
|
background-position: 0px -912px;
|
||||||
width: 325px;
|
width: 325px;
|
||||||
height: 110px;
|
height: 110px;
|
||||||
}
|
}
|
||||||
.promo_winteryhair {
|
.promo_winteryhair {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -1190px -1006px;
|
background-position: -1236px -733px;
|
||||||
width: 152px;
|
width: 152px;
|
||||||
height: 75px;
|
height: 75px;
|
||||||
}
|
}
|
||||||
.avatar_variety {
|
.avatar_variety {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: 0px -525px;
|
background-position: -271px -525px;
|
||||||
width: 498px;
|
width: 498px;
|
||||||
height: 95px;
|
height: 95px;
|
||||||
}
|
}
|
||||||
.npc_viirus {
|
.npc_viirus {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -814px -272px;
|
background-position: -813px -386px;
|
||||||
width: 108px;
|
width: 108px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
@@ -420,19 +426,19 @@
|
|||||||
}
|
}
|
||||||
.welcome_basic_avatars {
|
.welcome_basic_avatars {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px 0px;
|
background-position: -955px -148px;
|
||||||
width: 246px;
|
width: 246px;
|
||||||
height: 165px;
|
height: 165px;
|
||||||
}
|
}
|
||||||
.welcome_promo_party {
|
.welcome_promo_party {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -672px 0px;
|
background-position: 0px -525px;
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 180px;
|
height: 180px;
|
||||||
}
|
}
|
||||||
.welcome_sample_tasks {
|
.welcome_sample_tasks {
|
||||||
background-image: url(spritesmith-largeSprites-0.png);
|
background-image: url(spritesmith-largeSprites-0.png);
|
||||||
background-position: -943px -166px;
|
background-position: -955px -314px;
|
||||||
width: 246px;
|
width: 246px;
|
||||||
height: 165px;
|
height: 165px;
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
common/dist/sprites/spritesmith-largeSprites-0.png
vendored
|
Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 263 KiB |
1200
common/dist/sprites/spritesmith-main-0.css
vendored
BIN
common/dist/sprites/spritesmith-main-0.png
vendored
|
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 309 KiB |
1452
common/dist/sprites/spritesmith-main-1.css
vendored
BIN
common/dist/sprites/spritesmith-main-1.png
vendored
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 61 KiB |
730
common/dist/sprites/spritesmith-main-10.css
vendored
BIN
common/dist/sprites/spritesmith-main-10.png
vendored
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 148 KiB |
664
common/dist/sprites/spritesmith-main-11.css
vendored
BIN
common/dist/sprites/spritesmith-main-11.png
vendored
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 159 KiB |
590
common/dist/sprites/spritesmith-main-12.css
vendored
@@ -1,420 +1,480 @@
|
|||||||
.Pet-TRex-Base {
|
.Pet-Spider-Base {
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -328px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-CottonCandyBlue {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -328px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-CottonCandyPink {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: 0px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Desert {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -82px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Golden {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -164px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Red {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -246px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Shade {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -328px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Skeleton {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -410px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-White {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -410px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TRex-Zombie {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -410px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Tiger-Veteran {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -82px 0px;
|
background-position: -82px 0px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-TigerCub-Base {
|
.Pet-Spider-CottonCandyBlue {
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -574px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-CottonCandyBlue {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -164px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-CottonCandyPink {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: 0px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Desert {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -82px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Golden {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -164px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Peppermint {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -246px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Red {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -246px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Shade {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: 0px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Skeleton {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -82px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Spooky {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -164px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-White {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -246px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-TigerCub-Zombie {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -328px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Turkey-Base {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -410px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Turkey-Gilded {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -492px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Base {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -492px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-CottonCandyBlue {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -492px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-CottonCandyPink {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -492px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Desert {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: 0px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Golden {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -82px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Red {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -164px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Shade {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -246px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Skeleton {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -328px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-White {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -410px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Unicorn-Zombie {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -492px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-Base {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: 0px 0px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-CottonCandyBlue {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -574px -100px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-CottonCandyPink {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -574px -200px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-Desert {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -574px -300px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-Golden {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
|
||||||
background-position: -574px -400px;
|
|
||||||
width: 81px;
|
|
||||||
height: 99px;
|
|
||||||
}
|
|
||||||
.Pet-Whale-Red {
|
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: 0px -500px;
|
background-position: 0px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Whale-Shade {
|
.Pet-Spider-CottonCandyPink {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -164px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Desert {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: 0px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Golden {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -82px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Red {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -164px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Shade {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -246px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Skeleton {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -246px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-White {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: 0px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Spider-Zombie {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -82px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Base {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-CottonCandyBlue {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-CottonCandyPink {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Desert {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Golden {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Red {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: 0px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Shade {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -82px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Skeleton {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -164px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-White {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -246px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TRex-Zombie {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Tiger-Veteran {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -164px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Base {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -246px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-CottonCandyBlue {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-CottonCandyPink {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Desert {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Golden {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: 0px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Peppermint {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -82px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Red {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -164px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Shade {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -246px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Skeleton {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Spooky {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-White {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-TigerCub-Zombie {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Turkey-Base {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Turkey-Gilded {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-Base {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-CottonCandyBlue {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-CottonCandyPink {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-Desert {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-Golden {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-Red {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: 0px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Unicorn-Shade {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -82px -500px;
|
background-position: -82px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Whale-Skeleton {
|
.Pet-Unicorn-Skeleton {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -164px -500px;
|
background-position: -164px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Whale-White {
|
.Pet-Unicorn-White {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -246px -500px;
|
background-position: -246px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Whale-Zombie {
|
.Pet-Unicorn-Zombie {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -328px -500px;
|
background-position: -328px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Base {
|
.Pet-Whale-Base {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -410px -500px;
|
background-position: -410px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-CottonCandyBlue {
|
.Pet-Whale-CottonCandyBlue {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -492px -500px;
|
background-position: -492px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-CottonCandyPink {
|
.Pet-Whale-CottonCandyPink {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -574px -500px;
|
background-position: -574px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Desert {
|
.Pet-Whale-Desert {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px 0px;
|
background-position: -656px 0px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Golden {
|
.Pet-Whale-Golden {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px -100px;
|
background-position: -656px -100px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Peppermint {
|
.Pet-Whale-Red {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px -200px;
|
background-position: -656px -200px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Red {
|
.Pet-Whale-Shade {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px -300px;
|
background-position: -656px -300px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Shade {
|
.Pet-Whale-Skeleton {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px -400px;
|
background-position: -656px -400px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Skeleton {
|
.Pet-Whale-White {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -656px -500px;
|
background-position: -656px -500px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Spooky {
|
.Pet-Whale-Zombie {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: 0px -600px;
|
background-position: 0px -600px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Veteran {
|
.Pet-Wolf-Base {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -82px -600px;
|
background-position: -82px -600px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-White {
|
.Pet-Wolf-CottonCandyBlue {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -164px -600px;
|
background-position: -164px -600px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
.Pet-Wolf-Zombie {
|
.Pet-Wolf-CottonCandyPink {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -246px -600px;
|
background-position: -246px -600px;
|
||||||
width: 81px;
|
width: 81px;
|
||||||
height: 99px;
|
height: 99px;
|
||||||
}
|
}
|
||||||
|
.Pet-Wolf-Desert {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -328px -600px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Golden {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -410px -600px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Peppermint {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -492px -600px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Red {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -574px -600px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Shade {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -656px -600px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Skeleton {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -738px 0px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Spooky {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -738px -100px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Veteran {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -738px -200px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-White {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -738px -300px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
|
.Pet-Wolf-Zombie {
|
||||||
|
background-image: url(spritesmith-main-12.png);
|
||||||
|
background-position: -738px -400px;
|
||||||
|
width: 81px;
|
||||||
|
height: 99px;
|
||||||
|
}
|
||||||
.Pet_HatchingPotion_Base {
|
.Pet_HatchingPotion_Base {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -377px -600px;
|
background-position: -738px -552px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_CottonCandyBlue {
|
.Pet_HatchingPotion_CottonCandyBlue {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -622px -600px;
|
background-position: -147px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_CottonCandyPink {
|
.Pet_HatchingPotion_CottonCandyPink {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -426px -600px;
|
background-position: -738px -604px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Desert {
|
.Pet_HatchingPotion_Desert {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -475px -600px;
|
background-position: 0px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Golden {
|
.Pet_HatchingPotion_Golden {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -524px -600px;
|
background-position: -49px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Peppermint {
|
.Pet_HatchingPotion_Peppermint {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -573px -600px;
|
background-position: -98px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Red {
|
.Pet_HatchingPotion_Red {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -328px -600px;
|
background-position: -738px -500px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Shade {
|
.Pet_HatchingPotion_Shade {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -671px -600px;
|
background-position: -196px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Skeleton {
|
.Pet_HatchingPotion_Skeleton {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -738px 0px;
|
background-position: -245px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Spooky {
|
.Pet_HatchingPotion_Spooky {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -738px -52px;
|
background-position: -294px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_White {
|
.Pet_HatchingPotion_White {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -738px -104px;
|
background-position: -343px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
.Pet_HatchingPotion_Zombie {
|
.Pet_HatchingPotion_Zombie {
|
||||||
background-image: url(spritesmith-main-12.png);
|
background-image: url(spritesmith-main-12.png);
|
||||||
background-position: -738px -156px;
|
background-position: -392px -700px;
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 51px;
|
height: 51px;
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
common/dist/sprites/spritesmith-main-12.png
vendored
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 33 KiB |
6696
common/dist/sprites/spritesmith-main-2.css
vendored
BIN
common/dist/sprites/spritesmith-main-2.png
vendored
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
6770
common/dist/sprites/spritesmith-main-3.css
vendored
BIN
common/dist/sprites/spritesmith-main-3.png
vendored
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 137 KiB |
1054
common/dist/sprites/spritesmith-main-4.css
vendored
BIN
common/dist/sprites/spritesmith-main-4.png
vendored
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 131 KiB |
928
common/dist/sprites/spritesmith-main-5.css
vendored
BIN
common/dist/sprites/spritesmith-main-5.png
vendored
|
Before Width: | Height: | Size: 323 KiB After Width: | Height: | Size: 322 KiB |
698
common/dist/sprites/spritesmith-main-6.css
vendored
BIN
common/dist/sprites/spritesmith-main-6.png
vendored
|
Before Width: | Height: | Size: 234 KiB After Width: | Height: | Size: 241 KiB |
532
common/dist/sprites/spritesmith-main-7.css
vendored
BIN
common/dist/sprites/spritesmith-main-7.png
vendored
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 140 KiB |
842
common/dist/sprites/spritesmith-main-8.css
vendored
BIN
common/dist/sprites/spritesmith-main-8.png
vendored
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 144 KiB |
632
common/dist/sprites/spritesmith-main-9.css
vendored
BIN
common/dist/sprites/spritesmith-main-9.png
vendored
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 650 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 802 B |
|
After Width: | Height: | Size: 833 B |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 632 B |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 625 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
@@ -162,5 +162,6 @@
|
|||||||
"alreadyUnlocked": "Item already unlocked",
|
"alreadyUnlocked": "Item already unlocked",
|
||||||
"cannotRevive": "Cannot revive if not dead",
|
"cannotRevive": "Cannot revive if not dead",
|
||||||
"rebirthComplete": "You have been reborn!",
|
"rebirthComplete": "You have been reborn!",
|
||||||
"petNotOwned": "You do not own this pet."
|
"petNotOwned": "You do not own this pet.",
|
||||||
|
"rerollComplete": "Reroll complete!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,6 +175,14 @@
|
|||||||
"backgroundRainforestText": "Rainforest",
|
"backgroundRainforestText": "Rainforest",
|
||||||
"backgroundRainforestNotes": "Venture into a Rainforest.",
|
"backgroundRainforestNotes": "Venture into a Rainforest.",
|
||||||
"backgroundStoneCircleText": "Circle of Stones",
|
"backgroundStoneCircleText": "Circle of Stones",
|
||||||
"backgroundStoneCircleNotes": "Cast spells in a Circle of Stones."
|
"backgroundStoneCircleNotes": "Cast spells in a Circle of Stones.",
|
||||||
|
|
||||||
|
"backgrounds042016": "SET 23: Released April 2016",
|
||||||
|
"backgroundArcheryRangeText": "Archery Range",
|
||||||
|
"backgroundArcheryRangeNotes": "Practice on the Archery Range.",
|
||||||
|
"backgroundGiantFlowersText": "Giant Flowers",
|
||||||
|
"backgroundGiantFlowersNotes": "Frolic atop Giant Flowers.",
|
||||||
|
"backgroundRainbowsEndText": "End of the Rainbow",
|
||||||
|
"backgroundRainbowsEndNotes": "Discover gold at the End of the Rainbow."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -206,6 +206,8 @@
|
|||||||
"weaponArmoireJesterBatonNotes": "With a wave of your baton and some witty repartee, even the most complicated situations become clear. Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Jester Set (Item 3 of 3).",
|
"weaponArmoireJesterBatonNotes": "With a wave of your baton and some witty repartee, even the most complicated situations become clear. Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Jester Set (Item 3 of 3).",
|
||||||
"weaponArmoireMiningPickaxText": "Mining Pickax",
|
"weaponArmoireMiningPickaxText": "Mining Pickax",
|
||||||
"weaponArmoireMiningPickaxNotes": "Mine the maximum amount of gold from your tasks! Increases Perception by <%= per %>. Enchanted Armoire: Miner Set (Item 3 of 3).",
|
"weaponArmoireMiningPickaxNotes": "Mine the maximum amount of gold from your tasks! Increases Perception by <%= per %>. Enchanted Armoire: Miner Set (Item 3 of 3).",
|
||||||
|
"weaponArmoireBasicLongbowText": "Basic Longbow",
|
||||||
|
"weaponArmoireBasicLongbowNotes": "A serviceable hand-me-down bow. Increases Strength by <%= str %>. Enchanted Armoire: Basic Archer Set (Item 1 of 3).",
|
||||||
|
|
||||||
"armor": "armor",
|
"armor": "armor",
|
||||||
|
|
||||||
@@ -429,6 +431,8 @@
|
|||||||
"armorArmoireJesterCostumeNotes": "Tra-la-la! Despite the look of this costume, you are no fool. Increases Intelligence by <%= int %>. Enchanted Armoire: Jester Set (Item 2 of 3).",
|
"armorArmoireJesterCostumeNotes": "Tra-la-la! Despite the look of this costume, you are no fool. Increases Intelligence by <%= int %>. Enchanted Armoire: Jester Set (Item 2 of 3).",
|
||||||
"armorArmoireMinerOverallsText": "Miner Overalls",
|
"armorArmoireMinerOverallsText": "Miner Overalls",
|
||||||
"armorArmoireMinerOverallsNotes": "They may seem worn, but they are enchanted to repel dirt. Increases Constitution by <%= con %>. Enchanted Armoire: Miner Set (Item 2 of 3).",
|
"armorArmoireMinerOverallsNotes": "They may seem worn, but they are enchanted to repel dirt. Increases Constitution by <%= con %>. Enchanted Armoire: Miner Set (Item 2 of 3).",
|
||||||
|
"armorArmoireBasicArcherArmorText": "Basic Archer Armor",
|
||||||
|
"armorArmoireBasicArcherArmorNotes": "This camouflaged vest lets you slip unnoticed through the forests. Increases Perception by <%= per %>. Enchanted Armoire: Basic Archer Set (Item 2 of 3).",
|
||||||
|
|
||||||
"headgear": "headgear",
|
"headgear": "headgear",
|
||||||
|
|
||||||
@@ -666,6 +670,8 @@
|
|||||||
"headArmoireJesterCapNotes": "The bells on this hat might distract your opponents, but they just help you focus. Increases Perception by <%= per %>. Enchanted Armoire: Jester Set (Item 1 of 3).",
|
"headArmoireJesterCapNotes": "The bells on this hat might distract your opponents, but they just help you focus. Increases Perception by <%= per %>. Enchanted Armoire: Jester Set (Item 1 of 3).",
|
||||||
"headArmoireMinerHelmetText": "Miner Helmet",
|
"headArmoireMinerHelmetText": "Miner Helmet",
|
||||||
"headArmoireMinerHelmetNotes": "Protect your head from falling tasks! Increases Intelligence by <%= int %>. Enchanted Armoire: Miner Set (Item 1 of 3).",
|
"headArmoireMinerHelmetNotes": "Protect your head from falling tasks! Increases Intelligence by <%= int %>. Enchanted Armoire: Miner Set (Item 1 of 3).",
|
||||||
|
"headArmoireBasicArcherCapText": "Basic Archer Cap",
|
||||||
|
"headArmoireBasicArcherCapNotes": "No archer would be complete without a jaunty cap! Increases Perception by <%= per %>. Enchanted Armoire: Basic Archer Set (Item 3 of 3).",
|
||||||
|
|
||||||
"offhand": "shield-hand item",
|
"offhand": "shield-hand item",
|
||||||
|
|
||||||
@@ -901,6 +907,9 @@
|
|||||||
"headAccessoryMystery301405Text": "Headwear Goggles",
|
"headAccessoryMystery301405Text": "Headwear Goggles",
|
||||||
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
|
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
|
||||||
|
|
||||||
|
"headAccessoryArmoireComicalArrowText": "Comical Arrow",
|
||||||
|
"headAccessoryArmoireComicalArrowNotes": "This whimsical item doesn't provide a stat boost, but it sure is good for a laugh! Confers no benefit. Enchanted Armoire: Independent Item.",
|
||||||
|
|
||||||
"eyewear": "Eyewear",
|
"eyewear": "Eyewear",
|
||||||
"eyewearBase0Text": "No Eyewear",
|
"eyewearBase0Text": "No Eyewear",
|
||||||
"eyewearBase0Notes": "No Eyewear.",
|
"eyewearBase0Notes": "No Eyewear.",
|
||||||
|
|||||||
@@ -311,6 +311,20 @@ let backgrounds = {
|
|||||||
notes: t('backgroundStoneCircleNotes'),
|
notes: t('backgroundStoneCircleNotes'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
backgrounds042016: {
|
||||||
|
archery_range: {
|
||||||
|
text: t('backgroundArcheryRangeText'),
|
||||||
|
notes: t('backgroundArcheryRangeNotes'),
|
||||||
|
},
|
||||||
|
giant_florals: {
|
||||||
|
text: t('backgroundGiantFlowersText'),
|
||||||
|
notes: t('backgroundGiantFlowersNotes'),
|
||||||
|
},
|
||||||
|
rainbows_end: {
|
||||||
|
text: t('backgroundRainbowsEndText'),
|
||||||
|
notes: t('backgroundRainbowsEndNotes'),
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
/* eslint-enable quote-props */
|
/* eslint-enable quote-props */
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ import {headAccessory as baseHeadAccessory} from './sets/base';
|
|||||||
|
|
||||||
import {headAccessory as specialHeadAccessory} from './sets/special';
|
import {headAccessory as specialHeadAccessory} from './sets/special';
|
||||||
import {headAccessory as mysteryHeadAccessory} from './sets/mystery';
|
import {headAccessory as mysteryHeadAccessory} from './sets/mystery';
|
||||||
|
import {headAccessory as armoireHeadAccessory} from './sets/armoire';
|
||||||
|
|
||||||
let headAccessory = {
|
let headAccessory = {
|
||||||
base: baseHeadAccessory,
|
base: baseHeadAccessory,
|
||||||
special: specialHeadAccessory,
|
special: specialHeadAccessory,
|
||||||
mystery: mysteryHeadAccessory,
|
mystery: mysteryHeadAccessory,
|
||||||
|
armoire: armoireHeadAccessory,
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = headAccessory;
|
module.exports = headAccessory;
|
||||||
|
|||||||
@@ -118,6 +118,14 @@ let armor = {
|
|||||||
set: 'miner',
|
set: 'miner',
|
||||||
canOwn: ownsItem('armor_armoire_minerOveralls'),
|
canOwn: ownsItem('armor_armoire_minerOveralls'),
|
||||||
},
|
},
|
||||||
|
basicArcherArmor: {
|
||||||
|
text: t('armorArmoireBasicArcherArmorText'),
|
||||||
|
notes: t('armorArmoireBasicArcherArmorNotes', { per: 12 }),
|
||||||
|
value: 100,
|
||||||
|
per: 12,
|
||||||
|
set: 'basicArcher',
|
||||||
|
canOwn: ownsItem('armor_armoire_basicArcherArmor'),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
let eyewear = {
|
let eyewear = {
|
||||||
@@ -314,6 +322,14 @@ let head = {
|
|||||||
set: 'miner',
|
set: 'miner',
|
||||||
canOwn: ownsItem('head_armoire_minerHelmet'),
|
canOwn: ownsItem('head_armoire_minerHelmet'),
|
||||||
},
|
},
|
||||||
|
basicArcherCap: {
|
||||||
|
text: t('headArmoireBasicArcherCapText'),
|
||||||
|
notes: t('headArmoireBasicArcherCapNotes', { per: 6 }),
|
||||||
|
value: 100,
|
||||||
|
per: 6,
|
||||||
|
set: 'basicArcher',
|
||||||
|
canOwn: ownsItem('head_armoire_basicArcherCap'),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
let shield = {
|
let shield = {
|
||||||
@@ -361,6 +377,15 @@ let shield = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let headAccessory = {
|
||||||
|
comicalArrow: {
|
||||||
|
text: t('headAccessoryArmoireComicalArrowText'),
|
||||||
|
notes: t('headAccessoryArmoireComicalArrowNotes'),
|
||||||
|
value: 100,
|
||||||
|
canOwn: ownsItem('headAccessory_armoire_comicalArrow'),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
let weapon = {
|
let weapon = {
|
||||||
basicCrossbow: {
|
basicCrossbow: {
|
||||||
text: t('weaponArmoireBasicCrossbowText'),
|
text: t('weaponArmoireBasicCrossbowText'),
|
||||||
@@ -476,6 +501,7 @@ let weapon = {
|
|||||||
value: 100,
|
value: 100,
|
||||||
int: 8,
|
int: 8,
|
||||||
per: 8,
|
per: 8,
|
||||||
|
set: 'jester',
|
||||||
canOwn: ownsItem('weapon_armoire_jesterBaton'),
|
canOwn: ownsItem('weapon_armoire_jesterBaton'),
|
||||||
},
|
},
|
||||||
miningPickax: {
|
miningPickax: {
|
||||||
@@ -483,14 +509,25 @@ let weapon = {
|
|||||||
notes: t('weaponArmoireMiningPickaxNotes', { per: 15 }),
|
notes: t('weaponArmoireMiningPickaxNotes', { per: 15 }),
|
||||||
value: 100,
|
value: 100,
|
||||||
per: 15,
|
per: 15,
|
||||||
|
set: 'miner',
|
||||||
canOwn: ownsItem('weapon_armoire_miningPickax'),
|
canOwn: ownsItem('weapon_armoire_miningPickax'),
|
||||||
},
|
},
|
||||||
|
basicLongbow: {
|
||||||
|
text: t('weaponArmoireBasicLongbowText'),
|
||||||
|
notes: t('weaponArmoireBasicLongbowNotes', { str: 6 }),
|
||||||
|
value: 100,
|
||||||
|
str: 6,
|
||||||
|
twoHanded: true,
|
||||||
|
set: 'basicArcher',
|
||||||
|
canOwn: ownsItem('weapon_armoire_basicLongbow'),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
let armoireSet = {
|
let armoireSet = {
|
||||||
armor,
|
armor,
|
||||||
eyewear,
|
eyewear,
|
||||||
head,
|
head,
|
||||||
|
headAccessory,
|
||||||
shield,
|
shield,
|
||||||
weapon,
|
weapon,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ import sell from './ops/sell';
|
|||||||
import unlock from './ops/unlock';
|
import unlock from './ops/unlock';
|
||||||
import revive from './ops/revive';
|
import revive from './ops/revive';
|
||||||
import rebirth from './ops/rebirth';
|
import rebirth from './ops/rebirth';
|
||||||
|
import reroll from './ops/reroll';
|
||||||
|
|
||||||
api.ops = {
|
api.ops = {
|
||||||
scoreTask,
|
scoreTask,
|
||||||
@@ -146,6 +147,7 @@ api.ops = {
|
|||||||
unlock,
|
unlock,
|
||||||
revive,
|
revive,
|
||||||
rebirth,
|
rebirth,
|
||||||
|
reroll,
|
||||||
};
|
};
|
||||||
|
|
||||||
import handleTwoHanded from './fns/handleTwoHanded';
|
import handleTwoHanded from './fns/handleTwoHanded';
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
NotAuthorized,
|
NotAuthorized,
|
||||||
} from '../libs/errors';
|
} from '../libs/errors';
|
||||||
import splitWhitespace from '../libs/splitWhitespace';
|
import splitWhitespace from '../libs/splitWhitespace';
|
||||||
|
import _ from 'lodash';
|
||||||
|
|
||||||
module.exports = function releaseBoth (user, req = {}, analytics) {
|
module.exports = function releaseBoth (user, req = {}, analytics) {
|
||||||
let animal;
|
let animal;
|
||||||
@@ -20,15 +21,15 @@ module.exports = function releaseBoth (user, req = {}, analytics) {
|
|||||||
uuid: user._id,
|
uuid: user._id,
|
||||||
acquireMethod: 'Gems',
|
acquireMethod: 'Gems',
|
||||||
gemCost: 6,
|
gemCost: 6,
|
||||||
category: 'behavior'
|
category: 'behavior',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
user.balance -= 1.5;
|
user.balance -= 1.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.items.currentMount = "";
|
user.items.currentMount = '';
|
||||||
user.items.currentPet = "";
|
user.items.currentPet = '';
|
||||||
|
|
||||||
for (animal in content.pets) {
|
for (animal in content.pets) {
|
||||||
if (user.items.pets[animal] === -1) {
|
if (user.items.pets[animal] === -1) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
NotAuthorized,
|
NotAuthorized,
|
||||||
} from '../libs/errors';
|
} from '../libs/errors';
|
||||||
import splitWhitespace from '../libs/splitWhitespace';
|
import splitWhitespace from '../libs/splitWhitespace';
|
||||||
|
import _ from 'lodash';
|
||||||
|
|
||||||
module.exports = function releaseMounts (user, req = {}, analytics) {
|
module.exports = function releaseMounts (user, req = {}, analytics) {
|
||||||
let mount;
|
let mount;
|
||||||
@@ -29,7 +30,7 @@ module.exports = function releaseMounts (user, req = {}, analytics) {
|
|||||||
uuid: user._id,
|
uuid: user._id,
|
||||||
acquireMethod: 'Gems',
|
acquireMethod: 'Gems',
|
||||||
gemCost: 4,
|
gemCost: 4,
|
||||||
category: 'behavior'
|
category: 'behavior',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
NotAuthorized,
|
NotAuthorized,
|
||||||
} from '../libs/errors';
|
} from '../libs/errors';
|
||||||
import splitWhitespace from '../libs/splitWhitespace';
|
import splitWhitespace from '../libs/splitWhitespace';
|
||||||
|
import _ from 'lodash';
|
||||||
|
|
||||||
module.exports = function releasePets (user, req = {}, analytics) {
|
module.exports = function releasePets (user, req = {}, analytics) {
|
||||||
if (user.balance < 1) {
|
if (user.balance < 1) {
|
||||||
@@ -27,7 +28,7 @@ module.exports = function releasePets (user, req = {}, analytics) {
|
|||||||
uuid: user._id,
|
uuid: user._id,
|
||||||
acquireMethod: 'Gems',
|
acquireMethod: 'Gems',
|
||||||
gemCost: 4,
|
gemCost: 4,
|
||||||
category: 'behavior'
|
category: 'behavior',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,36 @@
|
|||||||
import i18n from '../i18n';
|
import i18n from '../i18n';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import {
|
||||||
|
NotAuthorized,
|
||||||
|
} from '../libs/errors';
|
||||||
|
|
||||||
module.exports = function(user, req, cb, analytics) {
|
module.exports = function reroll (user, tasks = [], req = {}, analytics) {
|
||||||
var analyticsData;
|
|
||||||
if (user.balance < 1) {
|
if (user.balance < 1) {
|
||||||
return typeof cb === "function" ? cb({
|
throw new NotAuthorized(i18n.t('notEnoughGems', req.language));
|
||||||
code: 401,
|
|
||||||
message: i18n.t('notEnoughGems', req.language)
|
|
||||||
}) : void 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user.balance--;
|
user.balance--;
|
||||||
_.each(user.tasks, function(task) {
|
user.stats.hp = 50;
|
||||||
|
|
||||||
|
_.each(tasks, function resetTaskValues (task) {
|
||||||
if (task.type !== 'reward') {
|
if (task.type !== 'reward') {
|
||||||
return task.value = 0;
|
task.value = 0;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
user.stats.hp = 50;
|
|
||||||
analyticsData = {
|
if (analytics) {
|
||||||
|
analytics.track('Fortify Potion', {
|
||||||
uuid: user._id,
|
uuid: user._id,
|
||||||
acquireMethod: 'Gems',
|
acquireMethod: 'Gems',
|
||||||
gemCost: 4,
|
gemCost: 4,
|
||||||
category: 'behavior'
|
category: 'behavior',
|
||||||
};
|
});
|
||||||
if (analytics != null) {
|
|
||||||
analytics.track('Fortify Potion', analyticsData);
|
|
||||||
}
|
}
|
||||||
return typeof cb === "function" ? cb(null, user) : void 0;
|
|
||||||
|
let response = {
|
||||||
|
data: {user, tasks},
|
||||||
|
message: i18n.t('rerollComplete'),
|
||||||
|
};
|
||||||
|
|
||||||
|
return response;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"MWS_KEY": "",
|
"MWS_KEY": "",
|
||||||
"MWS_SECRET": ""
|
"MWS_SECRET": ""
|
||||||
},
|
},
|
||||||
"FLAG_REPORT_EMAIL": ["email@mod.com"],
|
"FLAG_REPORT_EMAIL": "email@mod.com,email2@mod.com",
|
||||||
"EMAIL_SERVER": {
|
"EMAIL_SERVER": {
|
||||||
"url": "http://example.com",
|
"url": "http://example.com",
|
||||||
"authUser": "user",
|
"authUser": "user",
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
"mongoose-id-autoinc": "~2013.7.14-4",
|
"mongoose-id-autoinc": "~2013.7.14-4",
|
||||||
"morgan": "^1.7.0",
|
"morgan": "^1.7.0",
|
||||||
"nconf": "~0.8.2",
|
"nconf": "~0.8.2",
|
||||||
"newrelic": "~1.25.0",
|
"newrelic": "~1.26.1",
|
||||||
"nib": "~1.0.1",
|
"nib": "~1.0.1",
|
||||||
"nodemailer": "^1.9.0",
|
"nodemailer": "^1.9.0",
|
||||||
"object-path": "^0.9.2",
|
"object-path": "^0.9.2",
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ const COMMON_FILES = [
|
|||||||
'!./common/script/ops/blockUser.js',
|
'!./common/script/ops/blockUser.js',
|
||||||
'!./common/script/ops/clearPMs.js',
|
'!./common/script/ops/clearPMs.js',
|
||||||
'!./common/script/ops/deletePM.js',
|
'!./common/script/ops/deletePM.js',
|
||||||
'!./common/script/ops/releaseBoth.js',
|
|
||||||
'!./common/script/ops/releaseMounts.js',
|
|
||||||
'!./common/script/ops/releasePets.js',
|
|
||||||
'!./common/script/ops/reroll.js',
|
|
||||||
'!./common/script/ops/reset.js',
|
'!./common/script/ops/reset.js',
|
||||||
'!./common/script/fns/crit.js',
|
'!./common/script/fns/crit.js',
|
||||||
'!./common/script/fns/randomDrop.js',
|
'!./common/script/fns/randomDrop.js',
|
||||||
|
|||||||
54
test/api/v3/integration/user/POST-user_reroll.test.js
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
import {
|
||||||
|
generateUser,
|
||||||
|
generateDaily,
|
||||||
|
generateReward,
|
||||||
|
translate as t,
|
||||||
|
} from '../../../../helpers/api-integration/v3';
|
||||||
|
|
||||||
|
describe('POST /user/reroll', () => {
|
||||||
|
let user;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
user = await generateUser();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns an error when user balance is too low', async () => {
|
||||||
|
await expect(user.post('/user/reroll'))
|
||||||
|
.to.eventually.be.rejected.and.to.eql({
|
||||||
|
code: 401,
|
||||||
|
error: 'NotAuthorized',
|
||||||
|
message: t('notEnoughGems'),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// More tests in common code unit tests
|
||||||
|
|
||||||
|
it('resets user\'s tasks', async () => {
|
||||||
|
await user.update({
|
||||||
|
balance: 2,
|
||||||
|
});
|
||||||
|
|
||||||
|
let daily = await generateDaily({
|
||||||
|
text: 'test habit',
|
||||||
|
type: 'daily',
|
||||||
|
userId: user._id,
|
||||||
|
});
|
||||||
|
|
||||||
|
let reward = await generateReward({
|
||||||
|
text: 'test reward',
|
||||||
|
type: 'reward',
|
||||||
|
value: 1,
|
||||||
|
userId: user._id,
|
||||||
|
});
|
||||||
|
|
||||||
|
let response = await user.post('/user/reroll');
|
||||||
|
await user.sync();
|
||||||
|
|
||||||
|
let updatedDaily = await user.get(`/tasks/${daily._id}`);
|
||||||
|
let updatedReward = await user.get(`/tasks/${reward._id}`);
|
||||||
|
|
||||||
|
expect(response.message).to.equal(t('rerollComplete'));
|
||||||
|
expect(updatedDaily.value).to.equal(0);
|
||||||
|
expect(updatedReward.value).to.equal(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
63
test/common/ops/reroll.js
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import reroll from '../../../common/script/ops/reroll';
|
||||||
|
import i18n from '../../../common/script/i18n';
|
||||||
|
import {
|
||||||
|
generateUser,
|
||||||
|
generateDaily,
|
||||||
|
generateReward,
|
||||||
|
} from '../../helpers/common.helper';
|
||||||
|
import {
|
||||||
|
NotAuthorized,
|
||||||
|
} from '../../../common/script/libs/errors';
|
||||||
|
|
||||||
|
describe('shared.ops.reroll', () => {
|
||||||
|
let user;
|
||||||
|
let tasks = [];
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
user = generateUser();
|
||||||
|
user.balance = 1;
|
||||||
|
tasks = [generateDaily(), generateReward()];
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns an error when user balance is too low', (done) => {
|
||||||
|
user.balance = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
reroll(user);
|
||||||
|
} catch (err) {
|
||||||
|
expect(err).to.be.an.instanceof(NotAuthorized);
|
||||||
|
expect(err.message).to.equal(i18n.t('notEnoughGems'));
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('rerolls a user with enough gems', () => {
|
||||||
|
let response = reroll(user);
|
||||||
|
|
||||||
|
expect(response.message).to.equal(i18n.t('rerollComplete'));
|
||||||
|
});
|
||||||
|
|
||||||
|
it('reduces a user\'s balance', () => {
|
||||||
|
reroll(user);
|
||||||
|
|
||||||
|
expect(user.balance).to.equal(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('resets a user\'s health points', () => {
|
||||||
|
user.stats.hp = 40;
|
||||||
|
|
||||||
|
reroll(user);
|
||||||
|
|
||||||
|
expect(user.stats.hp).to.equal(50);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('resets user\'s taks values except for rewards to 0', () => {
|
||||||
|
tasks[0].value = 1;
|
||||||
|
tasks[1].value = 1;
|
||||||
|
|
||||||
|
reroll(user, tasks);
|
||||||
|
|
||||||
|
expect(tasks[0].value).to.equal(0);
|
||||||
|
expect(tasks[1].value).to.equal(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -407,6 +407,10 @@ for $stage in $stages
|
|||||||
form
|
form
|
||||||
margin-bottom: 0 // stupid bootstrap override
|
margin-bottom: 0 // stupid bootstrap override
|
||||||
|
|
||||||
|
.task textarea.form-control
|
||||||
|
position: relative
|
||||||
|
z-index: 50
|
||||||
|
|
||||||
[class$="-options"]
|
[class$="-options"]
|
||||||
padding: 1em 1em 0
|
padding: 1em 1em 0
|
||||||
color: #333
|
color: #333
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ var partyFields = api.partyFields = 'profile preferences stats achievements part
|
|||||||
var nameFields = 'profile.name';
|
var nameFields = 'profile.name';
|
||||||
var challengeFields = '_id name';
|
var challengeFields = '_id name';
|
||||||
var guildPopulate = {path: 'members', select: nameFields, options: {limit: 15} };
|
var guildPopulate = {path: 'members', select: nameFields, options: {limit: 15} };
|
||||||
|
const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map(email => {return {email, canSend: true}});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For parties, we want a lot of member details so we can show their avatars in the header. For guilds, we want very
|
* For parties, we want a lot of member details so we can show their avatars in the header. For guilds, we want very
|
||||||
* limited fields - and only a sampling of the members, beacuse they can be in the thousands
|
* limited fields - and only a sampling of the members, beacuse they can be in the thousands
|
||||||
@@ -403,18 +405,8 @@ api.flagChatMessage = function(req, res, next){
|
|||||||
'chat.$.flagCount': message.flagCount,
|
'chat.$.flagCount': message.flagCount,
|
||||||
}}, function(err) {
|
}}, function(err) {
|
||||||
if (err) return next(err);
|
if (err) return next(err);
|
||||||
var addressesToSendTo = nconf.get('FLAG_REPORT_EMAIL');
|
|
||||||
addressesToSendTo = (typeof addressesToSendTo == 'string') ? JSON.parse(addressesToSendTo) : addressesToSendTo;
|
|
||||||
|
|
||||||
if(Array.isArray(addressesToSendTo)){
|
utils.txnEmail(FLAG_REPORT_EMAILS, 'flag-report-to-mods', [
|
||||||
addressesToSendTo = addressesToSendTo.map(function(email){
|
|
||||||
return {email: email, canSend: true}
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
addressesToSendTo = {email: addressesToSendTo}
|
|
||||||
}
|
|
||||||
|
|
||||||
utils.txnEmail(addressesToSendTo, 'flag-report-to-mods', [
|
|
||||||
{name: "MESSAGE_TIME", content: (new Date(message.timestamp)).toString()},
|
{name: "MESSAGE_TIME", content: (new Date(message.timestamp)).toString()},
|
||||||
{name: "MESSAGE_TEXT", content: message.text},
|
{name: "MESSAGE_TEXT", content: message.text},
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ import { removeFromArray } from '../../libs/api-v3/collectionManipulators';
|
|||||||
import { sendTxn } from '../../libs/api-v3/email';
|
import { sendTxn } from '../../libs/api-v3/email';
|
||||||
import nconf from 'nconf';
|
import nconf from 'nconf';
|
||||||
|
|
||||||
|
const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email) => {
|
||||||
|
return { email, canSend: true };
|
||||||
|
});
|
||||||
|
|
||||||
let api = {};
|
let api = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -200,17 +204,6 @@ api.flagChat = {
|
|||||||
update
|
update
|
||||||
);
|
);
|
||||||
|
|
||||||
let addressesToSendTo = nconf.get('FLAG_REPORT_EMAIL');
|
|
||||||
addressesToSendTo = typeof addressesToSendTo === 'string' ? JSON.parse(addressesToSendTo) : addressesToSendTo;
|
|
||||||
|
|
||||||
if (Array.isArray(addressesToSendTo)) {
|
|
||||||
addressesToSendTo = addressesToSendTo.map((email) => {
|
|
||||||
return {email, canSend: true};
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
addressesToSendTo = {email: addressesToSendTo};
|
|
||||||
}
|
|
||||||
|
|
||||||
let reporterEmailContent;
|
let reporterEmailContent;
|
||||||
if (user.auth.local) {
|
if (user.auth.local) {
|
||||||
reporterEmailContent = user.auth.local.email;
|
reporterEmailContent = user.auth.local.email;
|
||||||
@@ -234,7 +227,7 @@ api.flagChat = {
|
|||||||
groupUrl = 'party';
|
groupUrl = 'party';
|
||||||
}
|
}
|
||||||
|
|
||||||
sendTxn(addressesToSendTo, 'flag-report-to-mods', [
|
sendTxn(FLAG_REPORT_EMAILS, 'flag-report-to-mods', [
|
||||||
{name: 'MESSAGE_TIME', content: (new Date(message.timestamp)).toString()},
|
{name: 'MESSAGE_TIME', content: (new Date(message.timestamp)).toString()},
|
||||||
{name: 'MESSAGE_TEXT', content: message.text},
|
{name: 'MESSAGE_TEXT', content: message.text},
|
||||||
|
|
||||||
|
|||||||
@@ -974,4 +974,34 @@ api.userRebirth = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @api {post} /user/reroll Rerolls a user.
|
||||||
|
* @apiVersion 3.0.0
|
||||||
|
* @apiName UserReroll
|
||||||
|
* @apiGroup User
|
||||||
|
*
|
||||||
|
* @apiSuccess {Object} data `user`
|
||||||
|
*/
|
||||||
|
api.userReroll = {
|
||||||
|
method: 'POST',
|
||||||
|
middlewares: [authWithHeaders(), cron],
|
||||||
|
url: '/user/reroll',
|
||||||
|
async handler (req, res) {
|
||||||
|
let user = res.locals.user;
|
||||||
|
let query = {
|
||||||
|
userId: user._id,
|
||||||
|
type: {$in: ['daily', 'habit', 'todo']},
|
||||||
|
};
|
||||||
|
let tasks = await Tasks.Task.find(query).exec();
|
||||||
|
let rerollResponse = common.ops.reroll(user, tasks, req, res.analytics);
|
||||||
|
|
||||||
|
let promises = tasks.map(task => task.save());
|
||||||
|
promises.push(user.save());
|
||||||
|
|
||||||
|
await Q.all(promises);
|
||||||
|
|
||||||
|
res.respond(200, rerollResponse);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = api;
|
module.exports = api;
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ if (nconf.get('LOGGLY:enabled')){
|
|||||||
if (logger == null) {
|
if (logger == null) {
|
||||||
logger = new (winston.Logger)({});
|
logger = new (winston.Logger)({});
|
||||||
if (nconf.get('NODE_ENV') == 'production') {
|
if (nconf.get('NODE_ENV') == 'production') {
|
||||||
//logger.add(winston.transports.newrelic, {});
|
|
||||||
if (!nconf.get('DISABLE_ERROR_EMAILS') && false) {
|
if (!nconf.get('DISABLE_ERROR_EMAILS') && false) {
|
||||||
logger.add(winston.transports.Mail, {
|
logger.add(winston.transports.Mail, {
|
||||||
to: nconf.get('ADMIN_EMAIL') || nconf.get('SMTP_USER'),
|
to: nconf.get('ADMIN_EMAIL') || nconf.get('SMTP_USER'),
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const nconf = require('nconf');
|
|||||||
// more info here https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration
|
// more info here https://docs.newrelic.com/docs/agents/nodejs-agent/installation-configuration/nodejs-agent-configuration
|
||||||
|
|
||||||
exports.config = {
|
exports.config = {
|
||||||
app_name: ['Habitica'], // eslint-disable-line camelcase
|
app_name: nconf.get('NEW_RELIC_APP_NAME'), // eslint-disable-line camelcase
|
||||||
license_key: nconf.get('NEW_RELIC_LICENSE_KEY'), // eslint-disable-line camelcase
|
license_key: nconf.get('NEW_RELIC_LICENSE_KEY'), // eslint-disable-line camelcase
|
||||||
logging: {
|
logging: {
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -12,20 +12,22 @@ module.exports = function(server,mongoose) {
|
|||||||
useAvg = false, // use average over 3 minutes, or simply the last minute's report
|
useAvg = false, // use average over 3 minutes, or simply the last minute's report
|
||||||
url = 'https://api.newrelic.com/v2/applications/'+nconf.get('NEW_RELIC_APPLICATION_ID')+'/metrics/data.json?names[]=Apdex&values[]=score';
|
url = 'https://api.newrelic.com/v2/applications/'+nconf.get('NEW_RELIC_APPLICATION_ID')+'/metrics/data.json?names[]=Apdex&values[]=score';
|
||||||
setInterval(function(){
|
setInterval(function(){
|
||||||
// TODO, DISABLED UNTIL NEW RELIC IS ADDED AGAIN
|
|
||||||
// see https://docs.newrelic.com/docs/apm/apis/api-v2-examples/average-response-time-examples-api-v2, https://rpm.newrelic.com/api/explore/applications/data
|
// see https://docs.newrelic.com/docs/apm/apis/api-v2-examples/average-response-time-examples-api-v2, https://rpm.newrelic.com/api/explore/applications/data
|
||||||
/*request({
|
request({
|
||||||
url: useAvg ? url+'&from='+moment().subtract({minutes:mins}).utc().format()+'&to='+moment().utc().format()+'&summarize=true' : url,
|
url: useAvg ? url+'&from='+moment().subtract({minutes:mins}).utc().format()+'&to='+moment().utc().format()+'&summarize=true' : url,
|
||||||
headers: {'X-Api-Key': nconf.get('NEW_RELIC_API_KEY')}
|
headers: {'X-Api-Key': nconf.get('NEW_RELIC_API_KEY')}
|
||||||
}, function(err, response, body){
|
}, function(err, response, body){
|
||||||
var ts = JSON.parse(body).metric_data.metrics[0].timeslices,
|
var ts = JSON.parse(body).metric_data.metrics[0].timeslices,
|
||||||
score = ts[ts.length-1].values.score,
|
score = ts[ts.length-1].values.score,
|
||||||
apdexBad = score < .75 || score == 1,
|
|
||||||
memory = os.freemem() / os.totalmem(),
|
memory = os.freemem() / os.totalmem(),
|
||||||
memoryHigh = memory < 0.1;
|
memoryHigh = memory < 0.1;
|
||||||
if (apdexBad || memoryHigh) throw '[Memory Leak] Apdex='+score+' Memory='+parseFloat(memory).toFixed(3)+' Time='+moment().format();
|
|
||||||
|
|
||||||
});*/
|
if (memoryHigh) {
|
||||||
|
var newRelicMemoryLeakMessage = '[Memory Leak] Apdex='+score+' Memory='+parseFloat(memory).toFixed(3)+' Time='+moment().format();
|
||||||
|
throw newRelicMemoryLeakMessage;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
var memory = os.freemem() / os.totalmem(),
|
var memory = os.freemem() / os.totalmem(),
|
||||||
memoryHigh = memory < 0.1;
|
memoryHigh = memory < 0.1;
|
||||||
if (memoryHigh) {
|
if (memoryHigh) {
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ schema.statics.bossQuest = async function bossQuest (user, progress) {
|
|||||||
|
|
||||||
group.quest.progress.hp -= progress.up;
|
group.quest.progress.hp -= progress.up;
|
||||||
// TODO Create a party preferred language option so emits like this can be localized
|
// TODO Create a party preferred language option so emits like this can be localized
|
||||||
group.sendChat(`\`${user.profile.name} attacks ${quest.boss.name('en')} for ${progress.up.toFixed(1)} damage, ${quest.boss.name('en')} attacks party for ${Math.abs(down).toFixed(1)} damage.\``);
|
group.sendChat(`\`${user.profile.name} attacks ${quest.boss.name('en')} for ${progress.up.toFixed(1)} damage.\` \`${quest.boss.name('en')} attacks party for ${Math.abs(down).toFixed(1)} damage.\``);
|
||||||
|
|
||||||
// If boss has Rage, increment Rage as well
|
// If boss has Rage, increment Rage as well
|
||||||
if (quest.boss.rage) {
|
if (quest.boss.rage) {
|
||||||
|
|||||||
@@ -20,6 +20,29 @@
|
|||||||
ng-click='buyQuest(quest.key)')
|
ng-click='buyQuest(quest.key)')
|
||||||
p {{::quest.value}}
|
p {{::quest.value}}
|
||||||
span.Pet_Currency_Gem1x.inline-gems
|
span.Pet_Currency_Gem1x.inline-gems
|
||||||
|
menu.pets-menu(label=env.t('seasonalItems'))
|
||||||
|
div
|
||||||
|
button.customize-option(class='inventory_special_shinySeed',
|
||||||
|
popover='{{::Content.spells.special.shinySeed.notes()}}',
|
||||||
|
popover-title='{{::Content.spells.special.shinySeed.text()}}',
|
||||||
|
popover-trigger='mouseenter', popover-placement='right',
|
||||||
|
popover-append-to-body='true',
|
||||||
|
ng-click='purchase("special", Content.spells.special.shinySeed)')
|
||||||
|
p {{::Content.spells.special.shinySeed.value}}
|
||||||
|
span(class='shop_gold')
|
||||||
|
// div
|
||||||
|
button.customize-option(class='Pet_HatchingPotion_Peppermint',
|
||||||
|
popover='{{::Content.hatchingPotions.Peppermint.notes()}}',
|
||||||
|
popover-title!=env.t("potion", {potionType: "{{::Content.hatchingPotions.Peppermint.text()}}"}),
|
||||||
|
popover-trigger='mouseenter', popover-placement='right',
|
||||||
|
popover-append-to-body='true',
|
||||||
|
ng-click='purchase("hatchingPotions", Content.hatchingPotions.Peppermint)')
|
||||||
|
p {{::Content.hatchingPotions.Peppermint.value}}
|
||||||
|
span.Pet_Currency_Gem1x.inline-gems
|
||||||
|
// 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')
|
||||||
|
p {{Content.spells.special.nye.value}}
|
||||||
|
span(class='shop_gold')
|
||||||
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")}')
|
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)',
|
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}")
|
||||||
@@ -31,26 +54,3 @@
|
|||||||
div
|
div
|
||||||
| {{((item.specialClass == "wizard") && (item.type == "weapon")) + 1}}
|
| {{((item.specialClass == "wizard") && (item.type == "weapon")) + 1}}
|
||||||
span.Pet_Currency_Gem1x.inline-gems
|
span.Pet_Currency_Gem1x.inline-gems
|
||||||
// menu.pets-menu(label=env.t('seasonalItems'))
|
|
||||||
div
|
|
||||||
button.customize-option(class='inventory_special_snowball',
|
|
||||||
popover='{{::Content.spells.special.snowball.notes()}}',
|
|
||||||
popover-title='{{::Content.spells.special.snowball.text()}}',
|
|
||||||
popover-trigger='mouseenter', popover-placement='right',
|
|
||||||
popover-append-to-body='true',
|
|
||||||
ng-click='purchase("special", Content.spells.special.snowball)')
|
|
||||||
p {{::Content.spells.special.snowball.value}}
|
|
||||||
span(class='shop_gold')
|
|
||||||
div
|
|
||||||
button.customize-option(class='Pet_HatchingPotion_Peppermint',
|
|
||||||
popover='{{::Content.hatchingPotions.Peppermint.notes()}}',
|
|
||||||
popover-title!=env.t("potion", {potionType: "{{::Content.hatchingPotions.Peppermint.text()}}"}),
|
|
||||||
popover-trigger='mouseenter', popover-placement='right',
|
|
||||||
popover-append-to-body='true',
|
|
||||||
ng-click='purchase("hatchingPotions", Content.hatchingPotions.Peppermint)')
|
|
||||||
p {{::Content.hatchingPotions.Peppermint.value}}
|
|
||||||
span.Pet_Currency_Gem1x.inline-gems
|
|
||||||
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')
|
|
||||||
p {{Content.spells.special.nye.value}}
|
|
||||||
span(class='shop_gold')
|
|
||||||
|
|||||||
5
website/views/shared/new-relic.jade
Normal file
@@ -1,5 +1,44 @@
|
|||||||
h2 4/1/2016 - WORLD BOSS REVEALED: THE BE-WILDER!
|
h2 4/8/2016 - WORLD BOSS ATTACK: BEGUILEMENT STRIKE!
|
||||||
hr
|
hr
|
||||||
|
tr
|
||||||
|
tr
|
||||||
|
.npc_alex_broken.pull-right
|
||||||
|
h3 Beguilement Strike on Alex the Merchant!
|
||||||
|
p Oh no! The Be-Wilder has used its Beguilement Strike!
|
||||||
|
br
|
||||||
|
p Despite our best efforts, we've gotten distracted by the Be-Wilder’s charming illusions and have forgotten to do some of our Dailies! With a cackling cry, the shining bird beats its wings, raising a swarm of mist around Alex the Merchant. When the fog clears, he has been possessed! “Have some free samples!” he shouts gleefully, and begins to hurl exploding eggs and potions at fleeing Habiticans. Not the most favorable of sales, to be sure.
|
||||||
|
br
|
||||||
|
p Hurry! Let's stay focused on our Dailies to defeat this monster before it possesses someone else.
|
||||||
|
|
||||||
|
if menuItem !== 'oldNews'
|
||||||
|
hr
|
||||||
|
a(href='/static/old-news', target='_blank') Read older news
|
||||||
|
|
||||||
|
mixin oldNews
|
||||||
|
h2 4/5/2016 - APRIL BACKGROUNDS, ARMOIRE ITEMS, AND SHINY SEEDS!
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.promo_backgrounds_armoire_201604.pull-right
|
||||||
|
h3 April Backgrounds
|
||||||
|
p There are three new avatar backgrounds in the <a href='/#/options/profile/backgrounds'>Background Shop!</a> Now your avatar can practice on the Archery Range, frolic on Giant Flowers, or discover gold at the End of the Rainbow!
|
||||||
|
p.small.muted Art by Sunstroke, PainterProphet, and UncommonCriminal
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
h3 April Armoire Items Revealed
|
||||||
|
p There is new equipment in the Enchanted Armoire, a 100 GP Reward in the Rewards Column which unlocks after you've attained Ultimate Gear!
|
||||||
|
br
|
||||||
|
p Click on the Enchanted Armoire for a random chance at special Equipment, including the Basic Archer Set, and the Comical Arrow! It may also give you random XP or food items. We add new equipment to it during the first week of each month, but even when you've exhausted the current supply, you can keep clicking for a chance at food and XP.
|
||||||
|
br
|
||||||
|
p Now go spend all that accumulated Gold! May the Random Number Generator smile upon you...
|
||||||
|
p.small.muted Art by Balduranne, Fandekasp, nonight, and Kiwibot
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
.avatar_floral_healer.pull-left.slight-right-margin
|
||||||
|
h3 Shiny Seeds
|
||||||
|
p Throw a Shiny Seed at your friends and they will turn into a cheerful flower until their next cron! You can buy the Seeds in the <a href='/#/options/inventory/seasonalshop'>Seasonal Shop</a> for Gold. Don't want to be a flower? Just buy some Petal-Free Potion from the <a href='/#/tasks'>Rewards Store</a> to reverse it.
|
||||||
|
br
|
||||||
|
p Shiny Seeds will be available until April 30th!
|
||||||
|
h2 4/1/2016 - WORLD BOSS REVEALED: THE BE-WILDER!
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
.quest_bewilder.pull-right
|
.quest_bewilder.pull-right
|
||||||
@@ -35,11 +74,6 @@ h2 4/1/2016 - WORLD BOSS REVEALED: THE BE-WILDER!
|
|||||||
br
|
br
|
||||||
p Quickly, Habiticans, don’t let this World Boss distract us from our goals! Stay focused on the tasks that you need to complete so we can rescue Mistiflying -- and hopefully, ourselves.
|
p Quickly, Habiticans, don’t let this World Boss distract us from our goals! Stay focused on the tasks that you need to complete so we can rescue Mistiflying -- and hopefully, ourselves.
|
||||||
|
|
||||||
if menuItem !== 'oldNews'
|
|
||||||
hr
|
|
||||||
a(href='/static/old-news', target='_blank') Read older news
|
|
||||||
|
|
||||||
mixin oldNews
|
|
||||||
h2 3/30/2016 - LAST CHANCE FOR MARCH SUBSCRIBER ITEMS! ALSO, EQUIPMENT SORTING AND WHEELCHAIRS FOR AVATARS
|
h2 3/30/2016 - LAST CHANCE FOR MARCH SUBSCRIBER ITEMS! ALSO, EQUIPMENT SORTING AND WHEELCHAIRS FOR AVATARS
|
||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
|
|||||||