Begin Fall Festival 2016 (#8043)
* feat(event): begin Fall Festival 2016 * feat(event): Seasonal Shop Fall 2016 * fix(test): season specific food * chore(news): add Bailey * fix(season): correct Sorceress & timetrav
@@ -11,6 +11,7 @@ import {
|
||||
} from '../../helpers/common.helper';
|
||||
|
||||
describe('shared.ops.purchase', () => {
|
||||
const SEASONAL_FOOD = 'Candy_Base';
|
||||
let user;
|
||||
let goldPoints = 40;
|
||||
let gemsBought = 40;
|
||||
@@ -166,7 +167,7 @@ describe('shared.ops.purchase', () => {
|
||||
|
||||
it('purchases food', () => {
|
||||
let type = 'food';
|
||||
let key = 'Meat';
|
||||
let key = SEASONAL_FOOD;
|
||||
|
||||
purchase(user, {params: {type, key}});
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* Comment out for holiday events */
|
||||
.npc_ian {
|
||||
/* .npc_ian {
|
||||
background: url("/website/assets/sprites/npc_ian.gif") no-repeat;
|
||||
width: 78px;
|
||||
height: 135px;
|
||||
}
|
||||
} */
|
||||
|
||||
.quest_burnout {
|
||||
background: url("/website/assets/sprites/quest_burnout.gif") no-repeat;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.2014_Fall_HealerPROMO2 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1183px -1529px;
|
||||
background-position: -1114px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -12,13 +12,13 @@
|
||||
}
|
||||
.2014_Fall_RoguePROMO3 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -869px -1378px;
|
||||
background-position: -359px -1306px;
|
||||
width: 105px;
|
||||
height: 90px;
|
||||
}
|
||||
.2014_Fall_Warrior_PROMO {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1533px -1378px;
|
||||
background-position: -1428px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -30,25 +30,25 @@
|
||||
}
|
||||
.promo_backgrounds_armoire_201602 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1135px -199px;
|
||||
background-position: -1277px -199px;
|
||||
width: 141px;
|
||||
height: 294px;
|
||||
}
|
||||
.promo_backgrounds_armoire_201603 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1277px -199px;
|
||||
background-position: -1135px -199px;
|
||||
width: 141px;
|
||||
height: 294px;
|
||||
}
|
||||
.promo_backgrounds_armoire_201604 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -452px 0px;
|
||||
background-position: -281px -525px;
|
||||
width: 140px;
|
||||
height: 441px;
|
||||
}
|
||||
.promo_backgrounds_armoire_201605 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -452px -442px;
|
||||
background-position: -452px 0px;
|
||||
width: 140px;
|
||||
height: 441px;
|
||||
}
|
||||
@@ -78,7 +78,7 @@
|
||||
}
|
||||
.promo_backtoschool {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -302px -1378px;
|
||||
background-position: -944px -573px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
@@ -96,7 +96,7 @@
|
||||
}
|
||||
.promo_classes_fall_2014 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -734px -684px;
|
||||
background-position: 0px -1114px;
|
||||
width: 321px;
|
||||
height: 100px;
|
||||
}
|
||||
@@ -106,6 +106,12 @@
|
||||
width: 377px;
|
||||
height: 99px;
|
||||
}
|
||||
.promo_classes_fall_2016 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -734px -573px;
|
||||
width: 103px;
|
||||
height: 348px;
|
||||
}
|
||||
.promo_contrib_spotlight_beffymaroo {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -306px -220px;
|
||||
@@ -114,13 +120,13 @@
|
||||
}
|
||||
.promo_cow {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -281px -525px;
|
||||
background-position: -452px -442px;
|
||||
width: 140px;
|
||||
height: 441px;
|
||||
}
|
||||
.promo_dilatoryDistress {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -637px -1529px;
|
||||
background-position: -1155px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -132,25 +138,25 @@
|
||||
}
|
||||
.promo_enchanted_armoire {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: 0px -1114px;
|
||||
background-position: -734px -1033px;
|
||||
width: 374px;
|
||||
height: 76px;
|
||||
}
|
||||
.promo_enchanted_armoire_201507 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -840px -967px;
|
||||
background-position: -578px -1215px;
|
||||
width: 217px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_enchanted_armoire_201508 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -468px -1275px;
|
||||
background-position: -944px -724px;
|
||||
width: 180px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_enchanted_armoire_201509 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -819px -1529px;
|
||||
background-position: -1337px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -162,13 +168,13 @@
|
||||
}
|
||||
.promo_enchanted_armoire_201601 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1001px -1529px;
|
||||
background-position: -841px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_floral_potions {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -734px -785px;
|
||||
background-position: -838px -573px;
|
||||
width: 105px;
|
||||
height: 273px;
|
||||
}
|
||||
@@ -186,25 +192,25 @@
|
||||
}
|
||||
.promo_haunted_hair {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -553px -1378px;
|
||||
background-position: -402px -1409px;
|
||||
width: 100px;
|
||||
height: 137px;
|
||||
}
|
||||
.promo_item_notif {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: 0px -1275px;
|
||||
background-position: 0px -1306px;
|
||||
width: 249px;
|
||||
height: 102px;
|
||||
}
|
||||
.promo_mystery_201405 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1092px -1529px;
|
||||
background-position: -1387px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201406 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -182px -1529px;
|
||||
background-position: -791px -1409px;
|
||||
width: 90px;
|
||||
height: 96px;
|
||||
}
|
||||
@@ -222,19 +228,19 @@
|
||||
}
|
||||
.promo_mystery_201409 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1274px -1529px;
|
||||
background-position: -1519px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201410 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1060px -573px;
|
||||
background-position: -838px -847px;
|
||||
width: 72px;
|
||||
height: 63px;
|
||||
}
|
||||
.promo_mystery_201411 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1365px -1529px;
|
||||
background-position: -1023px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -252,13 +258,13 @@
|
||||
}
|
||||
.promo_mystery_201502 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1456px -1529px;
|
||||
background-position: -882px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201503 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -910px -1529px;
|
||||
background-position: -1064px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -270,7 +276,7 @@
|
||||
}
|
||||
.promo_mystery_201505 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -728px -1529px;
|
||||
background-position: -1246px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -282,31 +288,31 @@
|
||||
}
|
||||
.promo_mystery_201507 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: 0px -1529px;
|
||||
background-position: -609px -1409px;
|
||||
width: 90px;
|
||||
height: 105px;
|
||||
}
|
||||
.promo_mystery_201508 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1257px -1378px;
|
||||
background-position: -653px -1306px;
|
||||
width: 93px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201509 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -455px -1529px;
|
||||
background-position: 0px -1560px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201510 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1163px -1378px;
|
||||
background-position: -747px -1306px;
|
||||
width: 93px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201511 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -273px -1529px;
|
||||
background-position: -932px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -324,55 +330,55 @@
|
||||
}
|
||||
.promo_mystery_201602 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1442px -1378px;
|
||||
background-position: -1205px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201603 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1351px -1378px;
|
||||
background-position: -1296px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201604 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1069px -1378px;
|
||||
background-position: -465px -1306px;
|
||||
width: 93px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201605 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -546px -1529px;
|
||||
background-position: -1478px -1306px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201606 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -91px -1529px;
|
||||
background-position: -700px -1409px;
|
||||
width: 90px;
|
||||
height: 105px;
|
||||
}
|
||||
.promo_mystery_201607 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -364px -1529px;
|
||||
background-position: -973px -1409px;
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_201608 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -975px -1378px;
|
||||
background-position: -559px -1306px;
|
||||
width: 93px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_mystery_3014 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -250px -1275px;
|
||||
background-position: -796px -1215px;
|
||||
width: 217px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_orca {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -654px -1378px;
|
||||
background-position: -503px -1409px;
|
||||
width: 105px;
|
||||
height: 105px;
|
||||
}
|
||||
@@ -384,37 +390,37 @@
|
||||
}
|
||||
.promo_pastel_skin {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -331px -1191px;
|
||||
background-position: -653px -1114px;
|
||||
width: 330px;
|
||||
height: 83px;
|
||||
}
|
||||
.customize-option.promo_pastel_skin {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -356px -1206px;
|
||||
background-position: -678px -1129px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.promo_peppermint_flame {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -593px -879px;
|
||||
background-position: -452px -884px;
|
||||
width: 140px;
|
||||
height: 147px;
|
||||
}
|
||||
.promo_pet_skins {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -452px -884px;
|
||||
background-position: -593px -879px;
|
||||
width: 140px;
|
||||
height: 147px;
|
||||
}
|
||||
.customize-option.promo_pet_skins {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -477px -899px;
|
||||
background-position: -618px -894px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
.promo_shimmer_hair {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: 0px -1191px;
|
||||
background-position: -322px -1114px;
|
||||
width: 330px;
|
||||
height: 83px;
|
||||
}
|
||||
@@ -438,13 +444,13 @@
|
||||
}
|
||||
.promo_springclasses2014 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -840px -785px;
|
||||
background-position: -289px -1215px;
|
||||
width: 288px;
|
||||
height: 90px;
|
||||
}
|
||||
.promo_springclasses2015 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -840px -876px;
|
||||
background-position: 0px -1215px;
|
||||
width: 288px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -462,7 +468,7 @@
|
||||
}
|
||||
.promo_staff_spotlight_paglias {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -453px -1378px;
|
||||
background-position: -302px -1409px;
|
||||
width: 99px;
|
||||
height: 147px;
|
||||
}
|
||||
@@ -486,19 +492,19 @@
|
||||
}
|
||||
.promo_takeThis_gear {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -649px -1275px;
|
||||
background-position: -1014px -1215px;
|
||||
width: 114px;
|
||||
height: 87px;
|
||||
}
|
||||
.promo_takethis_armor {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -764px -1275px;
|
||||
background-position: -1129px -1215px;
|
||||
width: 114px;
|
||||
height: 87px;
|
||||
}
|
||||
.promo_unconventional_armor {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1056px -684px;
|
||||
background-position: -911px -847px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
@@ -510,7 +516,7 @@
|
||||
}
|
||||
.promo_veteran_pets {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -528px -1114px;
|
||||
background-position: -1137px -1114px;
|
||||
width: 146px;
|
||||
height: 75px;
|
||||
}
|
||||
@@ -522,13 +528,13 @@
|
||||
}
|
||||
.promo_winterclasses2015 {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -734px -573px;
|
||||
background-position: -734px -922px;
|
||||
width: 325px;
|
||||
height: 110px;
|
||||
}
|
||||
.promo_winteryhair {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -375px -1114px;
|
||||
background-position: -984px -1114px;
|
||||
width: 152px;
|
||||
height: 75px;
|
||||
}
|
||||
@@ -540,7 +546,7 @@
|
||||
}
|
||||
.npc_viirus {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -760px -1378px;
|
||||
background-position: -250px -1306px;
|
||||
width: 108px;
|
||||
height: 90px;
|
||||
}
|
||||
@@ -552,19 +558,19 @@
|
||||
}
|
||||
.scene_coding {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -151px -1378px;
|
||||
background-position: -151px -1409px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.scene_phone_peek {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: 0px -1378px;
|
||||
background-position: 0px -1409px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.welcome_basic_avatars {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1135px -642px;
|
||||
background-position: -1382px -642px;
|
||||
width: 246px;
|
||||
height: 165px;
|
||||
}
|
||||
@@ -576,7 +582,7 @@
|
||||
}
|
||||
.welcome_sample_tasks {
|
||||
background-image: url(/assets/sprites/spritesmith-largeSprites-0.png);
|
||||
background-position: -1382px -642px;
|
||||
background-position: -1135px -642px;
|
||||
width: 246px;
|
||||
height: 165px;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 539 KiB After Width: | Height: | Size: 489 KiB |
598
website/assets/sprites/dist/spritesmith-main-10.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-10.png
vendored
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 144 KiB |
866
website/assets/sprites/dist/spritesmith-main-11.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-11.png
vendored
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
1036
website/assets/sprites/dist/spritesmith-main-12.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-12.png
vendored
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 174 KiB |
2544
website/assets/sprites/dist/spritesmith-main-13.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-13.png
vendored
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 151 KiB |
1324
website/assets/sprites/dist/spritesmith-main-4.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-4.png
vendored
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 136 KiB |
1512
website/assets/sprites/dist/spritesmith-main-5.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-5.png
vendored
|
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 134 KiB |
1046
website/assets/sprites/dist/spritesmith-main-6.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-6.png
vendored
|
Before Width: | Height: | Size: 404 KiB After Width: | Height: | Size: 387 KiB |
1164
website/assets/sprites/dist/spritesmith-main-7.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-7.png
vendored
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 176 KiB |
628
website/assets/sprites/dist/spritesmith-main-8.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-8.png
vendored
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 143 KiB |
648
website/assets/sprites/dist/spritesmith-main-9.css
vendored
BIN
website/assets/sprites/dist/spritesmith-main-9.png
vendored
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
website/assets/sprites/spritesmith/npcs/npc_ian.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
@@ -10,12 +10,12 @@ module.exports = prefill({
|
||||
pastelHairColors: {setPrice: 5, availableUntil: '2016-01-01'},
|
||||
rainbowHairColors: {setPrice: 5, text: t('rainbowColors')},
|
||||
shimmerHairColors: {setPrice: 5, availableUntil: '2016-05-02', text: t('shimmerColors')},
|
||||
hauntedHairColors: {setPrice: 5, availableUntil: '2016-01-01', text: t('hauntedColors')},
|
||||
hauntedHairColors: {setPrice: 5, availableUntil: '2016-11-01', text: t('hauntedColors')},
|
||||
winteryHairColors: {setPrice: 5, availableFrom: '2015-12-18', availableUntil: '2016-02-02', text: t('winteryColors')},
|
||||
rainbowSkins: {setPrice: 5, text: t('rainbowSkins')},
|
||||
animalSkins: {setPrice: 5, text: t('animalSkins')},
|
||||
pastelSkins: {setPrice: 5, availableUntil: '2016-05-02', text: t('pastelSkins')},
|
||||
spookySkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('spookySkins')},
|
||||
supernaturalSkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('supernaturalSkins')},
|
||||
supernaturalSkins: {setPrice: 5, availableUntil: '2016-11-01', text: t('supernaturalSkins')},
|
||||
splashySkins: {setPrice: 5, availableUntil: '2016-01-01', text: t('splashySkins')},
|
||||
});
|
||||
|
||||
@@ -25,6 +25,7 @@ export const EVENTS = {
|
||||
winter2016: { start: '2015-12-18', end: '2016-02-02' },
|
||||
spring2016: { start: '2016-03-18', end: '2016-05-02' },
|
||||
summer2016: { start: '2016-06-21', end: '2016-08-02' },
|
||||
fall2016: { start: '2016-09-20', end: '2016-11-02' },
|
||||
};
|
||||
|
||||
export const GEAR_TYPES = [
|
||||
|
||||
@@ -128,6 +128,9 @@ let armor = {
|
||||
notes: t('armorSpecialFallRogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallWarrior: {
|
||||
event: EVENTS.fall,
|
||||
@@ -136,6 +139,9 @@ let armor = {
|
||||
notes: t('armorSpecialFallWarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallMage: {
|
||||
event: EVENTS.fall,
|
||||
@@ -144,6 +150,9 @@ let armor = {
|
||||
notes: t('armorSpecialFallMageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallHealer: {
|
||||
event: EVENTS.fall,
|
||||
@@ -152,6 +161,9 @@ let armor = {
|
||||
notes: t('armorSpecialFallHealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2015Rogue: {
|
||||
event: EVENTS.winter2015,
|
||||
@@ -262,6 +274,9 @@ let armor = {
|
||||
notes: t('armorSpecialFall2015RogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Warrior: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -270,6 +285,9 @@ let armor = {
|
||||
notes: t('armorSpecialFall2015WarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Mage: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -278,6 +296,9 @@ let armor = {
|
||||
notes: t('armorSpecialFall2015MageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Healer: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -286,6 +307,9 @@ let armor = {
|
||||
notes: t('armorSpecialFall2015HealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
gaymerx: {
|
||||
event: EVENTS.gaymerx,
|
||||
@@ -395,6 +419,38 @@ let armor = {
|
||||
value: 90,
|
||||
con: 15,
|
||||
},
|
||||
fall2016Rogue: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'rogue',
|
||||
text: t('armorSpecialFall2016RogueText'),
|
||||
notes: t('armorSpecialFall2016RogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
},
|
||||
fall2016Warrior: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'warrior',
|
||||
text: t('armorSpecialFall2016WarriorText'),
|
||||
notes: t('armorSpecialFall2016WarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
},
|
||||
fall2016Mage: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'wizard',
|
||||
text: t('armorSpecialFall2016MageText'),
|
||||
notes: t('armorSpecialFall2016MageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
},
|
||||
fall2016Healer: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'healer',
|
||||
text: t('armorSpecialFall2016HealerText'),
|
||||
notes: t('armorSpecialFall2016HealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
},
|
||||
};
|
||||
|
||||
let back = {
|
||||
@@ -641,6 +697,9 @@ let head = {
|
||||
notes: t('headSpecialFallRogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallWarrior: {
|
||||
event: EVENTS.fall,
|
||||
@@ -649,6 +708,9 @@ let head = {
|
||||
notes: t('headSpecialFallWarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallMage: {
|
||||
event: EVENTS.fall,
|
||||
@@ -657,6 +719,9 @@ let head = {
|
||||
notes: t('headSpecialFallMageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallHealer: {
|
||||
event: EVENTS.fall,
|
||||
@@ -665,6 +730,9 @@ let head = {
|
||||
notes: t('headSpecialFallHealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2015Rogue: {
|
||||
event: EVENTS.winter2015,
|
||||
@@ -775,6 +843,9 @@ let head = {
|
||||
notes: t('headSpecialFall2015RogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Warrior: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -783,6 +854,9 @@ let head = {
|
||||
notes: t('headSpecialFall2015WarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Mage: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -791,6 +865,9 @@ let head = {
|
||||
notes: t('headSpecialFall2015MageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Healer: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -799,6 +876,9 @@ let head = {
|
||||
notes: t('headSpecialFall2015HealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
gaymerx: {
|
||||
event: EVENTS.gaymerx,
|
||||
@@ -908,6 +988,38 @@ let head = {
|
||||
value: 60,
|
||||
int: 7,
|
||||
},
|
||||
fall2016Rogue: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'rogue',
|
||||
text: t('headSpecialFall2016RogueText'),
|
||||
notes: t('headSpecialFall2016RogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
},
|
||||
fall2016Warrior: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'warrior',
|
||||
text: t('headSpecialFall2016WarriorText'),
|
||||
notes: t('headSpecialFall2016WarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
},
|
||||
fall2016Mage: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'wizard',
|
||||
text: t('headSpecialFall2016MageText'),
|
||||
notes: t('headSpecialFall2016MageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
},
|
||||
fall2016Healer: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'healer',
|
||||
text: t('headSpecialFall2016HealerText'),
|
||||
notes: t('headSpecialFall2016HealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
},
|
||||
};
|
||||
|
||||
let headAccessory = {
|
||||
@@ -1175,6 +1287,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFallRogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallWarrior: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1183,6 +1298,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFallWarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallHealer: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1191,6 +1309,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFallHealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2015Rogue: {
|
||||
event: EVENTS.winter2015,
|
||||
@@ -1271,6 +1392,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFall2015RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Warrior: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1279,6 +1403,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFall2015WarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Healer: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1287,6 +1414,9 @@ let shield = {
|
||||
notes: t('shieldSpecialFall2015HealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2016Rogue: {
|
||||
event: EVENTS.winter2016,
|
||||
@@ -1360,6 +1490,30 @@ let shield = {
|
||||
value: 70,
|
||||
con: 9,
|
||||
},
|
||||
fall2016Rogue: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'rogue',
|
||||
text: t('shieldSpecialFall2016RogueText'),
|
||||
notes: t('shieldSpecialFall2016RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
},
|
||||
fall2016Warrior: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'warrior',
|
||||
text: t('shieldSpecialFall2016WarriorText'),
|
||||
notes: t('shieldSpecialFall2016WarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
},
|
||||
fall2016Healer: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'healer',
|
||||
text: t('shieldSpecialFall2016HealerText'),
|
||||
notes: t('shieldSpecialFall2016HealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
},
|
||||
};
|
||||
|
||||
let weapon = {
|
||||
@@ -1485,6 +1639,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFallRogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallWarrior: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1493,6 +1650,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFallWarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallMage: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1503,6 +1663,9 @@ let weapon = {
|
||||
value: 160,
|
||||
int: 15,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallHealer: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1511,6 +1674,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFallHealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2015Rogue: {
|
||||
event: EVENTS.winter2015,
|
||||
@@ -1621,6 +1787,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFall2015RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Warrior: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1629,6 +1798,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFall2015WarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Mage: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1639,6 +1811,9 @@ let weapon = {
|
||||
value: 160,
|
||||
int: 15,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Healer: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1647,6 +1822,9 @@ let weapon = {
|
||||
notes: t('weaponSpecialFall2015HealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
winter2016Rogue: {
|
||||
event: EVENTS.winter2016,
|
||||
@@ -1750,6 +1928,40 @@ let weapon = {
|
||||
value: 90,
|
||||
int: 9,
|
||||
},
|
||||
fall2016Rogue: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'rogue',
|
||||
text: t('weaponSpecialFall2016RogueText'),
|
||||
notes: t('weaponSpecialFall2016RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
},
|
||||
fall2016Warrior: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'warrior',
|
||||
text: t('weaponSpecialFall2016WarriorText'),
|
||||
notes: t('weaponSpecialFall2016WarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
},
|
||||
fall2016Mage: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'wizard',
|
||||
twoHanded: true,
|
||||
text: t('weaponSpecialFall2016MageText'),
|
||||
notes: t('weaponSpecialFall2016MageNotes', { int: 15, per: 7 }),
|
||||
value: 160,
|
||||
int: 15,
|
||||
per: 7,
|
||||
},
|
||||
fall2016Healer: {
|
||||
event: EVENTS.fall2016,
|
||||
specialClass: 'healer',
|
||||
text: t('weaponSpecialFall2016HealerText'),
|
||||
notes: t('weaponSpecialFall2016HealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
},
|
||||
};
|
||||
|
||||
let specialSet = {
|
||||
|
||||
@@ -169,90 +169,90 @@ api.food = {
|
||||
target: 'Base',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Milk: {
|
||||
text: t('foodMilk'),
|
||||
target: 'White',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Potatoe: {
|
||||
text: t('foodPotatoe'),
|
||||
target: 'Desert',
|
||||
article: 'a ',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Strawberry: {
|
||||
text: t('foodStrawberry'),
|
||||
target: 'Red',
|
||||
article: 'a ',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Chocolate: {
|
||||
text: t('foodChocolate'),
|
||||
target: 'Shade',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Fish: {
|
||||
text: t('foodFish'),
|
||||
target: 'Skeleton',
|
||||
article: 'a ',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
RottenMeat: {
|
||||
text: t('foodRottenMeat'),
|
||||
target: 'Zombie',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
CottonCandyPink: {
|
||||
text: t('foodCottonCandyPink'),
|
||||
target: 'CottonCandyPink',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
CottonCandyBlue: {
|
||||
text: t('foodCottonCandyBlue'),
|
||||
target: 'CottonCandyBlue',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Honey: {
|
||||
text: t('foodHoney'),
|
||||
target: 'Golden',
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
return false;
|
||||
}),
|
||||
canDrop: true,
|
||||
canDrop: false,
|
||||
},
|
||||
Saddle: {
|
||||
canBuy: (function() {
|
||||
@@ -265,102 +265,142 @@ api.food = {
|
||||
Cake_Skeleton: {
|
||||
text: t('foodCakeSkeleton'),
|
||||
target: 'Skeleton',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Base: {
|
||||
text: t('foodCakeBase'),
|
||||
target: 'Base',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_CottonCandyBlue: {
|
||||
text: t('foodCakeCottonCandyBlue'),
|
||||
target: 'CottonCandyBlue',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_CottonCandyPink: {
|
||||
text: t('foodCakeCottonCandyPink'),
|
||||
target: 'CottonCandyPink',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Shade: {
|
||||
text: t('foodCakeShade'),
|
||||
target: 'Shade',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_White: {
|
||||
text: t('foodCakeWhite'),
|
||||
target: 'White',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Golden: {
|
||||
text: t('foodCakeGolden'),
|
||||
target: 'Golden',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Zombie: {
|
||||
text: t('foodCakeZombie'),
|
||||
target: 'Zombie',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Desert: {
|
||||
text: t('foodCakeDesert'),
|
||||
target: 'Desert',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Cake_Red: {
|
||||
text: t('foodCakeRed'),
|
||||
target: 'Red',
|
||||
article: ''
|
||||
article: '',
|
||||
},
|
||||
Candy_Skeleton: {
|
||||
text: t('foodCandySkeleton'),
|
||||
target: 'Skeleton',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Base: {
|
||||
text: t('foodCandyBase'),
|
||||
target: 'Base',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_CottonCandyBlue: {
|
||||
text: t('foodCandyCottonCandyBlue'),
|
||||
target: 'CottonCandyBlue',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_CottonCandyPink: {
|
||||
text: t('foodCandyCottonCandyPink'),
|
||||
target: 'CottonCandyPink',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Shade: {
|
||||
text: t('foodCandyShade'),
|
||||
target: 'Shade',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_White: {
|
||||
text: t('foodCandyWhite'),
|
||||
target: 'White',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Golden: {
|
||||
text: t('foodCandyGolden'),
|
||||
target: 'Golden',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Zombie: {
|
||||
text: t('foodCandyZombie'),
|
||||
target: 'Zombie',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Desert: {
|
||||
text: t('foodCandyDesert'),
|
||||
target: 'Desert',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
},
|
||||
Candy_Red: {
|
||||
text: t('foodCandyRed'),
|
||||
target: 'Red',
|
||||
article: ''
|
||||
article: '',
|
||||
canBuy: (function() {
|
||||
return true;
|
||||
}),
|
||||
canDrop: true,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -214,6 +214,14 @@ shops.getTimeTravelersCategories = function getTimeTravelersCategories (user, la
|
||||
// };
|
||||
shops.getSeasonalShopCategories = function getSeasonalShopCategories (user, language) {
|
||||
let availableSets = {
|
||||
fallHealer: i18n.t('mummyMedicSet', language),
|
||||
fall2015Healer: i18n.t('potionerSet', language),
|
||||
fallMage: i18n.t('witchyWizardSet', language),
|
||||
fall2015Mage: i18n.t('stitchWitchSet', language),
|
||||
fallRogue: i18n.t('vampireSmiterSet', language),
|
||||
fall2015Rogue: i18n.t('battleRogueSet', language),
|
||||
fallWarrior: i18n.t('monsterOfScienceSet', language),
|
||||
fall2015Warrior: i18n.t('scarecrowWarriorSet', language),
|
||||
};
|
||||
|
||||
let categories = [];
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
.container-fluid
|
||||
.stable.row: .col-xs-12
|
||||
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered
|
||||
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered
|
||||
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
|
||||
.arrow.hidden-xs
|
||||
h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
||||
h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
||||
.popover-content
|
||||
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopFallText')
|
||||
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopFallText')
|
||||
|
||||
// .well=env.t('seasonalShopRebirth')
|
||||
|
||||
// li.customize-menu.inventory-gear
|
||||
menu.pets-menu(label=env.t('seasonalItems'))
|
||||
li.customize-menu.inventory-gear
|
||||
// menu.pets-menu(label=env.t('seasonalItems'))
|
||||
div
|
||||
button.customize-option(class='inventory_special_seafoam',
|
||||
popover='{{::Content.spells.special.seafoam.notes()}}',
|
||||
|
||||
@@ -100,7 +100,7 @@ mixin customizeProfile(mobile)
|
||||
button(type='button', ng-if='user.purchased.hair.color.#{color}', class='customize-option hair hair_bangs_1_#{color}', ng-click='unlock("hair.color.#{color}")', ng-class='{selectableInventory: user.preferences.hair.color == "#{color}"}')
|
||||
+buyPref('hair.color', ['rainbow','yellow','green','purple','blue','TRUred'], 'rainbowColors')
|
||||
+buyPref('hair.color', ['pblue2','pgreen2','porange2','ppink2','ppurple2','pyellow2'], 'shimmerColors', 'disabled')
|
||||
+buyPref('hair.color', ['candycorn','ghostwhite','halloween','midnight','pumpkin','zombie'], 'hauntedColors', 'disabled')
|
||||
+buyPref('hair.color', ['candycorn','ghostwhite','halloween','midnight','pumpkin','zombie'], 'hauntedColors')
|
||||
+buyPref('hair.color', ['aurora','festive','hollygreen','peppermint','snowy','winterstar'], 'winteryColors', 'disabled')
|
||||
|
||||
li.customize-menu
|
||||
@@ -168,7 +168,7 @@ mixin customizeProfile(mobile)
|
||||
// Seasonal event skins. Note that Spooky Skins are a legacy set and should always be disabled for purchase
|
||||
+buyPref('skin', ['pastelPink','pastelOrange','pastelYellow','pastelGreen','pastelBlue','pastelPurple','pastelRainbowChevron','pastelRainbowDiagonal'], 'pastelSkins', 'disabled')
|
||||
+buyPref('skin', ['monster','pumpkin','skeleton','zombie','ghost','shadow'], 'spookySkins', 'disabled')
|
||||
+buyPref('skin', ['candycorn','ogre','pumpkin2','reptile','shadow2','skeleton2','transparent','zombie2'], 'supernaturalSkins', 'disabled')
|
||||
+buyPref('skin', ['candycorn','ogre','pumpkin2','reptile','shadow2','skeleton2','transparent','zombie2'], 'supernaturalSkins')
|
||||
+buyPref('skin', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins', 'disabled')
|
||||
|
||||
|
||||
|
||||
@@ -1,22 +1,56 @@
|
||||
h2 9/16/2016 - NEW BEHIND-THE-SCENES BLOG POST AND CONTRIBUTOR SPOTLIGHT!
|
||||
h2 9/20/2016 - FALL FESTIVAL! LIMITED-EDITION OUTFITS, SUPERNATURAL SKIN, HAUNTED HAIR, AND CANDY FOOD DROPS
|
||||
hr
|
||||
tr
|
||||
td
|
||||
.promo_contrib_spotlight_beffymaroo.pull-right
|
||||
h3 Contributor Spotlight: Beffymaroo
|
||||
p We've started a new <a href='https://habitica.wordpress.com/category/contributor-spotlight/' target='_blank'>Contributor Spotlight Series</a> on the blog! Check out our inaugural post, which is an interview with awesome moderator and pixel artist Beffymaroo.
|
||||
p.small.muted by Beffymaroo and Lemoness
|
||||
.seasonalshop_open.pull-left.slight-right-margin
|
||||
h3 Fall Festival Begins!
|
||||
p Autumn is upon us, and the Habiticans have moved to the Flourishing Fields! The air is crisp, the leaves are red, and everything is spooky, even the NPCs. Come celebrate the Fall Festival with us... if you dare!
|
||||
tr
|
||||
td
|
||||
h3 Behind the Scenes: Postcards
|
||||
p There's <a href='https://habitica.wordpress.com/2016/09/16/behind-the-scenes-unconventional-post/' target='_blank'>a new Behind the Scenes post</a> on the Habitica blog, detailing the aftermath of the recent Postcard Challenge! Come see how we've been decorating our office and dealing with the flood of fun cards from Habiticans.
|
||||
p.small.muted by redphoenix
|
||||
.promo_classes_fall_2016.pull-right
|
||||
h3 Limited Edition Class Outfits
|
||||
p Habiticans everywhere are dressing up. From now until October 31st, limited-edition outfits are available in the Rewards column. Depending on your class, you can be a Wicked Sorcerer, Swamp Thing, Black Widow Rogue, or Gorgon Healer! (For our Habiticans who have snake or spider phobias, you can block your view of the Black Widow Rogue and the Gorgon Healer by downloading our <a href='http://habitica.wikia.com/wiki/Phobia_Protection_Extension' target='_blank'>Phobia Protection Extension</a>.)
|
||||
br
|
||||
p You'd better get productive to earn enough gold before your time runs out...
|
||||
p.small.muted by Definitely not a villain, ShoGirlGeek. cataclysms, maxpendragon, and Lemoness
|
||||
tr
|
||||
td
|
||||
h3 Supernatural Skin Set
|
||||
p The Supernatural Skin Set is also available <a href='/#/options/profile/avatar'>in the avatar customization shop</a> until October 31st! Now your avatar can become an Ogre, Skeleton, Pumpkin, Candy Corn, Reptile, or Dread Shade.
|
||||
br
|
||||
p Seasonal Edition items recur unchanged every year, but they are only available to purchase during a short period of time. Get them now, or you'll have to wait until next year!
|
||||
p.small.muted by Lemoness
|
||||
tr
|
||||
td
|
||||
.promo_haunted_hair.pull-left.slight-right-margin
|
||||
h3 Haunted Hair Colors
|
||||
p The Seasonal Edition Haunted Hair Colors are now available for purchase, also on <a href='/#/options/profile/avatar'>the avatar customizations page</a>! Now you can dye your avatar's hair Pumpkin, Midnight, Candy Corn, Ghost White, Zombie, or Halloween. Get them before October 31st!
|
||||
p.small.muted by Lemoness, mariahm, and crystalphoenix
|
||||
tr
|
||||
td
|
||||
.Pet_Food_Candy_Base.pull-right
|
||||
h3 Candy Food Drops!
|
||||
p For the duration of the Fall Festival, Habiticans may randomly find candy drops when they complete their tasks. These candies function just like normal food drops - can you guess which flavor your pet will like best?
|
||||
p.small.muted by Lemoness
|
||||
|
||||
if menuItem !== 'oldNews'
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h2 9/16/2016 - NEW BEHIND-THE-SCENES BLOG POST AND CONTRIBUTOR SPOTLIGHT!
|
||||
tr
|
||||
td
|
||||
.promo_contrib_spotlight_beffymaroo.pull-right
|
||||
h3 Contributor Spotlight: Beffymaroo
|
||||
p We've started a new <a href='https://habitica.wordpress.com/category/contributor-spotlight/' target='_blank'>Contributor Spotlight Series</a> on the blog! Check out our inaugural post, which is an interview with awesome moderator and pixel artist Beffymaroo.
|
||||
p.small.muted by Beffymaroo and Lemoness
|
||||
tr
|
||||
td
|
||||
h3 Behind the Scenes: Postcards
|
||||
p There's <a href='https://habitica.wordpress.com/2016/09/16/behind-the-scenes-unconventional-post/' target='_blank'>a new Behind the Scenes post</a> on the Habitica blog, detailing the aftermath of the recent Postcard Challenge! Come see how we've been decorating our office and dealing with the flood of fun cards from Habiticans.
|
||||
p.small.muted by redphoenix
|
||||
|
||||
h2 9/13/2016 - NEW PET QUEST, CHANGES TO ORB OF REBIRTH, AND REAL-TIME PARTY CHAT
|
||||
.promo_cow.pull-right
|
||||
tr
|
||||
|
||||